精度うんぬんの前に、モデルができない!submitできない!!kaggle初心者あるあるですよね。与えられたデータからモデルを構築する予測をして、submitする事にトライしましょう。その特長について簡単にまとめます。各特徴量間の相互作用が反映される特徴量間のスケールを気にする必要がない各コンペでも、とりあえず一回目を回すために利用されています。いつも通り、kaggleの初心者向けチュートリアル問題で最も有名な「タイタニック」を利用してコーディングしています。Disaster言語はpython。kaggle上で無料で利用できる環境「Notebook」を利用しています。Notebook」を選択すると、まずは以下のコードが現れます。output.これは機械学習でよく使われる計算ライブラリ「numpy」と、データ分析ライブラリ「pandas」を読み出し、使える状態にするコードです。pdは、機械学習のコードを書く上でのお約束のようなもので、ほぼ必ず出てきます。「#」より右の文字列は、コメント行。最後の4行は、タイタニックのコンペフォルダに格納されているデータを表示するコードとなります。上記セルを実行すると、以下のようにファイルのパスとファイル名が表示されます。train.csv・・・トレーニングデータtest.csv・・・予測用データgender_submission.csv・・・結果投稿用のサンプルデータです。必要なライブラリの読み込み今回利用するライブラリをあらかじめ読み込んでおきます。XGBClassifier後から出てきますが、それぞれ以下です。LabelEncoder・・・カテゴリ値をエンコードするためのライブラリXGBClassifier・・・GBDTのライブラリ「xgboost」データの読み込み上記で表示されたデータを読み込みます。pd.read_csv('../input/titanic/test.csv')このコード自体は実行しても何も起こりません(ウンともスンとも言わない)ですが、以下コードを実行すれば、ちゃんとデータが読み込まれていることが分かります。列この2つを分離し、「説明変数」を「train_x」、「目的変数」を「train_y」としておきます。テストデータには「目的変数」は含まれないので、そのまま。これを「text_x」とします。test.copy()文字列をエンコードする冒頭で説明した通りGBDTは欠損値の補完は不要ですので、ここでは文字列のエンコードのみを実行します。今回使うのは「LabelEncoder」。シンプルなエンコード手法です。LabelEncordingは、とりあえず手っ取り早くモデルを作る際によく利用される方法で、カテゴリの値の序列を全く無視して数値変換するというもの。世田谷区→154品川区→140八王子市→192奥多摩町→198というように、「世田谷区と品川区は近い」「八王子市と奥多摩町は近い」という特徴表現を失わないようなエンコードがベストです。(この例は郵便番号の上3桁でエンコードした例)しかしLabelEncordingの場合は世田谷区→1品川区→2八王子市→3奥多摩町→4というように、各値の序列を無視してエンコーディングします。上記のように特徴表現を失わない形でエンコードしたい場合は、LabelEncordingではなく、それぞれ明示的に指定してあげるのがベストです。train,testそれぞれのデータフレームの列「Sex」をエンコーディングします。le.transform(test_x['Sex'])実行してもぱっと見何も起きていませんが、trainを実行すると、ちゃんとエンコーディングされているのが分かります。train_x1train_xEmbarkedの列については、試しに明示的にエンコードしてみます。test_x['Embarked'].map(embarked)Enbarkedの値を、S=0、C=1、Q=2と明示的に指定してあげた結果、以下のようになりました。以下の列は不要である(生き残るかどうかには関係ない)と判断し、各データからごっそり削除します。inplace=True)以上の実行したデータを見てみると、train_x1train_xだいぶスッキリしてしまったものの、とりあえずモデリングに使えそうな前処理済みのデータが出来上がっていることが分かります。モデリングするモデルを作成し、学習データを加えて学習します。train_y)後処理するテストデータの予測値を確率で出力したうえ、0,1の二値に変換します。0)提出用ファイルを作成する最後に提出用のcsvファイルを生成して完了です。index=False)【kaggle入門】LightGBMによる最もシンプルな分類モデル構築【営業だってプログラミング】まとめ一連の流れを一つのコードとしてまとめると以下です。index=False)まずはとにかく上記コードを活用してsubmitを目指す。無事submitができたら、前処理を工夫するなどしてデータモデルの精度向上に精進しましょう。▶その他、pythonやkaggle、AI・機械学習といった記事のまとめはこちらです。続きを見るここからは、実際に私が購入し、おすすめできると思った本を紹介してみたいと思います。機械学習のための「前処理」入門まずはこちら。「機械学習のための『前処理』入門」です。これから機械学習を始めてみたいkaggleやSIGNATEにチャレンジしてみたいという方には最適な本。個人的には一番のおすすめです。データモデルの精度向上には特徴量エンジニアリングが不可欠。いうかこれが全てと言っても過言ではないのですが、各種環境準備の方法やコーディングの詳細に至るまで、誰にでも分かりやすく書かれています。この一冊さえあれば、とりあえずkaggleにトライすることができます。PythonふりがなプログラミングPythonのコーディングが、全てふりがなで解説されている、究極に親切な解説本です。「機械学習のための『前処理』入門」は、自分には難しすぎた英語アレルギーがありpythonコードに触れることすらできないという方は、まずはこちらをご一読される事をおすすめします。※但し、慣れてきたらすぐに上記「機械学習のための『前処理』入門」に移行される事をおすすめします。定番のオライリーです。こちらはkaggleやSIGNATEなどのコンペティションというよりは、機械学習をビジネスで生かしていくためにはどうすれば良いか?という観点の内容が充実しています。機械学習プロジェクトを成功させるにはどうすれば良いかKKD(勘・経験・度胸)を掲げる抵抗勢力とはどう付き合うべきかというような、実務に即した内容は個人的には本当に参考になったのですが、オライリーは初心者にはかなり敷居が高いので、まずは本屋で立ち読みして、レベル感をチェックしてみるのが良いと思います。人工知能は人間を超えるかpythonのコーディングからは離れますが、もしこの本を読んでいない人がいたら必ず一度は目を通しておいた方が良いです。この界隈では有名な、東大の松尾豊先生の著書「人工知能は人間を超えるか」。いった昨今のキーワードを中心に、過去の歴史からここ最近の動き、今後の動向に至るまでを、平易な表現で丁寧に解説されています。ジェネラリスト検定(通称:G検定)」の推薦図書の一つでもあります。全てのビジネスマンにおすすめできる一冊。中古でもkindleでも構いませんので、これだけは目を通しておいた方が良いです。