前回、ランダムフォレストでDigitを分類したけれど、結構いい感じのスコアが出ました。PCAで特徴量を抽出したらもっとスコアは上がるかな??前回、ランダムフォレストでDigitデータを分類してみました。サポートベクターマシンほどではなかったのですが、結構良いスコアとなりました。サポートベクターマシンのときは、データにPCAをすることで、スコアの向上が見られました。同様に、ランダムフォレストでもPCAしたデータでどのようになるか試してみたいと思います。前回のランダムフォレストでDitigデータを分類した記事はこちらをご参考ください。ランダムフォレストでもDigitデータを分類してみました。いろいろな分類器で試してみると新しい発見があるかな。前回は、サポートベクターマシンでテストデータに対して9...サポートベクターマシンでDigitデータを分類した記事はこちらをご参考ください。k最近傍法でかなり良い結果が出ましたが、サポートベクターマシンも試してみたいと思います。random_state=0)次にPCAを行います。PCAを行ったら、抽出した主成分特徴量の寄与率を見てみます。DigitデータをPCAPCAについては、こちらの記事もご参考ください。主成分分析という手法を勉強しているけど、仕組みが難しいよ。scikit-learnだと、PCAという機能に入れるだけで簡単にできるみたい。pca.transform(X_test)#寄与率を表示plt.plot(pca.explained_variance_ratio_)ここは、サポートベクターマシンの時と同じで、大体30主成分目までがデータに影響していそうな雰囲気です。パラメータ調整PCAで特徴量を抽出したDigitデータに対して、パラメータ「n_estimators」の変化でどのようにスコアが変化するかを見ていきます。PCAで抽出した特徴量は、どこまで次元削減できるかも、検討します。今回は、1「n_estimators」の変化で一番よい設定を検討2PCA特徴量の削減という流れで調整しました。1パラメータn_estimatorsを変化させてみるまずは、「n_estimators」パラメータの変化でどのようにスコアが変化するかを可視化します。train_dat_array.append(np.mean(score))3分割交差検証のスコアになります。全体的に、n_estimatorsが120以降が良い雰囲気です。130前後がスコアのピークとなっていますね。今回は、130を利用することにします。Colaboで、再接続したりすると実行毎に結果が違ってきます。n_estimators=120としてテストデータスコアをだすと、96.22%でした。次に、PCAで抽出した主成分特徴量がどこまで削減できるかを検討してみます。score_array)特徴量が22くらいがピークです。今回は、22個の特徴量を選択します。y_test)))0.9756こうして、テストデータへのスコアが97.56%となりました。まとめデフォルトのランダムフォレストに、何もしていないDigitデータを入れたときのスコアが97.33%でしたので、頑張って調整した割には、あまりスコアが上がっていないような感覚です^^;ランダムフォレストは、ランダム性が存在するため、一概にこのパラメータが最強ということは出来なさそうなのです。Digitデータの場合は、サポートベクターマシンのほうが良いのかな、と思いました。勾配ブースティングもどうなるか気になってきました。pythonよかったらシェアしてね!URLをコピーしました!URLをコピーしました!パンダの中のパンダサウンドクリエータ、プログラマひたすら脳内の思考と雑念を記事にしている気が・・・ご容赦ください!音楽、プログラム、自分の作品となる何かが作れる日を目指して邁進中です。