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



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

Ограничения простого сплита Train-test

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

Ось x представляет степень полинома, включенного в модель (уравнение для простой линейной регрессии имеет степень 1, но если мы включим в уравнение квадратичные члены, то мы получим уравнение степени 2 и т. Д.). Ось y представляет собой среднеквадратичную ошибку (MSE). Примечание. В этом случае метрикой оценки является MSE, а не значение R-квадрат. Общий график отображает десять различных оценок MSE по моделям с разной степенью полинома от 10 случайных разделений на поезд-тест. Хотя общие тенденции среди всех кривых, по-видимому, имеют одинаковую форму, что указывает на то, что MSE является самым низким для модели, в которой есть квадратичные члены, высота кривых сильно варьируется. Это подтверждает, что разные разбиения на поезд-тест приведут к разным MSE. Таким образом, когда мы проводим один сплит тест-поезд, мы получаем только один результат среди множества других, которые мы потенциально могли бы получить, если бы выполняли множество случайных разделений теста на поезд. Это мало что говорит нам об общих характеристиках модели.

Теперь рассмотрим еще один момент. Когда мы выполняем разделение «поезд-тест», в зависимости от размера данных нам часто приходится зарезервировать около 30–40% данных для тестового набора, чтобы иметь достаточно наблюдений в тестовом наборе для оценки прогнозов. Это очень большой набор данных, который не используется для обучения модели. Это не идеально, потому что обучение модели на нескольких наблюдениях обычно означает, что модель не будет очень хорошей.

Ограничения одного сплита поезд-тест:

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

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

Средство правовой защиты - перекрестная проверка k-Fold

k-кратная перекрестная проверка - это метод повторной выборки, который по сути представляет собой разделение на тренировку на стероидах: мы случайным образом разделяем данные на k групп (складок) равного размера. Первая группа становится тестовым набором, а оставшиеся k-1 группы, объединенные вместе, становятся набором поездов. Модель обучается и строится на наборе поездов и оценивается на наборе тестов с оценкой R_squared (в предположении модели линейной регрессии) так же, как в простом разбиении на поезд-тест. Однако эта процедура повторяется k раз, и каждый раз набор поездов и испытательный набор оказываются разными. k моделей построены и оценены, в результате чего получено k различных оценок R_squared. Среднее значение этих оценок - это оценка перекрестной проверки. Вот как получить оценку перекрестной проверки в scikit-learn:

from sklearn.model_selection import cross_val_score
cv_score = cross_val_score(model, X, y, cv=5).mean()

где модель - это созданная модель, которую мы хотим подогнать и оценить, X - это данные, содержащие функции прогнозирования, а y - это целевая функция, которую мы хотим предсказывать.

Визуальный пример ниже показывает, как данные разделяются 4 раза при 4-кратной перекрестной проверке, для которой наш тестовый набор составляет 25%, а набор поездов составляет 75% наших данных для данной кратности.

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

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

На рисунке выше показано, как 10-кратная перекрестная проверка выполнялась 10 раз, каждый раз с различным случайным разделением данных на десять частей. Каждая перекрестная проверка дает один балл перекрестной проверки. Имеется 10 немного разных кривых ошибок перекрестной проверки, но эти кривые не так сильно отличаются, как в случае выполнения 10 разных разделений на поезд-тест. Примечание. В этом случае метрикой оценки является MSE, а не значение R-квадрат. Таким образом, результаты 10 перекрестных проверок не так сильно различаются, как в случае выполнения 10 простых разделений на обучающий тест.

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

Оценка перекрестной проверки дает нам более надежное и общее представление о том, как модель будет работать на основе выборочных данных.

Дисперсия

До сих пор термин «изменчивость» или «дисперсия» использовался несколько раз. На самом деле, это очень важный термин при оценке модели и тесно связан с понятием смещения. Вы когда-нибудь слышали афоризм «Все модели неверны, но некоторые полезны?» Модель - это математическая функция, которая представляет собой упрощенное представление некоторого явления или процесса, отраженного в наших данных. Хорошая модель - это та, которая имеет необходимый уровень сложности: она достаточно проста, чтобы исключить все ненужные и не относящиеся к делу детали, которые нам не важны, но она достаточно сложна, чтобы точно представить то, что мы хотим смоделировать.

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

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

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

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

Дисперсия - это величина, на которую прогнозы модели изменились бы, если бы модель обучалась с использованием другого набора поездов.

Предвзятость

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

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

Вот полезная визуализация:

Как правило, более сложные модели будут иметь большую дисперсию, а слишком простые модели будут страдать от высокой систематической ошибки.

Компромисс смещения и дисперсии

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

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

Как все это связано с перекрестной проверкой?

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

Если бы мы выбрали метрику оценки для ошибки, а не для оценки эффективности нашей модели, тогда «высокий» и «низкий» в таблице поменялись местами.

Важно помнить о выбранной нами метрике оценки: если мы оцениваем модель на предмет точности, то наша цель - максимизировать ее. Если мы оцениваем модель на предмет ошибок, наша цель - минимизировать ее.

Базовая точность

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

Давайте рассмотрим

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