Финансовое машинное обучение. Часть 2

Введение

В предыдущем блоге мы сосредоточились на первых трех шагах жизненного цикла машинного обучения. Сбор данных, предварительная обработка данных и обучение модели. В рамках предварительной обработки данных было выполнено проектирование функций путем добавления различных функций, и были построены модели для прогнозирования невидимых данных.

Модели машинного обучения будут более полезными только в том случае, если их прогностическая способность высока. По сути, наша цель — не только разработать модели машинного обучения, но и создать высококачественные модели с многообещающей предсказательной силой. В этом блоге мы предложим различные стратегии для оценки производительности построенных моделей, и на основе оценки можно будет выполнить извлечение признаков или выбор признаков.

Извлечение признаков — процесс создания нового набора данных из существующего набора данных таким образом, чтобы уменьшить объем данных и в то же время сохранить суть исходных данных.

Выбор функций — процесс выбора функций, которые мы хотим, из набора данных, и просто удаление остальных.

Оценка модели:

Прежде чем углубиться в эти процессы разработки функций, мы должны провести оценку модели. Оценка модели — это процесс, с помощью которого мы количественно оцениваем качество прогнозов модели. Они не только говорят нам, насколько хорошо построена модель, но и упрощают представление модели нетехническому специалисту.

Оценка модели классификации:

Лучше эффективность, лучше производительность, и это именно то, что мы хотим. Для выяснения эффективности модели классификации в центре внимания оказывается матрица путаницы.

Рассмотрим задачу классифицировать, болеет ли человек covid-19 или нет. Если тест на ковид-19 положительный (+ve), то человек поражен вирусом, а если результат теста отрицательный (-ve), то человек не заражен вирусом.

Теперь, учитывая, что приведенная выше классификация (затронутые или не затронутые) выполняется моделью машинного обучения, выходные данные могут быть сопоставлены с одной из четырех категорий и представлены в виде матрицы путаницы.

  1. True Positive (TP) — больные люди правильно предсказаны моделью как больные
  2. True Negative (TN) — здоровые люди правильно предсказаны моделью как не больные.
  3. Ложноположительный результат (FP) — здоровые люди были ошибочно определены моделью как больные. Это также известно как ошибка типа I.
  4. Ложноотрицательный (FN) — больные люди ошибочно прогнозируются моделью как здоровые. Это также известно как ошибка типа II.

Точность:

Когда дело доходит до оценки двоичного классификатора, точность — это хорошо известная метрика производительности, которая используется для того, чтобы отличить сильную модель классификации от слабой.

Точность представляет собой количество правильно классифицированных экземпляров данных по отношению к общему количеству экземпляров данных.

Точность может быть плохой мерой, если набор данных не сбалансирован. Рассмотрим следующий сценарий: есть 90 здоровых людей (отрицательный результат) и 10 человек с каким-либо заболеванием (положительный результат). Теперь предположим, что наша модель машинного обучения идеально классифицировала 90 человек как здоровых, но также классифицировала нездоровых людей как здоровых. То есть TN = 90, FP = 0, FN = 10 и TP = 0. Матрица путаницы выглядит следующим образом.

Точность в этом случае будет 90%, но эта модель очень плохая, потому что все 10 нездоровых людей классифицируются как здоровые. Следовательно, точность не является хорошей метрикой, когда набор данных несбалансирован. Использование точности в таких сценариях может привести к неверной интерпретации результатов. Вот где точность и отзыв выходят на свет.

Точность:

Точность говорит нам, сколько из правильно предсказанных случаев на самом деле оказались положительными. То есть точность относится к доле истинно положительных результатов (TP) к общему количеству прогнозируемых положительных результатов (TP+FP). Точность является полезной оценочной метрикой в ​​тех случаях, когда ложноположительные результаты вызывают большую озабоченность, чем ложноотрицательные результаты.

Это можно использовать, чтобы узнать, надежна ли модель или нет.

Напомнить:

Припоминание говорит нам, сколько реальных положительных случаев мы смогли правильно предсказать с помощью нашей модели. То есть отзыв представляет собой долю истинно положительных (TP) к общему количеству фактических положительных результатов (TP+FN). Отзыв является полезной оценочной метрикой в ​​тех случаях, когда ложноотрицательные результаты гораздо важнее, чем ложноположительные.

Отзыв иначе известен как чувствительность или истинно положительный показатель (TPR). Отзыв важен в области медицины, где не имеет значения, поднимем ли мы ложную тревогу, но фактические положительные случаи не должны оставаться незамеченными. То есть мы не хотим случайно пренебрегать инфицированным covid-19 человеком и позволять ему смешиваться со здоровыми людьми, что может привести к распространению вируса covid-19.

Коэффициент ложноотрицательных результатов (FNR):

Ложноотрицательный показатель (FNR) говорит нам, какая часть больных людей была неправильно классифицирована классификатором как здоровые.

Желательны более высокий TPR и более низкий FNR, поскольку мы хотим правильно классифицировать положительный класс.

Специфичность или истинно отрицательный показатель (TNR):

Специфичность будет означать определение доли здоровых людей, которые были правильно идентифицированы моделью.

