Google Colab をやってみた

みなさん、おはこんばんにちございます。
Syrup Lang Advent Calender 第 2 日目の記事だと思います。

はじめに

Google Colab を使って Kaggle のタイタニックのコンペ用の Python スクリプトを書きたいなと思ったんですが、Google Colab の使い方を書いていく記事になってしまっていると思います。

まずは ゲームで使う train.csvtest.csv をアップロードします。

以下のコードを書いて、実行してみましょう。
わかりやすくするために、ここでは同じコードを 2 つのコードセルに別々に書いてtrain.csvtest.csv をアップロードします。
アップロードするには、コードセルに下記のようなコードを書いて、「コードを実行」ボタンを押します。
すると、アップロード用のウィジェットが表示されるのでアップロードしたいファイルをアップロードします。

from google.colab import files

uploaded = files.upload()

f:id:noqisofon:20181202091938p:plain

わかりやすくするために、ここでは同じコードを 2 つのコードセルに別々に書いてtrain.csv と test.csv をアップロードします。

f:id:noqisofon:20181202092346p:plain

iPython Notebook で書いたものを Markdown にしているので、単体で実行可能なスクリプトにするために、import を書いていてウザさがあるかもしれませんが、我慢してください。 *1

データの確認

これで train.csvtest.csv の 2 つのファイルがアップロードされました。
この 2 つのファイルを pandas で読み込んで、確認してみましょう。

import pandas

train = pandas.read_csv( 'train.csv' )

train.head()

f:id:noqisofon:20181202093007p:plain

import pandas

test = pandas.read_csv( 'test.csv' )

test.head()

f:id:noqisofon:20181202093324p:plain

データの穴埋め

Age に穴があるので、それを埋めます。 (何故わかったのかは省略する) 穴は NaN で表されますが、その部分に Age の中央値を入れることにします。

とりあえず、Age の中央値を確認してみましょう:

import pandas

train = pandas.read_csv( 'train.csv' )

train['Age'].median()

f:id:noqisofon:20181202093903p:plain

28.0 と出ました。
Age の NaN の部分には 28.0 が入るようです。

import pandas

train = pandas.read_csv( 'train.csv' )

train['Age']      = train['Age'].fillna( train['Age'].median() )

train[[ 'Name', 'Age']].query( 'Age == 28.0' )

f:id:noqisofon:20181202094906p:plain

そーいうわけで、Embarked にも NaN があるので、一番多いと思われる(多分) S (サウサンプトン)を入れることにしました。

import pandas

train             = pandas.read_csv( 'train.csv' )

train['Embarked'] = train['Embarked'].fillna( 'S' )

train[[ 'Name', 'Embarked']].query( 'Embarked == "S"' )

f:id:noqisofon:20181202100028p:plain

Sex は文字列を数値に変換します。 male は 0 に、female は 1 に変換します。

import pandas

train             = pandas.read_csv( 'train.csv' )

train['Sex']      = train['Sex'].replace( 'male'  , 0 )
train['Sex']      = train['Sex'].replace( 'female', 1 )

train.head()

f:id:noqisofon:20181202100723p:plain

まとめ

  • Anaconda を入れなくても、Google Colab がある。
  • Google Colab 上でもファイルをアップロードできる。
  • Google Drive から Google Colab というアプリを追加するとノートが消えないかもしれない?
  • こまめに保存しておくと吉。

*1:後で別にそんなことをする必要は無かったことがわかったが、とりあえずそのままにしておく