Pythonで決定木とRandomForestを比較してみる。Pythonで決定木とRandomForestを比較してみる。その1(タイタニック生存者予測)2018-05-18Pythonで決定木とRandomForestを比較してみる。Python-機械学習-kaggle今回は、Kaggle初心者向けに公開されているデータセットを使って「タイタニックの生存者予測」をPythonを使って行います。データセットは下記Kaggleサイトからダウンロードをお願いします。決定木Kaggleに投稿してみる結果は・・・データを傍観してみるとりあえず必要なライブラリをimportして、データを見てみます。テストデータも確認してみるtest.head()ちなみに各項目はこんな感じです。出港地(タイタニックへ乗った港)試しに、男女の生存者を比較してみましょう。なんとなくですが、女性の方が生き残っていたような記憶があります。プロットsns.countplot('Sex',hue='Survived',data=train)やはり女性の方が生存者が多いようです。統計情報もみておきましょう。train.describe()数値データでは、Ageのデータが少し欠損していることがわかります。testデータの統計情報も確認して見てください。データセットの欠損データチェック提供されている(または使う)データセットで100%データが揃っていることは珍しいようです。どこかのデータが欠損してたり、信用性が低いため使えなかったりする場合がほとんどみたい。前のセクションで、Ageデータが欠損していることはわかりましたが、数値項目以外もまとめてみてみます。kesson_table(train)kesson_table(test)左がtrainで右がtestです。「Age」と「Cabin」の2つの項目で欠損が多いことがわかります。欠損データを放っておくのはあまりよろしくないので、欠損データを代理データに入れ替えます。文字列カテゴリカルデータを数字へ変換していきます。今回はCabinの値は使用しないので、その他の欠損値を代理データに入れ替えていきます。全データの中央値(Median)を代理として使いましょう。他のデータを確認すると「S」が一番多い値でしたので、代理データとして「S」を使いましょう。欠損値の確認kesson_table(train)Cabon以外の欠損値がなくなったことがわかるかと思います。次はカテゴリカルデータの文字列を数字に変換しましょう。今回の予想で使う項目で文字列を値として持っているカラムは「Sex」と「Embarked」の2種類となります。Sexは「male」「female」の2つのカテゴリー文字列、Embarkedはは「S」「C」「Q」の3つの文字列となります。これらを数字に変換しましょう。データを表示してみるtrain.head(10)数字に置換されました。testに関しても同様の処理を行います。).astype(int)決定木scikit-learnから決定木をimportし、モデルを作成していきます。clf.predict(test_features)print(pred)こんな感じで1と0の羅列が結果として得られました。Kaggleに投稿してみるこの予測データをCSVへ書き出してKaggleへ投稿してみましょう。下記のコードでPassengerIdと予測値を取得してCSVファイルを書き出します。結果として「0.71291」のスコアが獲得できました。Kaggleのスコアはコンペにより異なるようです。(各コンペの「Evaluation」のページに詳細が記載されています)今回予測を行なったタイタニックのコンペでは予測スコアは単純に「Accuracy(正解率)」が使われていますので、今作った「my_tree_one」は約71.3%の確率で正解を予測できましたということになります。いかがでしたでしょうか。次回はもう少し精度をあげる努力をしてみます。23:26Pythonで決定木とRandomForestを比較してみる。...こんにちは!たかぱい(@takapy0210)です。本記事は、AI道場...2019-02-24ランダムフォレストはなぜ「ランダム」なのかこんにちは。takapy(@takapy0210)です。MNISTをkerasで〜現在、7月9日より開催されているkaggler-jaというslackグループ...2018-06-28k-最近傍法でアイリスのクラス分類問題を解く(python)こんばんは。重回帰分析を行なってみたことのまとめ。toC企業でMLエンジニアとして働いています。ブログでは主に機械学習界隈の話ができればと思っています。(1)月別アーカイブリンクプライバシーポリシ。