Настройка гиперпараметров оценщика

Machine LearningMachine LearningBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Scikit-learn предоставляет несколько инструментов для поиска наилучших гиперпараметров: GridSearchCV и RandomizedSearchCV. В этом лабе мы рассмотрим процесс настройки гиперпараметров с использованием этих инструментов.

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/svm("Support Vector Machines") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/svm -.-> lab-71123{{"Настройка гиперпараметров оценщика"}} sklearn/model_selection -.-> lab-71123{{"Настройка гиперпараметров оценщика"}} sklearn/datasets -.-> lab-71123{{"Настройка гиперпараметров оценщика"}} ml/sklearn -.-> lab-71123{{"Настройка гиперпараметров оценщика"}} end

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

Сначала нам нужно импортировать необходимые библиотеки для нашего анализа. Мы будем использовать sklearn.model_selection для настройки гиперпараметров.

import numpy as np
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV

Загружаем датасет

Далее, загрузим датасет, с которым будем работать. Для этого упражнения мы можем использовать любой датасет по своему выбору.

from sklearn.datasets import load_iris

## Load the iris dataset
iris = load_iris()

## Split the data into features and target
X = iris.data
y = iris.target

Определяем оценщик и сетку параметров

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

from sklearn.svm import SVC

## Create an instance of the support vector classifier
svc = SVC()

## Define the parameter grid
param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [0.1, 0.01, 0.001], 'kernel': ['linear', 'rbf']}

Выполняем сеточный поиск с использованием кросс-валидации

Сеточный поиск последовательно исследует все возможные комбинации гиперпараметров в указанной сетке параметров. Он оценивает производительность каждой комбинации с использованием кросс-валидации.

## Create an instance of GridSearchCV
grid_search = GridSearchCV(svc, param_grid, cv=5)

## Fit the data to perform grid search
grid_search.fit(X, y)

## Print the best combination of hyperparameters
print('Best hyperparameters:', grid_search.best_params_)

Выполняем случайный поиск с использованием кросс-валидации

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

## Create an instance of RandomizedSearchCV
random_search = RandomizedSearchCV(svc, param_grid, cv=5, n_iter=10, random_state=0)

## Fit the data to perform randomized search
random_search.fit(X, y)

## Print the best combination of hyperparameters
print('Best hyperparameters:', random_search.best_params_)

Резюме

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