まとめ【kaggle用】XGBoostによる最もシンプルな回帰モデル構築【営業だってプログラミング】いくら検索しても、XGBoostによる「最もシンプルな」回帰モデル構築のコーディングが見つからなかったため、自身の備忘としてエントリーしておきます。初めにお断りしておくと当記事は、XGBoostで回帰モデルを構築することのみに特化しており、最低限のハイパーパラメータチューニングのみで、モデル精度向上等については全く考慮していません。上級者向けのエッセンスは全て削ぎ落しています。いうより私にはそのエッセンスを盛り込む技術がありません。プログラミング初心者である我々にとっては、submitできる状態に持っていくことが一つのハードル。与えられたデータからモデルを構築する構築したモデルで予測をして、submitするためのcsvを生成する事に集中しましょう。ちなみに表題にある「回帰」とは、平たく言うと数字(「連続値」という)を当てる問題です。売上がいくらになるか在庫がいくつになるかどのくらいの発注量になるかこれら全て、1,2,3,4・・・という数字(連続値)で表せるので、「回帰問題」であると言えます。他に良く出る単語で「分類」がありますが、こちらはYes/Noや、複数カテゴリを当てる問題です。今回は数字(連続値)を当てる問題に的を絞ったものになります。おやくそく(各種ライブラリの読み込み)初めに、各種ライブラリを読み込んでおきます。GridSearchCV今回はXGBoostを使うので、それも読み込んでおきます。最近のkaggleはXGBoostとLightGBM全盛ですねデータの読み込み与えられているcsvデータを読み込みます。学習データ:train.csvテストデータ:test.csvなので、このままコピペすればokです。「index_col=0」は、「左から1列目がindex」の意味です。こちらもほとんどのコンペでこの形式なので、気にせずコピペで大丈夫だと思います。学習データを、ターゲット変数とそれ以外に分離する必要があります。df_testこれも、大抵はこのままコピペすればokです。「ターゲット変数」の部分だけは、予測したい列名に置き換えて下さい。文字列のエンコード文字列(object)はそのままではモデリングできないため、数字に置き換え(エンコード)します。ここでは何も考えずにOrdinalEncodingしています。空白のカラムがあるとエラーが起きる可能性があるので、ここでは無難に中央値で埋めておきます。x_test=x_test.fillna(x_test.median())12x_train=x_train.fillna(x_train.median())x_test=x_test.fillna(x_test.median())学習データ(train)、テストデータ(test)両方とも処理をする必要があるのでご注意下さい。言ってもこれもこのままコピペで大丈夫だと思います。モデリング学習データを投入し、XGBoostのモデルを構築していきます。作ったモデルにテストデータを投入し、予測していきます。ここでは予測した結果を「pred」と名付けています。reg_xgb.predict(x_test)})投稿用csvの生成サンプル投稿データ(sample_submission)を読み込み、予測データに置き換えます。predsubmissionfile.to_csv('./submissionfile.csv')「ターゲット変数」の部分は、予測したい列名に置き換えて下さい。以上でモデリング~予測~投稿用csv生成は完了です。まとめ一連の流れを一つのコードとしてまとめると以下です。注釈も入れてあります。「ターゲット変数」と記載のある3か所だけ、予測したい列名に書き換えて下さい。predsubmissionfile.to_csv('./submissionfile.csv')以上です。注意点はここまでに赤字で記載した3か所だけ。「ターゲット変数」部分だけはコンペによって異なりますので、そのコンペの予測ターゲットとなる変数(列名)に書き換えて下さい。その他、pythonやkaggle、AI・機械学習といった記事のまとめはこちらです。続きを見るここからは、実際に私が購入し、おすすめできると思った本を紹介してみたいと思います。機械学習のための「前処理」入門まずはこちら。「機械学習のための『前処理』入門」です。これから機械学習を始めてみたいkaggleやSIGNATEにチャレンジしてみたいという方には最適な本。個人的には一番のおすすめです。データモデルの精度向上には特徴量エンジニアリングが不可欠。いうかこれが全てと言っても過言ではないのですが、各種環境準備の方法やコーディングの詳細に至るまで、誰にでも分かりやすく書かれています。この一冊さえあれば、とりあえずkaggleにトライすることができます。PythonふりがなプログラミングPythonのコーディングが、全てふりがなで解説されている、究極に親切な解説本です。「機械学習のための『前処理』入門」は、自分には難しすぎた英語アレルギーがありpythonコードに触れることすらできないという方は、まずはこちらをご一読される事をおすすめします。※但し、慣れてきたらすぐに上記「機械学習のための『前処理』入門」に移行される事をおすすめします。定番のオライリーです。こちらはkaggleやSIGNATEなどのコンペティションというよりは、機械学習をビジネスで生かしていくためにはどうすれば良いか?という観点の内容が充実しています。機械学習プロジェクトを成功させるにはどうすれば良いかKKD(勘・経験・度胸)を掲げる抵抗勢力とはどう付き合うべきかというような、実務に即した内容は個人的には本当に参考になったのですが、オライリーは初心者にはかなり敷居が高いので、まずは本屋で立ち読みして、レベル感をチェックしてみるのが良いと思います。人工知能は人間を超えるかpythonのコーディングからは離れますが、もしこの本を読んでいない人がいたら必ず一度は目を通しておいた方が良いです。この界隈では有名な、東大の松尾豊先生の著書「人工知能は人間を超えるか」。いった昨今のキーワードを中心に、過去の歴史からここ最近の動き、今後の動向に至るまでを、平易な表現で丁寧に解説されています。ジェネラリスト検定(通称:G検定)」の推薦図書の一つでもあります。全てのビジネスマンにおすすめできる一冊。中古でもkindleでも構いませんので、これだけは目を通しておいた方が良いです。