コンテンツにスキップ

ハイパーパラメータチューニング

ハイパーパラメータチューニングは、モデルの最適な設定を見つけるプロセスです。MLOps DesktopにはOptunaが統合されており、Bayesian(TPE)、Random、Gridの3つの探索戦略をサポートしています。

  1. パイプラインを開く

    DataLoader → DataSplit → Trainer → Evaluatorの構成を用意します。

  2. Tuneモードを選択

    Trainerノードをクリックし、上部のTuneボタンを選択します(Train、Loadの隣)。

  3. モデルとターゲットを設定

    • Model Type: Linear Regression以外を選択(チューニング可能なパラメータがないため)
    • Target Column: 予測対象のカラム
  4. チューニング設定を開く

    Configure TuningボタンをクリックしてTuningPanelを開きます。

  5. パラメータを設定

    設定推奨値範囲
    Search StrategyBayesian (TPE)TPE, Random, Grid
    Number of Trials501-1000
    CV Folds32-10
    Scoring Metricaccuracy(分類)/ r2(回帰)各種
  6. 実行

    Runをクリックします。Trialsタブにリアルタイムで結果が表示されます。

Tree-structured Parzen Estimator — 推奨設定

  • 過去のトライアル結果を学習し、有望な領域を重点的に探索
  • 複雑な探索空間で高効率
  • 少ないトライアル数で良好な結果を得やすい
Trial 1-10: 探索フェーズ(ランダムに近い)
Trial 11+: 活用フェーズ(良好な領域に集中)

各モデルには、一般的なユースケースに最適化された探索範囲が設定されています。

パラメータ範囲タイプ
n_estimators50-300(ステップ50)Integer
max_depth[None, 10, 15, 20, 30]Categorical
min_samples_split2-10(ステップ2)Integer
min_samples_leaf1-4(ステップ1)Integer
パラメータ範囲タイプ
n_estimators50-300(ステップ50)Integer
learning_rate0.01-0.3Log-uniform
max_depth3-8(ステップ1)Integer
subsample0.7-1.0Uniform
パラメータ範囲タイプ
C0.1-100Log-uniform
kernel[rbf, linear, poly]Categorical
gamma[scale, auto]Categorical
パラメータ範囲タイプ
n_neighbors3-21(ステップ2)Integer
weights[uniform, distance]Categorical
metric[euclidean, manhattan, minkowski]Categorical
パラメータ範囲タイプ
hidden_layer_sizes[(50,), (100,), (100,50), (100,100)]Categorical
alpha0.0001-0.1Log-uniform
learning_rate_init0.0001-0.1Log-uniform
max_iter200-1000(ステップ100)Integer

最適化するメトリクスを選択します。

分類:

メトリクス用途
accuracyクラスが均衡している場合(デフォルト)
f1不均衡なクラス
precision偽陽性を最小化
recall偽陰性を最小化
roc_aucランキング品質

回帰:

メトリクス用途
r2全体的な適合度(デフォルト)
neg_mse大きな誤差にペナルティ
neg_mae外れ値に頑健
neg_rmseターゲットと同じ単位

チューニング中、Trialsタブにリアルタイムで結果が表示されます。

カラム説明
#トライアル番号
Score交差検証スコア(高いほど良好)
Parameters使用したハイパーパラメータ値
Duration実行時間
StatusComplete、Pruned、Failed

最良のトライアルにはスターアイコンが表示されます。

Trial 1: 0.823 n_estimators=150, max_depth=10 2.1s
Trial 2: 0.845 n_estimators=200, max_depth=15 2.8s
Trial 3: 0.831 n_estimators=100, max_depth=None 1.9s
...
★ Trial 17: 0.867 n_estimators=250, max_depth=20 3.2s ← 最良

チューニングではk分割交差検証を使用します(単純な訓練/テスト分割ではありません)。

  1. 訓練データをk個のフォールドに分割
  2. k回の学習と検証を実行(毎回異なるフォールドで検証)
  3. スコアを平均して最終トライアルスコアとする

単一分割よりも信頼性の高いスコアリングが可能です。

CVフォールドトレードオフ
2高速、高分散
3バランス(デフォルト)
5信頼性向上、低速
10最も信頼性が高い、最も低速

チューニングが完了すると:

  1. 最良のパラメータがTrialsタブに表示
  2. 最終モデルが最良のパラメータで全訓練データを使用して学習
  3. Evaluatorがチューニング済みモデルでメトリクスを計算

最良の設定は自動的に適用されます。

効果的なチューニングのヒント

Section titled “効果的なチューニングのヒント”

まず20-30トライアルで傾向を把握します。

Trial 1-30: 傾向を把握
→ 結果を確認
→ 必要に応じて探索空間を調整
→ さらに50-100トライアルを実行

Bayesian(TPE)はほぼすべてのケースでRandomサーチより優れています。Gridを使用するのは以下の場合のみです。

  • 非常に小さな探索空間
  • 網羅的なカバレッジが必要

小規模データにはCVフォールドを増やす

Section titled “小規模データにはCVフォールドを増やす”

1,000サンプル未満の場合、5分割CVを使用すると信頼性のあるスコアが得られます。

チューニングスコアが評価スコアよりはるかに高い場合、過学習の可能性があります。対策:

  • シンプルなモデル(推定器を減らす、浅い木を使用)
  • 正則化を強化(SVMのC、MLPのalpha

「Optunaがインストールされていません」

Section titled “「Optunaがインストールされていません」”
Terminal window
pip install optuna

「線形回帰はチューニングできません」

Section titled “「線形回帰はチューニングできません」”

線形回帰にはハイパーパラメータがありません。RidgeやLassoなど他のモデルを使用してください。

  • トライアル数を減らす(素早いテストには20-30)
  • GridではなくRandomまたはTPEを使用
  • CVフォールドを2に減らす
  • シンプルなモデルを使用(MLPよりLogistic Regression)

「10,000組み合わせを超えています」と表示される場合、探索空間が大きすぎます。TPEまたはRandomに切り替えてください。