【写真でわかる】10分で、kaggle初心者が「初期ステータス(novice)」から「Contributor」にランクアップする方法。

#はじめに
日経 xTECH ビジネスAI Advent Calendar 2019
AI道場「Kaggle」への道の4日目を担当させていただきます。


#kaggleの発言権はステータスに依存する

kaggleではユーザーにランクが付けられています。
Progressionと呼ばれるものです。
進捗レベルというか、称号のようなものです。

このランクによって投稿したスクリプトに対する注目度や、発言の影響度合いが異なります。

登録時には**novice**という称号が与えられ、所定条件を満たすと**Contributor**になり、
そこからより上位ランクになりたい場合は他者からのイイネ評価を集める発言を行う、メダル獲得、等をしていかなければなりません。

kaggleは競争型コンペティションであり、ただメダルを集めるだけであれば、ギリギリまで自分の回答を提出せず、他者の試行結果を読み込み、より精度を上げてから投稿するのがいいのですが、
それだけではkaggleが繁栄しません。
kaggleは技術交流の場でもあります。
繁栄ために自分自身の作った回答や、回答に関する解説を投稿するなど、kaggle繁栄に貢献しましょう。
有用な情報を投稿したことでイイネ評価が集まり、自分のランクを上げることができます。

まず登録したら初心者**novice**のままではつまらないので、**Contributor**を目指しましょう。
図解でなるべくわかりやすく、**Contributor**になる方法をまとめました。

#早速登録

