Jupyter Notebook を使った大規模データの可視化と機械学習 １日体験コース

# Jupyter Notebook を使った大規模データの可視化と機械学習

本実験では、Jupyter Notebook を使って大規模データの可視化と機械学習を行います。数値データを可視化し俯瞰することは解析の基礎であり、どのようなデータであれ非常に大切なことです。

### Jupyter Notebook (IPython Notebook) とは

* Python という名のプログラミング言語が使えるプログラミング環境。計算コードと計算結果を同じ場所に時系列で保存できるので、実験系における実験ノートのように、いつどんな処理を行って何を得たのか記録して再現するのに便利。

### 本実習で用いるデータ

（<a href="https://qiita.com/maskot1977/items/453eddf5aa154c04668c" target="_blank">詳細</a>）
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/airquality.txt" target="_blank">「ニューヨークの大気状態観測値」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/USArrests.txt" target="_blank">「合州国の州別暴力犯罪率」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/sports_dataJt.txt" target="_blank">「スポーツテストデータ」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt" target="_blank">「好きなアイスクリームアンケート」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/PLIlive_dataJ.txt" target="_blank">「新国民生活指標データ」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/sake_dataJ.txt" target="_blank">「都道府県別アルコール類の消費量」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/sbnote_dataJt.txt" target="_blank">「スイス銀行紙幣データ」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/iris.txt" target="_blank">「あやめのデータ」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/pima-indians-diabetes.txt" target="_blank">「ピマ・インディアンの糖尿病診断」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/parkinsons.data" target="_blank">「パーキンソン病診断データ」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/ecoli.data" target="_blank">「大腸菌タンパク質の細胞内局在」</a>
* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/yeast.data" target="_blank">「酵母タンパク質の細胞内局在」</a>
* <a href="https://raw.githubusercontent.com/chemo-wakate/tutorial-6th/master/beginner/data/winequality-red.txt" target="_blank">「ワインの品質」（赤ワイン）</a>
* <a href="https://raw.githubusercontent.com/chemo-wakate/tutorial-6th/master/beginner/data/winequality-white.txt" target="_blank">「ワインの品質」（白ワイン）</a>


__Step1__ から __Step6__ まで、とりあえず見よう見まねで計算を実行する（コピペでOK）。


## Step 1. まずは、ウォーミングアップから

まずは次のリンクをクリックして、Pythonで簡単な計算をしてみましょう。

* <a href="https://qiita.com/maskot1977/items/e91f68bfb99a8f1c3ea2" target="_blank">まずは、ウォーミングアップから</a>

## Step 2. Pandas を用いた演算

Pythonでは、皆がよく使う関数などをライブラリとしてまとめてあり、それをインポートして使います。行列データの取り扱いについて、Pandas というライブラリを使って学んでみましょう。

* <a href="https://qiita.com/maskot1977/items/fb36c861aee02ea18755" target="_blank">Pandasを用いた演算</a>

## Step 3. タブ区切りデータ、コンマ区切りデータ等の読み込み

インターネット上にあるテキストファイル（タブ区切りデータ、コンマ区切りデータ等）をダウンロードし、Pandasに読み込む方法を会得しましょう。

* <a href="https://qiita.com/maskot1977/items/1f6c51965b1bfc341e4b" target="_blank">タブ区切りデータ、コンマ区切りデータ等の読み込み</a>

## Step 4. 読み込んだデータの可視化

大規模データを可視化する方法はいくつかありますが、本実習では以下の方法を学んでください。

<ul>
<li><a href="https://qiita.com/maskot1977/items/d77ee2be467dfb9b051c" target="_blank">折れ線グラフ</a> ... 「ニューヨークの大気状態観測値」を例に
<li><a href="https://qiita.com/maskot1977/items/1d92ba6362c67df594fb" target="_blank">ヒストグラム</a> ... 「好きなアイスクリームアンケート」を例に
<li><a href="https://qiita.com/maskot1977/items/963457fc12248cc41433" target="_blank">ボックスプロットとバイオリンプロット</a> ... 「あやめのデータ」を例に
<li><a href="https://qiita.com/maskot1977/items/7e728b7bf375772a0d02" target="_blank">散布図</a> ... 「合州国の州別暴力犯罪率」を例に
<li><a href="https://qiita.com/maskot1977/items/d6b1be920c8a572f3456" target="_blank">散布図行列</a> ... 「スポーツテストデータ」を例に
<li><a href="https://qiita.com/maskot1977/items/e728aede8b152c5fb2a4" target="_blank">相関行列</a> ... 「新国民生活指標データ」を例に
</ul>

## Step 5. 機械学習（教師なし）

教師なし学習（Unsupervised Learning）とは、機械学習の手法の一つで、データの背後に存在する本質的な構造を抽出するために用いられます。本実習ではこれを少しだけ体験してみましょう。
<ul>
<li><a href="https://qiita.com/maskot1977/items/294e78388e4a08780adf" target="_blank">主成分分析</a> ... 「都道府県別アルコール類の消費量」を例に
<li><a href="https://qiita.com/maskot1977/items/c71f4b431715eca99e4c" target="_blank">階層的クラスタリング</a> ... 「都道府県別アルコール類の消費量」を例に
</ul>

## Step 6. 機械学習（教師あり）

教師あり学習（Supervised learning）とは、機械学習の手法の一つで、事前に与えられたデータを「例題（＝先生からの助言）」(training data)とみなして、それをガイドに学習（＝データへの何らかのフィッティング）を行うところからこの名があります。本実習ではこれも少しだけ体験してみましょう。
<ul>
<li><a href="https://qiita.com/maskot1977/items/b2cfb369f60ad02887b0" target="_blank">機械学習で二値分類</a> ... 「ワインの品質」を例に
</ul>

## 課題

<a href="https://qiita.com/maskot1977/items/453eddf5aa154c04668c" target="_blank">実習用データ</a>の中から１つを選び、データの可視化と機械学習を用いながら解析し、結果を考察してください。

<h4 style="padding: 0.25em 0.5em;color: #494949;background: transparent;border-left: solid 5px #7db4e6;">解析例</h4>

* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt" target="_blank">「好きなアイスクリームアンケート」</a> を用いて、アイスクリームの好みから性別(gender)などを判別。

* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/pima-indians-diabetes.txt" target="_blank">「ピマ・インディアンの糖尿病診断」</a>を用いて、測定データから糖尿病か否かを判別。

* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/parkinsons.data" target="_blank">「パーキンソン病診断データ」</a>を用いて、測定データからパーキンソン病か否かを判別。

* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/ecoli.data" target="_blank">「大腸菌タンパク質の細胞内局在」</a>を用いて、いくつかのパラメータからそのタンパク質がどこに局在するか判別。

* <a href="https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/yeast.data" target="_blank">「酵母タンパク質の細胞内局在」</a>を用いて、いくつかのパラメータからそのタンパク質がどこに局在するか判別。