Кривая ошибок (Learning Curve) - Лена Капаца
Кривая ошибок (Learning Curve) by Лена Капаца Nov. 26, 2023 Основы

Кривая ошибок — это инструмент для анализа и интерпретации производительности Модели (Model). Она позволяет понять, как изменения в объеме данных влияют на способность модели к обучению. Это особенно полезно в следующих сценариях:

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

2. Выявление проблем с обучением: Анализ кривой ошибок может помочь выявить проблемы с обучением, такие как недообучение (underfitting) или переобучение (overfitting).

3. Принятие решений о данных: Кривая ошибок помогает понять, сколько данных необходимо для достижения оптимальной производительности модели, что может быть полезно при принятии решений о сборе или использовании дополнительных данных.

Для построения кривой ошибок на Python мы можем использовать библиотеки, такие как matplotlib и scikit-learn:

 

 

import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import learning_curve
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

 

 

Подгрузим датасет о цветах ириса:

 


iris = load_iris()
X, y = iris.data, iris.target

 

 

Обучим модель логистической регрессии:

 


model = LogisticRegression()

 

 

Построим кривую ошибок:

 


train_sizes, train_scores, test_scores = learning_curve(
    model, X, y, cv=5, scoring='accuracy', train_sizes=np.linspace(0.1, 1.0, 10)
)

 

 

Рассчитаем средние значения:

 


train_scores_mean = np.mean(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)

 

 

Построим график:

 


plt.figure(figsize=(10, 6))
plt.plot(train_sizes, train_scores_mean, label='Training Accuracy')
plt.plot(train_sizes, test_scores_mean, label='Validation Accuracy')
plt.title('Learning Curve')
plt.xlabel('Training Examples')
plt.ylabel('Accuracy')
plt.legend()
plt.show()

 

 

 

 

В этом примере мы использовали модель логистической регрессии и оценили кривую ошибок с использованием Кросс-валидации (Cross Validation). График показывает изменение точности как на обучающем, так и на валидационном наборах данных при изменении размера обучающего набора.

Ключевые моменты анализа кривой ошибок:

1. Недообучение (Underfitting): если кривая ошибок показывает низкую точность как на обучении, так и на валидации, модель, вероятно, страдает от недообучения, и добавление большего объема данных может улучшить производительность.

2. Переобучение (Overfitting): если кривая ошибок показывает высокую точность на обучении, но низкую на валидации, возможно, модель переобучена. В этом случае также полезно рассмотреть применение регуляризации или уменьшение сложности модели.

3. Насыщение (Saturation): когда кривая ошибок на валидации перестает значительно улучшаться с увеличением объема данных, это может свидетельствовать о насыщении модели.

 

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь: https://colab.research.google.com/drive/1b2jHM2f_vXHmNAnuO5jg_stuP-5W1pUg#scrollTo=Ola3Tg5Ixp61

 

© Лена Капаца. Все права защищены.