2020-4-8(水)
10時起床。
金フレとPythonではじめるKaggle本をやった。
KaggleではsklearnのLogisticRegression,RandomForestClassifier, そしてLightGBM,Optunaを使ったデータ分析の手法を学んだ。優しい本だけど所々説明が抜けているところがあるためその都度ググッている。
具体的に学んだこと
・勾配ブースティングは複数の弱学習器(LightGBMでは決定木)をひとつにまとめるアンサンブル学習のブースティングを用いた手法である。こちらのサイトが詳しい(https://www.google.co.jp/amp/s/www.codexa.net/lightgbm-beginner/amp/)
・n_estimatorsでtree数、max_depthで木の深さ、random_stateで乱数のseedを指定できる。
・random_state=0と数字を指定することで毎回同じ乱数が帰ってくるために再現性が高くなる。
・sklearn.model_selection にはtrain_test_splitがある。これは、データを学習用と検証用へとデータを分けることが出来るものだ。これによって学習に過度に適応してしまう過学習を防ぐ。
・stratifyを使うとデータを 分割後の学習用データセットと検証用データセットの割合が等しくなる。
・LightGBMではカテゴリ変数に対して特別な処理を自動的に実行してくれるのでラク。しかもなかなかいい精度らしい。
・num_boost_roundで学習の受講回数決める。early_stopping_roundsはearly_stoppingの基準であり、10と設定すると10回学習を重ねても検証用データセットに対する性能が改善しない場合学習を打ち切ることが出来る。