Pythonでのハイパーパラメータチューニング
Alex Scriven
Data Scientist
現実の遺伝的進化では、次のように進みます。
同じ考え方をハイパーパラメータチューニングに適用できます。
これは情報を活用する探索で、次の利点があります。
遺伝的チューニングに有用なライブラリに TPOT があります。
TPOT はデータサイエンスのアシスタントです。TPOT は、遺伝的プログラミングで機械学習のパイプラインを最適化する Python の自動機械学習ツールです。
パイプラインにはモデル(複数も可)だけでなく、特徴量処理なども含まれます。さらに、作成したパイプラインの Python コードを返します。
TPOT 分類器の主な引数:
generations: 学習の反復回数。population_size: 各反復後に保持するモデル数。offspring_size: 各反復で生成するモデル数。mutation_rate: ランダム性を適用するパイプラインの割合。crossover_rate: 各反復で交配させるパイプラインの割合。scoring: 最良モデルを決める評価関数。cv: 使用する交差検証法。簡単な例:
from tpot import TPOTClassifier tpot = TPOTClassifier(generations=3, population_size=5, verbosity=2, offspring_size=10, scoring='accuracy', cv=5)tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))
mutation_rate と crossover_rate は既定値のままにします。遺伝的プログラミングの深い知識がない場合、既定が最適です。
注意: アルゴリズム固有のハイパーパラメータは不要?
Pythonでのハイパーパラメータチューニング