Кросс-валидация в машинном обучении с использованием Python

Beginner

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

Введение

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

В этом лабе мы будем изучать концепцию кросс-валидации и как реализовать ее с использованием библиотеки scikit-learn в Python.

Советы по ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook, чтобы получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем необходимые библиотеки

Сначала импортируем необходимые библиотеки для этого лаб.

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn import svm

Загружаем набор данных

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

X, y = datasets.load_iris(return_X_y=True)

Разделяем набор данных на обучающий и тестовый наборы

Для оценки производительности нашей модели нам нужно разделить набор данных на обучающий и тестовый наборы. Мы будем использовать функцию train_test_split из библиотеки scikit-learn для этого.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0)

Обучаем и оцениваем модель

Теперь обучим классификатор на основе методов опорных векторов (SVM) на обучающем наборе и оценим его производительность на тестовом наборе.

clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
score = clf.score(X_test, y_test)
print("Accuracy: ", score)

Резюме

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