お手軽ツールでデータサイエンス実験 [1/3] 準備＆Tableau可視化編

# はじめに

無料でも使える高機能なツールを使ってデータ分析と機械学習っぽい事をやってみました。

# 下準備

- [Kaggle](https://www.kaggle.com/)は、世界中のデータサイエンティストが与えられた課題に対して最適なモデルを競い合うサイトです。アカウントを作ってログインしておきましょう。
- [Titanic: Machine Learning from Disaster](https://www.kaggle.com/c/titanic) は入門チュートリアル的な課題です。1912年に沈没した豪華客船の乗員乗客のうち生き残った人と亡くなった人の傾向を分析します。train.csvとtest.csvをダウンロードしておきましょう。
- [Tableau Desktop](http://www.tableau.com/ja-jp/products/desktop)は高速で強力なビジュアル分析ツールです。インストールしておきましょう。私の手元の環境はver10.1.1です。
- [Microsoft Azure Machine Learning Studio](https://studio.azureml.net/) はドラッグ＆ドロップで予測モデルが作れるサイトです。アカウントを作ってログインしておきましょう。

# 可視化

先ほどダウンロードしたTitanicのデータの中身をTableauを使って見てみます。

## データソースを読み込む

Tableauを起動してtrain.csvをドラッグ＆ドロップします。
![tableau_load_datasource.png](https://qiita-image-store.s3.amazonaws.com/0/36022/5d4f49e4-21d6-5b2c-de07-be67ed8462c2.png)

生存していたかどうか(Serviced)を0:死亡、1:生存として表しています。これが分析結果として出したい値ですね。
他には連番のユニークID(PassengerId)、年齢(Age)、性別(Sex)、同乗していた親族関係(SibSp,Parch)、
乗客の階級(Pclass)、乗船料金(Fare)、部屋番号(Cabin)、チケット番号(Ticket)、乗船場所(Embarked)
といった情報を持っています。これらが生存にどう関わるかを見ていきましょう。

## 全体の人数

まずは全体の人数を把握しましょう。
画面下部のタブから「シート１」を開いて、画面左「メジャー」枠内の「Number of Records」をダブルクリックします。
![tableau_record_number.png](https://qiita-image-store.s3.amazonaws.com/0/36022/92a3c751-29e6-19c8-53d5-1f9681466017.png)
棒グラフが表示され、マウスオーバーするとツールヒントが表示されて891人分のデータが入っていることがわかります。

## 性別ごとの人数

次にこの人数を性別で分けて見てみましょう。
画面左「ディメンション」枠内の「Sex」をダブルクリックします。
![tableau_sex.png](https://qiita-image-store.s3.amazonaws.com/0/36022/261c9307-7b44-00ba-9b42-3d77b40bee89.png)
棒グラフが２つに分かれ、女性(femail)が３１４人、男性(male)が577人乗っていたことが分かります。

このようにTableauでは各フィールドの役割を認識してある程度自動的に最適なグラフを表示してくれます。
詳しくは公式ドキュメントの[ディメンションとメジャー](https://onlinehelp.tableau.com/current/pro/desktop/ja-jp/datafields_typesandroles_dataroles_dimensionmeasure.html)をご一読下さい。

## 性別ごとの生存率

続いて各性別での生存率を見比べてみましょう。
ここではSurvivedをメジャーではなくディメンションとして扱う必要があるので、
左下枠「メジャー」内の「Survived」を左上枠「ディメンション」内にドラッグします。
メジャーとなった「Suvived」を画面中央やや左「マーク」枠内の「色」にドラッグします。
![tableau_sex_survived.png](https://qiita-image-store.s3.amazonaws.com/0/36022/812598b0-ab09-3633-55af-60048f1f8bf9.png)
オレンジとブルーの積み上げ棒グラフになりました。

男性に比べて女性の方が生存率が高いことが分かります。

## 性別・階級別の生存率

さらに今度は乗客の階級(Pclass)をメジャーからディメンションに変更した上で、
画面上部「行」枠内にドラッグしてみてください。
![tableau_sex_pclass_survived.png](https://qiita-image-store.s3.amazonaws.com/0/36022/84662ed2-03cf-de1a-9dcc-4e915068f18b.png)
乗客階級ごとのグラフとして、縦３行に分割して表示されました。

実数のままでも目的とする情報(生存率の差)を読み取れなくはないのですが、
もう少し分かりやすくするために見やすくするために、100%積み上げ棒グラフとして表示しましょう。

画面上部「行」枠内の「合計(Number of Record)」を右クリックして、
「簡易表計算」「合計に対する割合」を選択します。
![tableau_calc_rate.png](https://qiita-image-store.s3.amazonaws.com/0/36022/19437241-8619-8b4f-a24f-2fca784bc829.png)
再び「合計(Number of Record)」を右クリックし「次を使用して計算」「セル」を選択します。
![tableau_by_cell.png](https://qiita-image-store.s3.amazonaws.com/0/36022/fa969b1b-7d70-d288-ac07-8ee689af513a.png)

このあたりの概念は説明が難しいので割愛します。
[公式ドキュメント](https://onlinehelp.tableau.com/current/pro/desktop/ja-jp/calculations_tablecalculations_definebasic_percentoftotal.html)を読みつつ、色々いじくり回して感覚を掴んでください。

これで見やすくなりました。
![tableau_sex_class_survived_100per.png](https://qiita-image-store.s3.amazonaws.com/0/36022/ef49d739-e310-cb71-b894-ae1cfcb8fa0f.png)

ここまでの可視化作業で、「生存率が高いのは階級の高い女性だ」という事実を読み取れました。

# おわりに

第１回目の今回はKaggleにおける入門課題TitanicのデータをTableauで可視化しました。
結果として階級と性別による傾向が読み取れました。
[第２回目](http://qiita.com/msuz/items/0d399b258643028e6fee)はこの条件を使って簡易的な予測を出してKaggleに提出してみます。
第３回目はAzureMLを使った機械学習を行う予定です。

引き続きどうぞよろしくお願いします。