Kaggle 銅メダルへの道(2日目)

こんにちは、筋肉めがねです。

 

さて、ドイツ語を話せるようになりたい、ということで、英語の勉強方法を振り返るという話でした。シャドーウィングでしたね。学生の当時、僕が使っていた教材はEnglish Journalでした。朝8時から研究室にこもって、ショーンKの渋いナレーションにリードされながら、毎日毎日、英語のインタビューを30分ぐらい聞いていたものです。イヤホンをつけ、例えばレオナルドディカプリオとインタビューアーのやりとりを聞きながら、その会話のスクリプトを読みながら、彼らと全く同じスピードで、同じ抑揚で同じ発音で、自分の口に出して真似ていく。30分の練習の後には気分は既にディカプリオでしたね。

 

f:id:KinnikuMegane:20190105191956p:plain

それでは、本日もKaggleで銅メダルを取ることを目指して一つ一つ進めていきましょう。前回は住宅価格を推定するCompetitionのデータをダウンロードしました。本日は、同Competitionに参加した先人たちのブログを読み、どうアプローチしてゴールを目指せば良いのか、理解していきましょう。

 

どうやら参加者固有のステップもありそうですが、Kaggleに参加する上でどうしても外せない基礎となるステップがありそうです。

 

  1. 動作環境の構築
  2. KaggleからCompetitionデータを取得
  3. データ概要の把握
  4. 外れ値の削除 
  5. 前処理:欠損値処理
  6. 前処理:変数変換
  7. 目的変数の分布の確認、処理
  8. 特徴量の選択
  9. 機械学習
  10. モデルをKaggleへ提出

 

参考となるブログを以下に列挙しましょう。

https://www.kaggle.com/serigne/stacked-regressions-top-4-on-leaderboard

Kaggle チャレンジ 4日目 住宅価格問題を解いていく

python初心者がkaggleのHousePriceコンペに参加してみた - Qiita

住宅価格を予測する〜Kaggle House Priceチュートリアルに挑む(その1) | キヨシの命題

不動産価格を機械学習で予測するKaggleに挑戦する [ベンチマーク編] | infomode

機械学習3ヶ月の初心者がKaggleHousingPriceに挑戦した(Top29%) 前半 - Qiita

Kaggleの練習問題(Regression)を解いてKagglerになる - Qiita

 

本日は、モデルを実行するための環境を構築しましょう。

以下の記事でも触れましたが、ローカルPCで機械学習を実行させると数時間かかる事もある、という話を良く聞きます。

kinnikumegane.hatenablog.com

それは、ローカルPC(僕はMacbookairを使っています。)のCPUでは、サクッとできないからなんですね。そこで、先人たちはGPU(Graphics Processing Unit)なるものを使っているらしいので、今回は、GPUをオンラインで使える環境を構築しましょう。

ということで、GPUが使える環境という事で良く使われているらしいGoogle Colaboratoryで環境を構築します。

 

こちらのブログを参考にしています。

Kaggle チャレンジ 4日目 住宅価格問題を解いていく

 

Google Colaboratoryを開き、ウィンドウ下にある「NEW PYTHON 3 NOTEBOOK」をクリックします。

f:id:KinnikuMegane:20190106015335p:plain

続いて、toolbarのRuntimeからChange runtime typeを選びます。

f:id:KinnikuMegane:20190106015416p:plain

これで、先ずはGoogle Colaboratory上でコードを走らせる環境ができました。

 

続いて、KaggleからダウンロードしたデータをGoogle Colaboratory上で扱えるように設定します。Kaggleからダウンロードしたデータを解凍します。解凍したら「all」という名前のフォルダがあるはずです。それをGoogle Driveにアップロードしましょう。

そして、Google Colaboratoryに戻って頂いてpydriveをpipでインストールしましょう。pipの前に「!」をつける事を忘れないようにしましょう。「再生ボタン」を押すとコードが実行されます。

f:id:KinnikuMegane:20190106015815p:plain

続いて、以下のコードを実行します。

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

実行すると、リンクが表示されるので、リンクをクリックし、Googleアカウントを選び、そこで表示されるコードをコピーします。コピーしたコードを、Google Colaboratoryにある「Enter verification code」のテキストボックスに入れます。

f:id:KinnikuMegane:20190106020610p:plain

これにより、Google ColaboratoryからGoogle Driveへアクセスできる環境ができました。

 

続いて、Google Driveへアップロードしたファイル1つ1つをGoogle Colaboratory上で操作できるようにします。

先ほどアップロードした「all」というフォルダーをGoogle Drive上で開き、ファイルを右クリックし、「Get shareable link」をクリックします。

 

f:id:KinnikuMegane:20190106021001p:plain

そして、リンクが表示されるので、表示されたリンクの「ID=」以降の部分をコピーします。

以下のコードをGoogle Colaboratory上で実行します。コピーしたIDを*に部分に入れましょう。以下のコードは3つのファイルを扱っているので、Google Drive上で、それぞれ3つのファイルから一つづつ「Get shareable link」でIDを取得しましょう。

id = '*********************************'  #Google Driveで取得したIDをここに入れます。
downloaded = drive.CreateFile({'id': id})
downloaded.GetContentFile('train.csv') #ファイルの名前をここに入力します。
id = '*********************************' 
downloaded = drive.CreateFile({'id': id})
downloaded.GetContentFile('test.csv')
id = '*********************************' 
downloaded = drive.CreateFile({'id': id})
downloaded.GetContentFile('gender_submission.csv')

これで、Google ColaboratoryからGoogle Drive上の特定のファイルを扱うための設定は終わりです。

実際に、扱えているのか見てみましょう。

Google Colaboratory上でpandasというライブラリをimportし、以下のコードを実行しましょう。

f:id:KinnikuMegane:20190106022109p:plain

f:id:KinnikuMegane:20190106022139p:plain

そうすると、テーブル上の最初の5行が確認できます。

f:id:KinnikuMegane:20190106022216p:plain

これで、Google ColaboratoryからGoogle Drive上の特定のファイルを扱える、という事を確認できました。

 

次の記事では、早速データを見ていきましょう。

それでは、本日は以上でございます。 

にほんブログ村 IT技術ブログへ
にほんブログ村



Pythonランキング