【Kaggleの本で勉強(3/21)】HousePrices 追加分析②の途中(graphvizを使う)
決定木の出力結果を描画できる「graphbiz」というツールがあるようで、本に書いてある通りにpip installしたけどエラーが出て進まなかった。
結構な時間を使ってしまたので、備忘のために書き残します。
まず、本に書いてある通りにふつうのコマンドプロンプト(管理者で実行)で次のコマンドを実行した。
pip install pydotplus
pip install graphviz
pip install six
そんで、本に書いてあるコードを実行したところ、
GraphViz's executables not found
このエラーが出ました。でググって調べてみると、どうやらインストールの仕方が違ったのかと思い、Graphvizの公式ページからダウンロードしてみて、exeファイルを入れたフォルダを環境変数Pathに追加して再実行すると、
failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH
( ,,`・ω・´)ンンン?
適当にPathってのを設定したけど違ったのかな?
ということで、他のページを見ていたら、condaプロンプトからpip installを実行するように書いてあったので、それを実行しました。
ついでに適当に追加したPathの設定も削除。
んで、実行。
あれ?まだエラーがでるよ。えっと、もしや再起動が必要なのかな。
ということで、再起動して実行すると、
おおおおおおお!
出たよ、決定木の図が!!
感動( ;∀;)
Gistに保存してみたけど、Graphvizの図までは表示されないのね。
ということで、試しのコードはこちら。
gistec7a84380938664843ee90458973f64b
で、結果の図はこちら。
【Kaggleの本で勉強(3/15)】HousePrices 追加の分析①統計手法による家のクラスタ分析をする
【Kaggleの本で勉強(3/13)】HousePrices アンサンブルしてみる!
そもそもLightGBMもアンサンブルのような気がするけど。
別々の手法でやった結果を組み合わせると精度が良くなるらしいので、XGBoostとLightGBMの結果を組み合わせてみる。
手法同士が独立しているほど、よくなるはず。
これまでにXGBoostとLightGBMの両方やっているので、それらの平均値を使ってsubmitしただけ。
>|python|
preds_ans = preds_exp_xgb * 0.5 + preds_exp * 0.5
submission["SalePrice"] = preds_ans
submission.to_csv("./submit/houseprices_submit04.csv", index=False)
||<
んで、結果がこちら。やっぱしよくなってるじゃん!!
でも、必ずよくなるわけじゃないみたい。
今回のケースでは、ランダムフォレストとLightGBMのではよくならないようです。
【Kaggleの本で勉強(3/13)】HousePrices ランダムフォレストとXGBoostで学習する!
LightGBM以外のツールで学習してみる。
ランダムフォレストとXGBoostの2つです。でも、LightGBMの方が良くつかわれているみたいです。
【Kaggleの本で勉強(3/10)】HousePrices ますます精度を上げてsubmitする!
ハイパーパラメータとかいうやつを調節して精度を上げる回です。
LightGBMの設定値みたいなもんなんでしょうかね。全く理解できていないですが、本の通りに進めていくと、あら不思議、精度が上がりました。
もはや、魔法を習っているみたいです。
そんでもって、Titanicで初Kaggle投稿してからしばらくできていなかったんだけど、晴れて2回目のKaggle投稿!
わけわからずやっているので、感慨は浅いけど、まあこれからだよね。
数こなさないと。
【Kaggleの本で勉強(3/7)】HousePrices データの前処理を追加して精度を上げるの続き
今回は精度を上げる処理の続き。広さや年数の変数を組み合わせて新しい変数を追加してまた学習させて結果を見る。本に書いてある事なので、追加することでどんどん良くなるけど、追加して悪くなるケースもあるみたい。
【Kaggleの本で勉強(3/6)】HousePrices データの前処理を追加して精度を上げる
外れ値とか欠損値の多い項目を整理する処理を加えて、もう一度学習させて結果をみる。RMSEは0.1298064868429131と、少しだけ小さくなりました!