Кривая ошибок — это инструмент для анализа и интерпретации производительности Модели (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
© Лена Капаца. Все права защищены.