Коэффициент ложных срабатываний (FPR):

FPR говорит нам, какая часть здоровых людей была неправильно классифицирована моделью как больные.

Желательно более высокое TNR и более низкое FPR, поскольку мы хотим правильно классифицировать отрицательный класс.

Кривая AUC-ROC:

AUC-ROC — это показатель оценки, используемый для оценки эффективности классификации при различных пороговых значениях. Кривая ROC (рабочие характеристики приемника) представляет собой кривую вероятности, а AUC (площадь под кривой) представляет собой меру разделимости. Он говорит о том, насколько хорошо модель различает классы. Кривая ROC построена с TPR (ось y) против FPR (ось x). Чем выше AUC, тем лучше модель различает больных и здоровых людей.

Оценка F1:

Когда возникают случаи, когда интерпретатор не имеет четкого представления о том, важна ли точность или важна полнота, F1-оценка берет на себя инициативу. Оценка F1 представляет собой гармоничное среднее значений точности и полноты, поэтому она дает общее представление об этих двух показателях. Он максимален, когда Точность равна Отзыву. Эта оценочная метрика является мерой общей правильности, которой наша модель достигла в среде положительного прогноза.

На практике, когда мы пытаемся повысить точность нашей модели, полнота снижается, и наоборот. F1-score фиксирует обе метрики как одно значение. Тем не менее, интерпретируемость F1-показателя оставляет желать лучшего, особенно мы не знаем, что максимизирует наш классификатор — точность или полнота. Следовательно, он используется в сочетании с другими показателями оценки, что дает нам полное представление о результате.

Оценка регрессионной модели:

Существует множество различных показателей оценки, но только некоторые из них подходят для использования в регрессии. В отличие от классификации, точность регрессионной модели проиллюстрировать немного сложнее. Точность в случае регрессии — это просто то, насколько близко наше предсказание модели к реальному значению, поскольку невозможно предсказать точное значение.

Средняя абсолютная ошибка (MAE):

MAE — это очень простая метрика, которая вычисляет абсолютную разницу между фактическими и прогнозируемыми значениями. Эта абсолютная разница называется ошибкой. MAE просто суммирует все ошибки и делит их на общее количество наблюдений.

Среднеквадратическая ошибка (MSE):

MSE похож на MAE, в отличие от MAE, который учитывает абсолютную разницу, MSE вычисляет сумму квадратов ошибки прогнозирования, которая представляет собой фактический результат минус прогнозируемый результат, а затем делится на общее количество наблюдений.

Среднеквадратическая ошибка (RMSE):

RMSE — это просто квадратный корень из MSE. RMSE предпочтительнее MSE, поскольку MSE рассчитывается по квадрату ошибки и может быть слишком большим в цифре. Таким образом, RMSE рассматривается, поскольку он возвращает к тому же уровню ошибки прогнозирования и упрощает интерпретацию.

R в квадрате:

R-квадрат — это статистическая метрика, используемая в регрессионной модели, которая определяет долю дисперсии зависимой переменной, которая может быть объяснена независимой переменной. Проще говоря, R в квадрате показывает, насколько хорошо данные соответствуют регрессионной модели.

Значение R Square находится в диапазоне от 0 до 1, и большее значение указывает на лучшее соответствие между прогнозом и фактическим значением. R-квадрат не учитывает проблему переобучения. Эта проблема возникает, когда модель принимает во внимание слишком много независимых переменных и усложняется, поскольку может очень хорошо соответствовать обучающим данным и плохо работать на тестовых данных. Именно здесь вступает в игру скорректированный квадрат R, поскольку он наказывает дополнительные независимые переменные, которые добавляются в модель, и корректирует метрику, чтобы предотвратить проблемы переобучения.

Оптимизация модели

Алгоритмы машинного обучения имеют гиперпараметры, которые можно настроить, чтобы алгоритм соответствовал конкретному набору данных. хотя тип гиперпараметров известен, их конкретное влияние на набор данных неизвестно. Следовательно, мы можем подобрать различные гиперпараметры к алгоритму и найти подходящий параметр, который лучше всего соответствует набору данных.

Настройка гиперпараметров:

Модель машинного обучения строится с рядом параметров, которые изучаются из существующих данных во время обучения. Эти параметры являются параметрами модели. Параметры модели различаются в зависимости от характера данных и не находятся под нашим контролем. Параметры, которые используются для управления поведением модели и регулируются для получения импровизированной модели с оптимальными характеристиками, называются гиперпараметрами. Проще говоря, параметры модели извлекаются из данных, а гиперпараметры настраиваются для наилучшего соответствия.

Настройка гиперпараметров в основном называется настройкой параметров для получения наилучшей модели. Поиск лучшего гиперпараметра может быть утомительным, поэтому используются алгоритмы поиска, такие как поиск по сетке.

GridSearchCV:

Модель машинного обучения оценивается по ряду гиперпараметров. Такой подход называется GridSearchCV, поскольку он ищет наилучший набор гиперпараметров из сетки значений гиперпараметров.

