ハイパーパラメータとは?グリッドサーチ・ランダムサーチの使い方を初心者向けに解説|統計自主学習⑭

はじめに

機械学習モデルを作成するとき、
「どんなモデルを選ぶか」だけでなく、
「そのモデルの設定をどうするか」も非常に重要なポイントです。

このモデル設定を調整する作業が、
「ハイパーパラメータチューニング」です。

この記事では、

  • ハイパーパラメータとは何か?
  • グリッドサーチとは?
  • ランダムサーチとは? について、わかりやすく解説します!

🔹 統計自主学習シリーズまとめページはこちら
【初心者向け】統計自主学習シリーズまとめ


ハイパーパラメータとは?

ハイパーパラメータとは、
モデルが学習を始める前に自分で決める必要がある設定値のことです。

  • モデル内部で自動的に学習されるパラメータ(例:線形回帰の重み)はパラメータ
  • 手動で決める設定(例:決定木の深さ、KNNのkの値)はハイパーパラメータ

モデルハイパーパラメータ例
決定木木の最大深さ(max_depth)
KNN近傍数(k)
SVM正則化パラメータ(C)、カーネルの種類
ランダムフォレスト決定木の本数(n_estimators)

なぜ重要?

ハイパーパラメータをうまく設定することで、

  • モデルの精度を大幅に向上できる
  • 過学習やアンダーフィットを防ぐことができる

つまり、モデルの実力を最大限引き出すために欠かせない作業です!


グリッドサーチとは?

グリッドサーチとは、
指定したハイパーパラメータの組み合わせを総当たりで試す方法です。

例えば、決定木の

  • max_depth:3, 5, 7
  • min_samples_split:2, 4

を指定した場合、

  • (3, 2)
  • (3, 4)
  • (5, 2)
  • (5, 4)
  • (7, 2)
  • (7, 4)

というすべての組み合わせを試して、一番性能が良いものを選びます。

特徴

  • 網羅的に探すため、最適解に近いものを見つけやすい
  • しかし、組み合わせが増えると計算コストが非常に高くなる(時間がかかる)

ランダムサーチとは?

ランダムサーチとは、
指定した範囲の中からランダムにハイパーパラメータを選んで試す方法です。

全部を試すのではなく、
ある程度「運」に任せて探索することで、
時間を大幅に節約できます。

特徴

  • 少ない計算量でそこそこ良いパラメータを見つけられる
  • グリッドサーチほど完璧な最適解は保証できないが、現実的

Pythonでの実装例(scikit-learn使用)

簡単に、Pythonでグリッドサーチとランダムサーチを実装するコード例を紹介します!

グリッドサーチ

pythonコピーする編集するfrom sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

# モデル
rf = RandomForestClassifier()

# パラメータ候補
param_grid = {
    'n_estimators': [50, 100, 150],
    'max_depth': [3, 5, 7]
}

# グリッドサーチ
grid_search = GridSearchCV(rf, param_grid, cv=5)
grid_search.fit(X_train, y_train)

print("最適なパラメータ:", grid_search.best_params_)

ランダムサーチ

pythonコピーする編集するfrom sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint

# パラメータ分布
param_dist = {
    'n_estimators': randint(50, 150),
    'max_depth': randint(3, 10)
}

# ランダムサーチ
random_search = RandomizedSearchCV(rf, param_distributions=param_dist, n_iter=10, cv=5, random_state=42)
random_search.fit(X_train, y_train)

print("最適なパラメータ:", random_search.best_params_)

まとめ

  • ハイパーパラメータは、モデルの性能を左右する重要な設定項目
  • グリッドサーチは総当たりで探す(確実だが計算コスト高)
  • ランダムサーチはランダムに探す(スピーディー)
  • 問題に応じて、どちらを使うか選ぼう!

✅ 次回は、より発展的なテーマ
「次元削減(主成分分析PCA)」に挑戦していきます!

【あわせて読みたい】

🔹 次におすすめの記事

主成分分析(PCA)で次元削減!データの本質を捉える方法

🔹 関連記事
「正規分布とは?現実世界と機械学習での使われ方・特徴をやさしく解説」

主要6モデルをやさしく解説!線形回帰・ロジスティック回帰・KNN・SVM・決定木・ランダムフォレストとは?

分類問題の基礎!混同行列・精度・再現率・F1スコアの正しい使い方

なぜ標準化・正規化でモデルの精度が上がるのか?実例と一緒に解説

🔹 統計自主学習シリーズまとめページはこちら
【初心者向け】統計自主学習シリーズまとめ

コメント

タイトルとURLをコピーしました