はじめに
ハイパーパラメータは、推定器によって直接学習されないパラメータです。これらは、推定器クラスのコンストラクタに引数として渡されます。推定器のハイパーパラメータを調整することは、効果的な機械学習モデルを構築するための重要なステップです。これには、モデルの最良の性能をもたらすハイパーパラメータの最適な組み合わせを見つけることが含まれます。
Scikit-learn は、最良のハイパーパラメータを検索するためのいくつかのツールを提供しています:GridSearchCV と RandomizedSearchCV。この実験では、これらのツールを使用したハイパーパラメータの調整プロセスを学びます。
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_)
まとめ
この実験では、GridSearchCV と RandomizedSearchCV を使用して推定器のハイパーパラメータを調整する方法を学びました。推定器とパラメータグリッドを定義し、その後、それぞれグリッドサーチとランダムサーチを実行して、最適なハイパーパラメータの組み合わせを見つけました。ハイパーパラメータの調整は、機械学習モデルの性能を向上させるための重要なステップです。