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

В любом эксперименте по машинному обучению у вас будет набор данных для обучения, на котором вы будете обучать свою модель, и набор данных для тестирования/разработки/удержания для оценки и настройки вашей модели. Предположим, что ожидаемая точность вашей модели составляет 95% (т.е. ошибка 5%), а набор обучающих данных дает точность 85% (т.е. ошибка 15%), а набор данных удержания дает точность 14% (т.е. ошибка 16%).

Смещение. Смещение — это частота ошибок в вашем наборе обучающих данных, т. е. 15 % в приведенном выше примере.

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

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

Основываясь на значениях смещения и дисперсии, мы можем иметь следующие ситуации:

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

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

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

Хорошая производительность. Наша модель будет работать очень хорошо, если у нас будет низкое смещение и низкая дисперсия.

Для любой модели машинного обучения будет базовая частота ошибок (например, если мы предскажем, что все невидимые данные относятся к классу с более высокой вероятностью, например, все кредитные карточки должны быть одобрены) и оптимальная частота ошибок/ Байесовская оценка (например, ручная работа, выполняемая человеком для идентификации изображений кошек и собак). Другими словами, ваша модель ML должна работать намного лучше, чем базовая частота ошибок, и ближе к оптимальной частоте ошибок (в некоторых редких случаях даже побеждать людей, например, в шахматах / го). Если вы достигаете смещения, почти равного оптимальной частоте ошибок, то все в порядке, но если у вас есть устранимая систематическая ошибка, т. е. разница между смещением и оптимальной частотой, тогда вы можете оптимизировать свои гиперпараметры или использовать сложную модель. В случае высокой дисперсии добавьте данные в набор обучающих данных, чтобы они обобщались.

Как уменьшить предвзятость?

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

Разработка признаков – Выполните разработку признаков, чтобы добавить более качественные входные переменные или предикторы.

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

Уменьшить регуляризацию: уменьшить штраф, применяемый к модели, который может быть в виде исключения или регуляризации L1/L2.

Как уменьшить дисперсию?

Дополнительные обучающие данные. Добавьте дополнительные обучающие данные, чтобы модель обобщилась и лучше работала с тестовым набором данных.

Штраф для модели — применение штрафа к вашей модели, например отсев или регуляризация L1/L2.

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

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

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

Кривые обучения

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