ハイパーパラメータチューニング
ハイパーパラメータチューニングは、モデルの最適な設定を見つけるプロセスです。MLOps DesktopにはOptunaが統合されており、Bayesian(TPE)、Random、Gridの3つの探索戦略をサポートしています。
- クイックスタートを完了済み
- Pythonパッケージ:
pip install optuna
チューニングの有効化
Section titled “チューニングの有効化”-
パイプラインを開く
DataLoader → DataSplit → Trainer → Evaluatorの構成を用意します。
-
Tuneモードを選択
Trainerノードをクリックし、上部のTuneボタンを選択します(Train、Loadの隣)。
-
モデルとターゲットを設定
- Model Type: Linear Regression以外を選択(チューニング可能なパラメータがないため)
- Target Column: 予測対象のカラム
-
チューニング設定を開く
Configure TuningボタンをクリックしてTuningPanelを開きます。
-
パラメータを設定
設定 推奨値 範囲 Search Strategy Bayesian (TPE) TPE, Random, Grid Number of Trials 50 1-1000 CV Folds 3 2-10 Scoring Metric accuracy(分類)/ r2(回帰) 各種 -
実行
Runをクリックします。Trialsタブにリアルタイムで結果が表示されます。
Tree-structured Parzen Estimator — 推奨設定
- 過去のトライアル結果を学習し、有望な領域を重点的に探索
- 複雑な探索空間で高効率
- 少ないトライアル数で良好な結果を得やすい
Trial 1-10: 探索フェーズ(ランダムに近い)Trial 11+: 活用フェーズ(良好な領域に集中)ランダムサーチ — シンプルな一様サンプリング
- 各トライアルが独立
- ベースライン比較に有用
- 広い探索空間に適している
全トライアル: 全空間からランダムにサンプリンググリッドサーチ — 網羅的な列挙
- すべての組み合わせをテスト
- 小規模な離散空間でのみ実用的
- 10,000組み合わせを超えると警告が表示
例:n_estimators: [50, 100, 150]max_depth: [5, 10, 15]= 計9トライアルモデル別の探索空間
Section titled “モデル別の探索空間”各モデルには、一般的なユースケースに最適化された探索範囲が設定されています。
Random Forest
Section titled “Random Forest”| パラメータ | 範囲 | タイプ |
|---|---|---|
n_estimators | 50-300(ステップ50) | Integer |
max_depth | [None, 10, 15, 20, 30] | Categorical |
min_samples_split | 2-10(ステップ2) | Integer |
min_samples_leaf | 1-4(ステップ1) | Integer |
Gradient Boosting
Section titled “Gradient Boosting”| パラメータ | 範囲 | タイプ |
|---|---|---|
n_estimators | 50-300(ステップ50) | Integer |
learning_rate | 0.01-0.3 | Log-uniform |
max_depth | 3-8(ステップ1) | Integer |
subsample | 0.7-1.0 | Uniform |
SVM (SVC/SVR)
Section titled “SVM (SVC/SVR)”| パラメータ | 範囲 | タイプ |
|---|---|---|
C | 0.1-100 | Log-uniform |
kernel | [rbf, linear, poly] | Categorical |
gamma | [scale, auto] | Categorical |
| パラメータ | 範囲 | タイプ |
|---|---|---|
n_neighbors | 3-21(ステップ2) | Integer |
weights | [uniform, distance] | Categorical |
metric | [euclidean, manhattan, minkowski] | Categorical |
MLPニューラルネットワーク
Section titled “MLPニューラルネットワーク”| パラメータ | 範囲 | タイプ |
|---|---|---|
hidden_layer_sizes | [(50,), (100,), (100,50), (100,100)] | Categorical |
alpha | 0.0001-0.1 | Log-uniform |
learning_rate_init | 0.0001-0.1 | Log-uniform |
max_iter | 200-1000(ステップ100) | Integer |
スコアリングメトリクス
Section titled “スコアリングメトリクス”最適化するメトリクスを選択します。
分類:
| メトリクス | 用途 |
|---|---|
accuracy | クラスが均衡している場合(デフォルト) |
f1 | 不均衡なクラス |
precision | 偽陽性を最小化 |
recall | 偽陰性を最小化 |
roc_auc | ランキング品質 |
回帰:
| メトリクス | 用途 |
|---|---|
r2 | 全体的な適合度(デフォルト) |
neg_mse | 大きな誤差にペナルティ |
neg_mae | 外れ値に頑健 |
neg_rmse | ターゲットと同じ単位 |
Trialsタブ
Section titled “Trialsタブ”チューニング中、Trialsタブにリアルタイムで結果が表示されます。
| カラム | 説明 |
|---|---|
| # | トライアル番号 |
| Score | 交差検証スコア(高いほど良好) |
| Parameters | 使用したハイパーパラメータ値 |
| Duration | 実行時間 |
| Status | Complete、Pruned、Failed |
最良のトライアルにはスターアイコンが表示されます。
Trial 1: 0.823 n_estimators=150, max_depth=10 2.1sTrial 2: 0.845 n_estimators=200, max_depth=15 2.8sTrial 3: 0.831 n_estimators=100, max_depth=None 1.9s...★ Trial 17: 0.867 n_estimators=250, max_depth=20 3.2s ← 最良チューニングではk分割交差検証を使用します(単純な訓練/テスト分割ではありません)。
- 訓練データをk個のフォールドに分割
- k回の学習と検証を実行(毎回異なるフォールドで検証)
- スコアを平均して最終トライアルスコアとする
単一分割よりも信頼性の高いスコアリングが可能です。
| CVフォールド | トレードオフ |
|---|---|
| 2 | 高速、高分散 |
| 3 | バランス(デフォルト) |
| 5 | 信頼性向上、低速 |
| 10 | 最も信頼性が高い、最も低速 |
チューニング完了後
Section titled “チューニング完了後”チューニングが完了すると:
- 最良のパラメータがTrialsタブに表示
- 最終モデルが最良のパラメータで全訓練データを使用して学習
- Evaluatorがチューニング済みモデルでメトリクスを計算
最良の設定は自動的に適用されます。
効果的なチューニングのヒント
Section titled “効果的なチューニングのヒント”少ないトライアルから開始
Section titled “少ないトライアルから開始”まず20-30トライアルで傾向を把握します。
Trial 1-30: 傾向を把握→ 結果を確認→ 必要に応じて探索空間を調整→ さらに50-100トライアルを実行ほとんどの場合はTPEを使用
Section titled “ほとんどの場合はTPEを使用”Bayesian(TPE)はほぼすべてのケースでRandomサーチより優れています。Gridを使用するのは以下の場合のみです。
- 非常に小さな探索空間
- 網羅的なカバレッジが必要
小規模データにはCVフォールドを増やす
Section titled “小規模データにはCVフォールドを増やす”1,000サンプル未満の場合、5分割CVを使用すると信頼性のあるスコアが得られます。
過学習の確認
Section titled “過学習の確認”チューニングスコアが評価スコアよりはるかに高い場合、過学習の可能性があります。対策:
- シンプルなモデル(推定器を減らす、浅い木を使用)
- 正則化を強化(SVMの
C、MLPのalpha)
トラブルシューティング
Section titled “トラブルシューティング”「Optunaがインストールされていません」
Section titled “「Optunaがインストールされていません」”pip install optuna「線形回帰はチューニングできません」
Section titled “「線形回帰はチューニングできません」”線形回帰にはハイパーパラメータがありません。RidgeやLassoなど他のモデルを使用してください。
チューニングが遅い
Section titled “チューニングが遅い”- トライアル数を減らす(素早いテストには20-30)
- GridではなくRandomまたはTPEを使用
- CVフォールドを2に減らす
- シンプルなモデルを使用(MLPよりLogistic Regression)
グリッドサーチ警告
Section titled “グリッドサーチ警告”「10,000組み合わせを超えています」と表示される場合、探索空間が大きすぎます。TPEまたはRandomに切り替えてください。