タグ別アーカイブ: scikit-learn

scikit-learnで最適なパラメータを決めるためにGrid Searchを使う

はじめに


最近、機械学習を試すときはscikit-learnを使っています。
SVMやランダムフォレストなど、有名な手法を数行のコードで試せるので非常に便利です。
例えばランダムフォレストは以下のような感じで使えます。(サンプルより引用)

とてもシンプルですね。

最も精度の高いパラメータを決めたい


引き続きランダムフォレストについて言及していきます。
上の例ではn_estimatorsというパラメータについて10という値を指定していますが、
実は指定できるパラメータが結構あります。

一つ一つ手打ちで指定していくのにはちょっと限界がありそうですね。
最も精度の高いパラメータを得るためにはどうしたら良いでしょうか?
そこで最適なパラメータを決めるためにGrid Searchを紹介します。

Grid Searchしてみる


早速ですが以下がサンプルです。

各パラメータの試したい値を配列で渡して、grid_searchに渡すだけです。
clf.best_estimator_ からクロスバリデーションの結果、最も精度の高かったパラメータの値がわかります。

終わりに


パラメータをチューニングするだけで、精度が大きく変わります。
Grid Searchを用いて最適なパラメータを見つけましょう。

参考サイト

3.2. Grid Search: Searching for estimator parameters — scikit-learn 0.15.2 documentation

http://scikit-learn.org/stable/modules/grid_search.html