Например, если мы хотим установить два гиперпараметра C и Alpha модели классификатора логистической регрессии, матрица строится с другим набором значений для C и Alpha. Этот метод будет строить модели со всеми возможными комбинациями гиперпараметров, и выбираются правильные гиперпараметры, которые дают оптимальные результаты.

Для комбинации C=0,3 и Alpha=0,2 показатель производительности 0,726 кажется самым высоким, поэтому он выбран.

Извлечение признаков

Извлечение признаков относится к процессу преобразования необработанных данных в признаки, которые сохраняют информацию, содержащуюся в исходном наборе данных. Это дает лучший результат, чем простое применение алгоритма машинного обучения к необработанному набору данных.

Анализ главных компонентов (АПК):

Анализ основных компонентов — это алгоритм обучения без учителя, который используется для уменьшения размерности в машинном обучении. Ортогональность — это свойство линейной алгебры, которое используется для проверки того, перпендикулярны ли два вектора друг другу, т. е. две функции не коррелируют друг с другом. С помощью ортогонального преобразования PCA преобразует коррелированные признаки в линейно некоррелированные признаки. Эти преобразованные признаки называются главными компонентами.

Свойства PCA:

  • Главный компонент должен быть линейной комбинацией исходных признаков.
  • Эти компоненты ортогональны, т. е. корреляция между парой переменных равна нулю.
  • Важность каждого компонента уменьшается при переходе от 1 к n, это означает, что 1 ПК имеет наибольшее значение, а n ПК будет иметь наименьшее значение.

Этапы PCA:

  1. Стандартизация: этот шаг является основой анализа PCA. Выполняется стандартизация, в результате которой все переменные приводятся к одному масштабу.
  2. Ковариационная матрица: этот шаг включает в себя вычисление ковариационной матрицы, которая дает взаимосвязь между входными переменными. В зависимости от знака ковариации алгоритм понимает, существует ли прямая или обратная связь между переменными. Этот шаг важен в случае уменьшения размерности, поскольку сильно коррелированные переменные должны обрабатываться соответствующим образом при выполнении PCA.
  3. Собственные значения и собственные векторы: Собственные векторы и собственные значения вычисляются из ковариационной матрицы. Собственные векторы показывают направление осей с высокой информацией, а коэффициенты этих собственных векторов называются собственными значениями, которые показывают величину дисперсии, которую несет каждый из ПК. Ранжируя собственные векторы в порядке их собственных значений, мы получаем ПК в порядке их значимости. Получив новый набор функций, мы сохраним только большинство ПК с наиболее актуальной или важной информацией, а другие ненужные функции будут удалены.

Выбор функции:

При построении модели машинного обучения мы можем использовать каждую функцию в наборе данных, что приводит к снижению общей производительности и точности модели. Очень важно определить и выбрать наиболее подходящие функции из данных и удалить ненужные или менее важные функции.

Выбор функций — это способ выбора подмножества наиболее релевантных функций из исходного набора функций путем удаления избыточных, нерелевантных или зашумленных функций.

Важность выбора функции:

  • Это позволяет алгоритму машинного обучения обучаться быстрее.
  • Это помогает упростить модель, чтобы исследователи могли легко ее интерпретировать.
  • Это уменьшает переоснащение и помогает избежать проклятия размерности.

Существует множество методов, которые можно использовать для подмножества нашего пространства признаков и улучшения работы модели.

Пошаговый выбор вперед:

Прямой выбор — это итерационный метод, при котором мы обучаем n моделей, используя каждую функцию (n), взятую отдельно, и выбираем функцию, которая дает наилучшую производительность. Мы продолжаем добавлять функцию, которая лучше всего улучшает нашу модель, пока добавление новой переменной не улучшит производительность модели.

Пошаговый выбор назад:

Обратная элиминация противоположна прямой селекции. В этом подходе мы начинаем со всех функций и удаляем наименее значимую функцию на каждой итерации, что повышает производительность модели. Этот процесс исключения продолжается до тех пор, пока удаление функций не улучшит производительность модели.

Практическое приложение с использованием Python

Теперь, когда мы рассмотрели концепции, используемые для повышения производительности модели машинного обучения, мы можем поместить это в приложение с использованием Python. Мы уже создали класс в предыдущем блоге для построения модели линейной регрессии, модели классификации и функций создания функций. Давайте продолжим добавлять функциональные модули в тот же класс для лучшего понимания.

Следующие функции представляют собой новые дополнения/обновления к ранее созданному классу Python.

  • Функция class_report — в дополнение к отчету о классификации добавлена ​​кривая оценки модели AUC и ROC.
  • Функция classification_model_with_optimization — эта функция строит классификационную модель дерева решений, которая предсказывает, будет ли цена закрытия следующего дня больше или меньше цены закрытия текущего дня. Эта функция имеет необязательные параметры для применения концепций feature_selection, hyper_parameter_tuning, apply_pca для улучшения модели.

Заключение

В этом блоге кратко изложено, каким должен быть сквозной конвейер машинного обучения, в частности, правильное закрытие одного проекта машинного обучения. т. е. оптимизация модели и выбор наилучшего признака. Также обсуждаются метрики оценки модели для различных сценариев.