9

問題にランダム フォレストを使用しようとしています (以下は、私のデータではなく、ボストン データセットのサンプル コードです)。ハイパーパラメータの調整に使用する予定GridSearchCVですが、さまざまなパラメータの値の範囲はどのようにする必要がありますか? 選択している範囲が正しいことをどのように確認できますか?

私はインターネットでそれについて読んでいて、誰かが2回目のグリッド検索で最適化を「ズームイン」することを提案しました(たとえば、10の場合は[5、20、50]を試してください)。

これは正しいアプローチですか?ランダム フォレストに必要なすべてのパラメーターに対してこのアプローチを使用しますか? このアプローチは、「良い」組み合わせを見逃す可能性がありますよね?

import numpy as np
from sklearn.grid_search import GridSearchCV
from sklearn.datasets import load_digits
from sklearn.ensemble import RandomForestRegressor
digits = load_boston()
X, y = dataset.data, dataset.target
model = RandomForestRegressor(random_state=30)
param_grid = { "n_estimators"      : [250, 300],
           "criterion"         : ["gini", "entropy"],
           "max_features"      : [3, 5],
           "max_depth"         : [10, 20],
           "min_samples_split" : [2, 4] ,
           "bootstrap": [True, False]}
grid_search = GridSearchCV(clf, param_grid, n_jobs=-1, cv=2)
grid_search.fit(X, y)
print grid_search.best_params_
4

1 に答える 1

5

粗いものから細かいものへは、実際には最適なパラメーターを見つけるためによく使用されます。最初は幅広いパラメータから始めて、最良の結果に近づくにつれてそれらを改良します。

scikit-learn、 hyperopt-sklearn のハイパーパラメータ最適化を行う素晴らしいライブラリを見つけました。RandomForest またはその他の標準的な分類子を自動調整できます。異なる分類子を同時に自動調整してベンチマークすることもできます。

最良のパラメーターを取得するためにさまざまなスキームを実装しているため、それから始めることをお勧めします。

ランダム検索

パルゼン推定器の木 (TPE)

アニーリング

ガウス プロセス ツリー

編集:

回帰の場合でも、予測がテスト セットで適切かどうかをアサートする必要があります。

とにかく、粗いものから細かいものへのアプローチは依然として有効であり、どの推定器にも有効です。

于 2016-02-02T21:55:19.720 に答える