Kaggle入門のための機械学習勉強会を開催しました

2/28に弊社オフィスでKaggle入門のための機械学習勉強会を行いました。
https://www.wantedly.com/projects/285523

勉強会でやったこと

今回の勉強会の題材はKaggleのタイタニックチュートリアルです。
https://www.kaggle.com/c/titanic

弊社のCTOである大岩が簡単にKaggleについて説明をした後に実際にタイタニックチュートリアルを解析から提出して順位表示まで30分程度で実況、実演しました。その後は約1時間半ほどフリーの時間で、各自がタイタニックチュートリアルにチャレンジして提出と順位表示まで行いました。

解析に集中している様子。機械学習アルゴリズムについてから、Pythonの基礎的な使い方まで質問も飛び交い、とてもリラックスした雰囲気でした。

勉強会で学んだこと

開発環境

タイタニックチュートリアルは乗客のデータなどから誰が助かるのか判定する課題です。今回の解析にはPythonを使用したのですが、特に開発環境等を準備する必要はなく、KaggleのKernelを使用しました。

画像右下のNew Kernelをクリックすると、

ScriptかNotebookかが聞かれるので、今回はここでNotebookを使いました。

解析方法

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)

Pythonを使うので、numpyとpandasを使います。Pythonというよりこの2つの関数の知識とかが最初は重要になってきます。

raw_train = pd.read_csv("../input/train.csv")
raw_test = pd.read_csv("../input/test.csv")
raw_train.head()

続いてトレーニング用とテスト用のデータを読み込んでおきます。head関数で読み込んだトレーニングデータの一部を表示してみると、

表示できました。読み込みに成功しているのが分かります。

ここからは割と泥臭い作業になります。

import seaborn as sns
%matplotlib inline
sns.heatmap(raw_train[['Survived', 'Pclass', 'Age', 'SibSp', 'Parch', 'Fare']].corr(), annot=True)

ヒートマップを作って相関がありそうなパラメーターを探してみたり、

sns.factorplot('Sex', 'Survived', data=raw_train)

ただ単に女性であるだけで生存率がとても高いので、ここの条件は必須だよねという話をしてみたりしていました。パラメーターを絞ったり計算して作ったりできれば、あとは学習させてアルゴリズムごとの結果を見てみます。

良さそうな結果が得られれば提出して順位が表示されます!ただ、ここで良い数字が出ていても提出時は当然手元にないデータを含む全データでスコアが計算されるので、「手元でやったときとスコアが全然ちがう…」と落胆することもありました。

その後のディスカッションでは、
- 女性・子供とそれ以外で生存率が大きく異なるため、それを分けて学習できないか
- 名前の名字から生存確率を出せるらしいぞ
等、アイデアを出し合ったり、他のkernelを見たりしていました。

次にやりたいこと

思いのほか機械学習は愚直な作業であることが参加者全員の感想だったようで、また、Pythonやそのライブラリの知識や使い方を勉強しないとスタート地点に立てないことも分かりました。次回はこちらにより焦点が当たるような題材を使って勉強会をやりたいなと思っています!

株式会社Liquid's job postings
Anonymous
Picture?1523003116
495a96e6 5494 486b a3a2 b94b70c155e5?1514895692
1f75ab03 4978 4a58 8bf5 016a394bfd57?1517027750
28167282 10211367478524533 1807455708586427569 n
240626 446409565446363 91772943 o
14 Likes
Anonymous
Picture?1523003116
495a96e6 5494 486b a3a2 b94b70c155e5?1514895692
1f75ab03 4978 4a58 8bf5 016a394bfd57?1517027750
28167282 10211367478524533 1807455708586427569 n
240626 446409565446363 91772943 o
14 Likes

Weekly ranking

Show other rankings
If this story triggered your interest, go ahead and visit them to learn more

Page top icon