Итерации без переобучения

Проектирование рабочих процессов машинного обучения на Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

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

Проектирование рабочих процессов машинного обучения на Python

На той же схеме показано, что из продакшна можно извлекать дополнительные данные для дальнейшей настройки модели.

Проектирование рабочих процессов машинного обучения на Python

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

Проектирование рабочих процессов машинного обучения на Python

На той же схеме модель в продакшне обозначена как чемпион, а модель в разработке — как претендент.

Проектирование рабочих процессов машинного обучения на Python

Результаты кросс-валидации

grid_search = GridSearchCV(pipe, params, cv=3, return_train_score=True)
gs = grid_search.fit(X_train, y_train)
results = pd.DataFrame(gs.cv_results_)
results[['mean_train_score', 'std_train_score', 
   'mean_test_score', 'std_test_score']]
   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
...
Проектирование рабочих процессов машинного обучения на Python

Результаты кросс-валидации

   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
4             0.986            0.003            0.728           0.009
5             0.995            0.002            0.751           0.008

Наблюдения:

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

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

Проектирование рабочих процессов машинного обучения на Python

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

Проектирование рабочих процессов машинного обучения на Python

Обнаружение переобучения

  • CV Training Score >> CV Test Score
    • переобучение на этапе подбора модели
    • снизить сложность классификатора
    • добавить больше обучающих данных
    • увеличить число блоков CV
  • CV Test Score >> Validation Score
    • переобучение на этапе настройки модели
    • уменьшить число блоков CV
    • сократить размер сетки параметров

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

Проектирование рабочих процессов машинного обучения на Python

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

Проектирование рабочих процессов машинного обучения на Python

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

Проектирование рабочих процессов машинного обучения на Python

«Эксперт по CV» в вашем резюме!

Проектирование рабочих процессов машинного обучения на Python

Preparing Video For Download...