[kaggle公式](https://www.kaggle.com/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/f409ed32-6b9d-b9c0-5ab7-f13e95a6ffeb.png)

右上に青い登録ボタンがあります。
私は楽なのでgoogleアカウントで結び付けてログインしています。



#Progression ランクを確認

ランクを確認するには上部タブの・・・上にマウスを置き、Progressionをクリックします。


![000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/5fcf71d1-f3ad-807f-ce18-f633c77c7c3d.png)




下にスクロールしていくと、各ランクごとの達成条件が表示されます。
最初はNoviceにチェックマークがついていると思います。
Noviceの達成条件は登録なので、登録した時点でチェックがついています。

では今回めざす一つ上位のランクConstributorを見てみましょう。

![kag1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/4884e5bf-e8d5-0c59-4e8c-22ebaa8c61b4.png)


達成するためのチェック項目は

・bioを更新する
・住んでいる場所を追加
・役職を追加
・組織を追加
・SMS認証を行う
・スクリプトを走らせる
・一つコンペに結果を提出する
・一つコメントを付ける
・いいね評価をひとつ付ける

となっています。
ひとつずつ確認しながらやっていきましょう。


#bioを更新

そもそもbioって？
biographyの略で、経歴を書く場所だったりしますが自己紹介や趣味など書いている人もいます。

初期登録時は右上のログインボタンがあった部分に鳥さんの画像が表示されていると思います。
マウスを鳥さんの上に載せ、「my プロフィール」をクリックすると自分のプロフィール画面へ移動します。

![kag20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/e22280b6-4669-57da-83f3-9875e1413cb6.png)

メダルの下にbioが確認できます。
右側のeditをクリックして自己紹介を追加したらOKです。
Progressionにチェックがついていると思います。

#住所・役職・組織を追加

さきほどbioを追加した図の右上に青色のedit profileボタンがあります。
ここを押すと

![035.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/8295d608-f259-5eb3-b1e3-fd563e90be00.png)

自分の情報を入力する場所が出てきます。
occupationに役職
organizationに所属組織
cityに住所
を入力しましょう。

これでさらに三つチェックが付きました。

ついでにSMS認証もしておきましょう。
少し下にスクロールするとSMSの認証リンクがあります。
認証が済んでいなければNot verifiedになっていると思います。

![2033.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/2b83b72d-3600-519b-61b9-f45a0a60d594.png)


#実際にコンペに提出してみよう

・スクリプトを動かす
・結果を提出する
・コメントを付ける

これを達成していきます。
ここが一番壁に感じるのではないでしょうか？
なんかめんどくさそう？
と感じる方のためにこの記事があります。

まず上部タブのコンペティションの左に検索マークがあります。

![kag3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/e62dd405-ecc9-7ed3-38b8-0a15786b38d4.png)

ここでtitanicと入力して検索します。
一番上にトロフィーマークがついている「titanic： Machine Learning from Disaster」というコンペティションが見つかります。
その下の「＜＞」マークは誰かが記述したスクリプトです。

titanicコンペティションを選択してみましょう。

![kag4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/e81d6e74-ae62-ee7d-bfec-b089eabfee3f.png)

青いボタンでjoin competitionがあるのでjoinします。

![kag5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/3173db31-70a1-e221-e125-9614d90354c3.png)


規約を読んで同意します。

![kag6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/fbc3619f-c456-afd2-fd88-0100577dabae.png)

joinがsubmitというボタンに変化しました。
これでデータを使ってスクリプトを書き、提出することが出来ます。
ボタン押してみましょう。

![kag7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/4a68a0cb-54d9-a744-9df3-8c19c66fbac6.png)

他の人が書いたスクリプト(note book)が表示されます。
new notebookボタンから新しく自分のスクリプトを作っていきましょう。

![kag8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/3e0dd06f-d145-a25c-2598-30c65dfd192a.png)

どの言語で分析を行うか選択します。
提出形式はnotebookかscriptかを選びます。
説明文をつけ足したり、部分的に実行するならnotebook
言語は好きなものを選択。
今回はpythonでなくRのnotebookにしときましょう。

![kag9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/329eecec-035d-27db-d0b0-ea4b890b1ef0.png)


デモコードとしてライブラリの読み込みとかファイルの読み込みとか説明が書いてあります。


とりあえずここはすべて消して以下のように打ち込んでみましょう。
notebookのセルの実行はjupyterと同じくshift + enterです。



![kag11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/5d872707-84b5-e38e-e97c-3554784d0628.png)


このnotebookの作業ディレクトリはkaggleにあります。
ファイルはコンペティションによって多少違いはありますが「..input」に入っています。
inputの中のファイルを確認してみると、「titanic」というフォルダがありました。
titanicの中をさらに確認してみると3つのファイルがあります。

trainで訓練したモデルを使いtestを予測したらいいのです。

![kag12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/21cdfe89-f6b4-e45b-f49f-f761aa9163b8.png)


testには予想すべき変数"生存したかどうか"の列が抜けています。
これを予測する簡単なモデルを作りましょう。

![kag13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/e6af67b8-8099-6236-1dc7-be24a073ba43.png)


write.csv関数で予測結果を提出します。予測データに必ず入力しなくてはいけない列名などがあります。
今回は乗客IDが該当します。
またwrite.csvは行名を書きだしてしまうのでエラーの原因になります。オフにしましょう。
作り終わったら右上のコミットボタンを押して提出しましょう。

![999.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/49ae6bd4-f3c6-3cc0-523f-574b804b0fd5.png)



特にエラーが出なければスクリプトが登録できたという事です。
over viewボタンを押して提出しに行きましょう。

orver viewで見える自分のスクリプトを下にスクロールしていくと、output filesの部分に自分の作った提出用csv
が確認できると思います。

![kag17.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/8946ccf9-6b32-b44e-1f8f-66e776f4d03f.png)


いよいよ提出です。

![kag18.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/1d4604d8-95c3-9357-a068-612dd5f49d62.png)

completeになったら完了です。
スコアも確認できます。

ついでに自分のスクリプトに対して説明文などをコメントしてみましょう。

![98.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/7b6eb123-b735-9a8f-39df-5adb0633c72a.png)

これでチェックが付きました。

#最後の一つ　イイネを使う

たとえば上部タブのdiscussionを押すと他の人が自分の書いたスクリプトや技術についての議論をしています。
中をいくつか覗いてみて面白かった内容にイイネしてみましょう。

![kag30.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b56eca55-0f1b-a108-d198-cffb6dd3ab71.png)

図中の右上に111という数字がついています。
イイなと思ったら△ボタンを押して支持しましょう。

#おめでとうございます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/ae9e742a-74ea-15e0-e968-4328c5fca270.png)


以上でランクアップです。
一通りkaggleの使い方を経験したということでランクが上がります。
登録して人のスクリプトを読むだけでなく、自分でコンペティションに参加して、結果を提出するプロセスを理解できた証です。

お疲れさまでした。
さあ、ここからが始まりです。
kaggleを楽しんでいきましょう。