推定器のハイパーパラメータのチューニング

Beginner

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

はじめに

ハイパーパラメータは、推定器によって直接学習されないパラメータです。これらは、推定器クラスのコンストラクタに引数として渡されます。推定器のハイパーパラメータを調整することは、効果的な機械学習モデルを構築するための重要なステップです。これには、モデルの最良の性能をもたらすハイパーパラメータの最適な組み合わせを見つけることが含まれます。

Scikit-learn は、最良のハイパーパラメータを検索するためのいくつかのツールを提供しています:GridSearchCVRandomizedSearchCV。この実験では、これらのツールを使用したハイパーパラメータの調整プロセスを学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替えて、Jupyter Notebook を使用して練習します。

場合によっては、Jupyter Notebook が読み込み終了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。そうすれば、迅速に問題を解決します。

必要なライブラリをインポートする

まず、分析に必要なライブラリをインポートする必要があります。ハイパーパラメータの調整を行うために、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_)

まとめ

この実験では、GridSearchCVRandomizedSearchCV を使用して推定器のハイパーパラメータを調整する方法を学びました。推定器とパラメータグリッドを定義し、その後、それぞれグリッドサーチとランダムサーチを実行して、最適なハイパーパラメータの組み合わせを見つけました。ハイパーパラメータの調整は、機械学習モデルの性能を向上させるための重要なステップです。