GoogleColab上でKaggleを実行する

具体的には、GoogleColab上でKaggleのTitanicデータ取得し、コードを実行する環境を作ること。Kaggke上では人が作ったプログラムをForkして実行することができるが、オリジナルのコードをスクラッチで構築検討することは難しい。また、ローカルPCではCPUだけでは処理出来ず停止してしまうこともある。GoogleColabは、無料でGPUを使うことができる。以下の手順で進める。

  • KaggleのAPIを作成する。すなわち、Kaggle My Account -> APIの項目の"Create New API Token"をクリックします。
  • kaggle.jsonというファイルをダウンロードする。これをGoogleColab上で新規に開いたノートのファイル置き場にアップロードする。
  • Google Colabに以下のコードを記述し、実行する
import google.colab
import googleapiclient.discovery
import googleapiclient.http

google.colab.auth.authenticate_user()
drive_service = googleapiclient.discovery.build('drive','v3')

from google.colab import files
!more kaggle.json

!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!pip install kaggle
!chmod 600 /root/.kaggle/kaggle.json

!kaggle competitions download -c titanic

!mkdir input
!mv train.csv input
!mv test.csv input

グラフ表示のパラメータ

グラフ表示seabornのcatplotのパラメータ例

import seaborn as sns

sns.catplot(y='Group’, 
          kind='count',
          height=8, 
          aspect=1.5,
          order=data.Group.value_counts().index,
          data=data)

y:軸の名称、kind:表示対象、order:表示順、data:定義されたデータ

スクレイピングによる情報抽出

スクレイピングはHTMLページの中のタグとクラスまたはIDをターゲットにするのが基本である。HTMLのタグではクラスまたはIDが指定されていることが多いので、これが抽出する情報のターゲティングに活用される。Kaggleのデータも多くはオープンサイトからスクレイピングによって抽出されたものである。以下は、Alexaゴミ回収スキルを作るにあたり、市の公開ページから必要な情報を抽出した例。

import requests
from bs4 import BeautifulSoup
def main():
    #ターゲットページを指定
    url = 'http://www2.city.takarazuka.hyogo.jp/gomi/gomi_t003.html'
    response = requests.get(url)
    # response から HTML 部分(content) を取得
    content = response.content
    # BeautifulSoup に content を渡して解析の準備をする
    soup = BeautifulSoup(content, 'html.parser')
    # ターゲットにするタグとクラス名を指定
    yobi_1 = soup.find('table', class_='tablegp00')
    print(yobi_1.get_text())
if __name__ == '__main__':
    main()

燃やすごみ
火曜日  金曜日  
プラスチック類
水曜日  
かん・びん
第2木曜日  第4木曜日  
紙・布
第2月曜日  第4月曜日  
ペットボトル
第1月曜日  第3月曜日  
小型不燃ごみ
第1木曜日  第3木曜日