Валидационные кривые: построение оценок для оценки моделей

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

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

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку 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)

Резюме

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