Введение
В машинном обучении каждый оценщик имеет свои достоинства и недостатки. Обобщенная ошибка оценщика может быть разложена на смещение, дисперсию и шум. Смещение оценщика - это средняя ошибка для различных наборов обучающих данных, в то время как дисперсия показывает его чувствительность к различным наборам обучающих данных. Шум - это свойство данных.
В этом лабе мы исследуем, как использовать валидационные кривые для оценки производительности машинных обученных моделей. Валидационные кривые позволяют нам построить влияние одного гиперпараметра на обучающую оценку и валидационную оценку, помогая определить, переобучается ли модель или недообучается для различных значений гиперпараметра.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook, чтобы получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки и загружаем данные
Начнем с импорта необходимых библиотек и загрузки набора данных. В этом примере мы будем использовать набор данных Iris.
import numpy as np
from sklearn.model_selection import validation_curve
from sklearn.datasets import load_iris
from sklearn.linear_model import Ridge
np.random.seed(0)
X, y = load_iris(return_X_y=True)
Перемешиваем данные
Чтобы обеспечить случайность в нашем анализе, давайте перемешаем порядок образцов в наборе данных.
indices = np.arange(y.shape[0])
np.random.shuffle(indices)
X, y = X[indices], y[indices]
Построим валидационную кривую
Теперь давайте построим валидационную кривую с использованием функции validation_curve. Мы будем использовать оценщик Ridge и изменять гиперпараметр alpha в диапазоне значений.
param_range = np.logspace(-7, 3, 3)
train_scores, valid_scores = validation_curve(
Ridge(), X, y, param_name="alpha", param_range=param_range, cv=5)
Резюме
В этом лабе мы изучили концепцию валидационных кривых и то, как их можно использовать для оценки машинно-обученных моделей. Построив обучающую оценку и валидационную оценку для различных значений гиперпараметров, мы можем определить, переобучается ли модель или недообучается. Эта информация помогает нам выбрать наилучшие гиперпараметры для наших моделей и повысить их производительность.