{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# アイスクリーム統計学 + Python (第7章〜第9章)\n", "\n", "[アイスクリーム統計学にようこそ!](http://kogolab.chillout.jp/elearn/icecream/index.html)\n", "のページを読み進めながら、以下の課題を Python を使って解いてください。\n", "\n", "* [アイスクリーム統計学・第1章〜第3章(散布図と相関、相関係数、無相関検定)](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%A0%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%91%E7%AB%A0%E3%80%9C%E7%AC%AC%EF%BC%93%E7%AB%A0.ipynb)\n", "* [アイスクリーム統計学・第4章〜第6章(単回帰、偏相関、重回帰)](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%A0%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%94%E7%AB%A0%E3%80%9C%E7%AC%AC%EF%BC%96%E7%AB%A0.ipynb)\n", "* [アイスクリーム統計学・第7章〜第9章(相関行列、因子分析1、因子分析2)](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%A0%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%97%E7%AB%A0%E3%80%9C%E7%AC%AC%EF%BC%99%E7%AB%A0.ipynb)\n", "* [アイスクリーム統計学・第10章(主成分分析とクラスター分析)](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%A0%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%91%EF%BC%90%E7%AB%A0.ipynb)\n", "* [ハンバーガー統計学・第1章〜第2章(平均と分散、信頼区間)](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%83%8F%E3%83%B3%E3%83%8F%E3%82%99%E3%83%BC%E3%82%AB%E3%82%99%E3%83%BC%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%91%E7%AB%A0%E3%80%9C%E7%AC%AC%EF%BC%92%E7%AB%A0.ipynb)\n", "* [ハンバーガー統計学・第3章〜第5章(カイ2乗検定、t検定 (対応なし・対応あり))](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%83%8F%E3%83%B3%E3%83%8F%E3%82%99%E3%83%BC%E3%82%AB%E3%82%99%E3%83%BC%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%93%E7%AB%A0%E3%80%9C%E7%AC%AC%EF%BC%95%E7%AB%A0.ipynb)\n", "* [ハンバーガー統計学・第6章〜第7章(分散分析 (1要因、2要因) )](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%83%8F%E3%83%B3%E3%83%8F%E3%82%99%E3%83%BC%E3%82%AB%E3%82%99%E3%83%BC%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%96%E7%AB%A0%E3%80%9C%E7%AC%AC%EF%BC%97%E7%AB%A0.ipynb)\n", "* [ハンバーガー統計学・第8章 (分布と仮説検定)](http://nbviewer.jupyter.org/github/maskot1977/ipython_notebook/blob/master/%E3%83%8F%E3%83%B3%E3%83%8F%E3%82%99%E3%83%BC%E3%82%AB%E3%82%99%E3%83%BC%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%83%BB%E7%AC%AC%EF%BC%98%E7%AB%A0.ipynb)\n", "\n", "### Jupyter Notebook (IPython Notebook) とは\n", "* Python という名のプログラミング言語が使えるプログラミング環境。計算コードと計算結果を同じ場所に時系列で保存できるので、実験系における実験ノートのように、いつどんな処理を行って何を得たのか記録して再現するのに便利。\n", "* [当学演習室での Jupyter Notebook の起動方法](https://raw.githubusercontent.com/maskot1977/-/master/%E6%BC%94%E7%BF%92%E5%AE%A4.txt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7. [相関行列](http://kogolab.chillout.jp/elearn/icecream/chap7/sec0.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.1 [多変量データ](http://kogolab.chillout.jp/elearn/icecream/chap7/sec1.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "本文を読んで概念を学んでください。また、 [調査票](https://github.com/maskot1977/ipython_notebook/blob/master/toydata/chosahyo.pdf)を読んで、アンケート内容を把握してください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.2 [変数をまとめる](http://kogolab.chillout.jp/elearn/icecream/chap7/sec2.html)\n", "ここでは、人を「サンプル」と見なし、バニラ、ストロベリーなどの味の好みを「変数」と見なします。(逆に、バニラ、ストロベリーなどのアイスを「サンプル」と見なし、人の好みを「変数」と見なすこともできます。)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__課題7.2__:[アイスクリームアンケート調査結果](https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt)をダウンロードして、次のコードを実行してください。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# URL によるリソースへのアクセスを提供するライブラリをインポートする。\n", "import urllib # Python 2 の場合\n", "# import urllib.request # Python 3 の場合" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# ウェブ上のリソースを指定する\n", "url = 'https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt'" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "('icecream_chosa.txt', )" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 指定したURLからリソースをダウンロードし、名前をつける。\n", "urllib.urlretrieve(url, 'icecream_chosa.txt') # Python 2 の場合\n", "# urllib.request.urlretrieve(url, 'icecream_chosa.txt') # Python 3 の場合" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ID gender age birth_order frequency vanilla strawberry milk_tea macadamia_nuts cookie chocolate melon coffee almond rum_raisin mint banana caramel walnut cassis chocolate_chips orange green_tea marron chocolate_mint adzuki-bean \r\n", "1 2 20 2 5 7 7 8 3 9 9 6 8 3 2 1 7 9 3 3 9 7 8 8 1 7 \r\n", "2 2 21 2 1 7 8 9 9 9 9 2 7 7 9 5 4 7 8 9 9 4 7 7 8 9 \r\n", "3 2 21 3 2 7 4 3 3 6 4 7 7 6 3 3 4 6 3 3 6 7 3 7 3 3 \r\n", "4 2 21 4 3 9 6 6 5 8 6 8 9 6 5 4 4 9 5 4 8 9 1 2 1 3 \r\n", "5 2 21 4 2 9 5 7 5 6 8 4 4 4 6 9 6 6 6 5 9 6 6 6 9 1 \r\n", "6 2 21 2 5 5 7 5 5 5 7 5 8 5 8 9 5 9 5 8 8 9 9 5 9 1 \r\n", "7 2 21 2 2 9 7 6 3 7 9 4 6 5 2 2 6 7 5 5 9 9 3 5 2 3 \r\n", "8 2 20 2 4 7 7 6 8 7 6 5 8 7 5 6 5 6 7 9 5 6 8 5 6 8 \r\n", "9 2 21 2 4 7 7 4 8 7 7 4 7 6 3 5 5 7 7 6 8 6 3 3 7 3 \r\n" ] } ], "source": [ "#最初の数レコードだけ確認する\n", "!head icecream_chosa.txt" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# バニラ、ストロベリーなどの変数間の関係を見るための「行列」 matrix に格納する。\n", "# Pythonにおける「長さnのリスト(n個の要素が入ったリスト)」は、数学における「n次元の列ベクトル」と同じ意味。\n", "# Pythonにおける「リストのリスト(長さnのリストがm個入ったもの)」は、数学における「m行n列の行列」と同じ意味。\n", "# 変数の名前は val_names というリストに入れる\n", "matrix = []\n", "val_names = []\n", "for i, line in enumerate(open(\"icecream_chosa.txt\")):\n", " if i == 0:\n", " for j, val in enumerate(line.split()):\n", " val_names.append(val)\n", " matrix.append([])\n", " else:\n", " for j, val in enumerate(line.split()):\n", " matrix[j].append(float(val))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd # データフレームワーク処理のライブラリをインポート" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...70717273747576777879
ID1.02.03.04.05.06.07.08.09.010.0...71.072.073.074.075.076.077.078.079.080.0
gender2.02.02.02.02.02.02.02.02.02.0...1.01.01.01.01.01.01.01.01.01.0
age20.021.021.021.021.021.021.020.021.022.0...22.024.020.020.021.020.020.023.023.022.0
birth_order2.02.03.04.04.02.02.02.02.04.0...4.01.02.02.02.02.03.01.04.02.0
frequency5.01.02.03.02.05.02.04.04.04.0...4.02.02.05.06.04.06.05.07.02.0
vanilla7.07.07.09.09.05.09.07.07.05.0...7.06.06.08.04.05.07.04.09.08.0
strawberry7.08.04.06.05.07.07.07.07.05.0...7.07.06.08.06.06.05.08.07.05.0
milk_tea8.09.03.06.07.05.06.06.04.09.0...6.05.05.04.02.04.06.08.07.05.0
macadamia_nuts3.09.03.05.05.05.03.08.08.05.0...6.06.08.08.03.09.06.09.05.02.0
cookie9.09.06.08.06.05.07.07.07.08.0...8.04.08.09.06.06.08.09.04.05.0
chocolate9.09.04.06.08.07.09.06.07.08.0...9.08.07.07.06.07.09.09.06.04.0
melon6.02.07.08.04.05.04.05.04.05.0...6.08.03.03.08.04.04.04.07.07.0
coffee8.07.07.09.04.08.06.08.07.06.0...5.07.06.06.05.03.04.08.07.01.0
almond3.07.06.06.04.05.05.07.06.03.0...5.06.07.06.04.06.04.09.04.05.0
rum_raisin2.09.03.05.06.08.02.05.03.03.0...5.08.07.03.02.05.05.01.05.05.0
mint1.05.03.04.09.09.02.06.05.03.0...4.04.08.08.02.04.04.09.08.03.0
banana7.04.04.04.06.05.06.05.05.08.0...5.04.06.05.03.05.03.06.09.04.0
caramel9.07.06.09.06.09.07.06.07.07.0...7.02.07.04.02.05.09.08.07.05.0
walnut3.08.03.05.06.05.05.07.07.02.0...5.06.08.08.03.05.05.09.04.05.0
cassis3.09.03.04.05.08.05.09.06.08.0...5.08.07.08.02.05.05.05.05.05.0
chocolate_chips9.09.06.08.09.08.09.05.08.08.0...9.04.08.09.06.07.09.09.08.05.0
orange7.04.07.09.06.09.09.06.06.06.0...7.07.05.08.08.07.07.09.08.07.0
green_tea8.07.03.01.06.09.03.08.03.06.0...3.08.08.09.01.04.06.09.05.01.0
marron8.07.07.02.06.05.05.05.03.02.0...7.03.08.06.01.04.05.04.05.01.0
chocolate_mint1.08.03.01.09.09.02.06.07.01.0...6.02.08.09.02.04.06.09.08.05.0
adzuki-bean7.09.03.03.01.01.03.08.03.01.0...8.06.07.04.02.04.07.09.04.05.0
\n", "

26 rows × 80 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9 \\\n", "ID 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 \n", "gender 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 \n", "age 20.0 21.0 21.0 21.0 21.0 21.0 21.0 20.0 21.0 22.0 \n", "birth_order 2.0 2.0 3.0 4.0 4.0 2.0 2.0 2.0 2.0 4.0 \n", "frequency 5.0 1.0 2.0 3.0 2.0 5.0 2.0 4.0 4.0 4.0 \n", "vanilla 7.0 7.0 7.0 9.0 9.0 5.0 9.0 7.0 7.0 5.0 \n", "strawberry 7.0 8.0 4.0 6.0 5.0 7.0 7.0 7.0 7.0 5.0 \n", "milk_tea 8.0 9.0 3.0 6.0 7.0 5.0 6.0 6.0 4.0 9.0 \n", "macadamia_nuts 3.0 9.0 3.0 5.0 5.0 5.0 3.0 8.0 8.0 5.0 \n", "cookie 9.0 9.0 6.0 8.0 6.0 5.0 7.0 7.0 7.0 8.0 \n", "chocolate 9.0 9.0 4.0 6.0 8.0 7.0 9.0 6.0 7.0 8.0 \n", "melon 6.0 2.0 7.0 8.0 4.0 5.0 4.0 5.0 4.0 5.0 \n", "coffee 8.0 7.0 7.0 9.0 4.0 8.0 6.0 8.0 7.0 6.0 \n", "almond 3.0 7.0 6.0 6.0 4.0 5.0 5.0 7.0 6.0 3.0 \n", "rum_raisin 2.0 9.0 3.0 5.0 6.0 8.0 2.0 5.0 3.0 3.0 \n", "mint 1.0 5.0 3.0 4.0 9.0 9.0 2.0 6.0 5.0 3.0 \n", "banana 7.0 4.0 4.0 4.0 6.0 5.0 6.0 5.0 5.0 8.0 \n", "caramel 9.0 7.0 6.0 9.0 6.0 9.0 7.0 6.0 7.0 7.0 \n", "walnut 3.0 8.0 3.0 5.0 6.0 5.0 5.0 7.0 7.0 2.0 \n", "cassis 3.0 9.0 3.0 4.0 5.0 8.0 5.0 9.0 6.0 8.0 \n", "chocolate_chips 9.0 9.0 6.0 8.0 9.0 8.0 9.0 5.0 8.0 8.0 \n", "orange 7.0 4.0 7.0 9.0 6.0 9.0 9.0 6.0 6.0 6.0 \n", "green_tea 8.0 7.0 3.0 1.0 6.0 9.0 3.0 8.0 3.0 6.0 \n", "marron 8.0 7.0 7.0 2.0 6.0 5.0 5.0 5.0 3.0 2.0 \n", "chocolate_mint 1.0 8.0 3.0 1.0 9.0 9.0 2.0 6.0 7.0 1.0 \n", "adzuki-bean 7.0 9.0 3.0 3.0 1.0 1.0 3.0 8.0 3.0 1.0 \n", "\n", " ... 70 71 72 73 74 75 76 77 78 \\\n", "ID ... 71.0 72.0 73.0 74.0 75.0 76.0 77.0 78.0 79.0 \n", "gender ... 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 \n", "age ... 22.0 24.0 20.0 20.0 21.0 20.0 20.0 23.0 23.0 \n", "birth_order ... 4.0 1.0 2.0 2.0 2.0 2.0 3.0 1.0 4.0 \n", "frequency ... 4.0 2.0 2.0 5.0 6.0 4.0 6.0 5.0 7.0 \n", "vanilla ... 7.0 6.0 6.0 8.0 4.0 5.0 7.0 4.0 9.0 \n", "strawberry ... 7.0 7.0 6.0 8.0 6.0 6.0 5.0 8.0 7.0 \n", "milk_tea ... 6.0 5.0 5.0 4.0 2.0 4.0 6.0 8.0 7.0 \n", "macadamia_nuts ... 6.0 6.0 8.0 8.0 3.0 9.0 6.0 9.0 5.0 \n", "cookie ... 8.0 4.0 8.0 9.0 6.0 6.0 8.0 9.0 4.0 \n", "chocolate ... 9.0 8.0 7.0 7.0 6.0 7.0 9.0 9.0 6.0 \n", "melon ... 6.0 8.0 3.0 3.0 8.0 4.0 4.0 4.0 7.0 \n", "coffee ... 5.0 7.0 6.0 6.0 5.0 3.0 4.0 8.0 7.0 \n", "almond ... 5.0 6.0 7.0 6.0 4.0 6.0 4.0 9.0 4.0 \n", "rum_raisin ... 5.0 8.0 7.0 3.0 2.0 5.0 5.0 1.0 5.0 \n", "mint ... 4.0 4.0 8.0 8.0 2.0 4.0 4.0 9.0 8.0 \n", "banana ... 5.0 4.0 6.0 5.0 3.0 5.0 3.0 6.0 9.0 \n", "caramel ... 7.0 2.0 7.0 4.0 2.0 5.0 9.0 8.0 7.0 \n", "walnut ... 5.0 6.0 8.0 8.0 3.0 5.0 5.0 9.0 4.0 \n", "cassis ... 5.0 8.0 7.0 8.0 2.0 5.0 5.0 5.0 5.0 \n", "chocolate_chips ... 9.0 4.0 8.0 9.0 6.0 7.0 9.0 9.0 8.0 \n", "orange ... 7.0 7.0 5.0 8.0 8.0 7.0 7.0 9.0 8.0 \n", "green_tea ... 3.0 8.0 8.0 9.0 1.0 4.0 6.0 9.0 5.0 \n", "marron ... 7.0 3.0 8.0 6.0 1.0 4.0 5.0 4.0 5.0 \n", "chocolate_mint ... 6.0 2.0 8.0 9.0 2.0 4.0 6.0 9.0 8.0 \n", "adzuki-bean ... 8.0 6.0 7.0 4.0 2.0 4.0 7.0 9.0 4.0 \n", "\n", " 79 \n", "ID 80.0 \n", "gender 1.0 \n", "age 22.0 \n", "birth_order 2.0 \n", "frequency 2.0 \n", "vanilla 8.0 \n", "strawberry 5.0 \n", "milk_tea 5.0 \n", "macadamia_nuts 2.0 \n", "cookie 5.0 \n", "chocolate 4.0 \n", "melon 7.0 \n", "coffee 1.0 \n", "almond 5.0 \n", "rum_raisin 5.0 \n", "mint 3.0 \n", "banana 4.0 \n", "caramel 5.0 \n", "walnut 5.0 \n", "cassis 5.0 \n", "chocolate_chips 5.0 \n", "orange 7.0 \n", "green_tea 1.0 \n", "marron 1.0 \n", "chocolate_mint 5.0 \n", "adzuki-bean 5.0 \n", "\n", "[26 rows x 80 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# # できあがったMatrixの中身を確認してください。\n", "pd.DataFrame(matrix, index=val_names)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# バニラ、ストロベリーなどアイスクリームの種類に関するデータは5行目以降なので、Matrixを作り直してください。\n", "matrix = []\n", "val_names = []\n", "sta = 5\n", "for i, line in enumerate(open(\"icecream_chosa.txt\")):" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# できあがったMatrixの中身を確認してください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.3 [相関行列を計算する(1)](http://kogolab.chillout.jp/elearn/icecream/chap7/sec3.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.4 [相関行列を計算する(2)](http://kogolab.chillout.jp/elearn/icecream/chap7/sec4.html)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 平均値を求める関数\n", "def average(list):" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 分散を求める関数\n", "def variance(list):" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 標準偏差を求める関数\n", "def standard_deviation(list):" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 共分散を求める関数\n", "def covariance(list1, list2):" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 相関係数を求める関数\n", "def correlation(list1, list2):" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 相関行列を作る関数\n", "def correlation_matrix(matrix):" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...11121314151617181920
01.0000000.0285150.078549-0.1133840.054911-0.110206-0.1128040.058322-0.2616410.103779...0.006796-0.097745-0.173749-0.1573520.021834-0.0106880.0154400.132379-0.2117860.049856
10.0285151.0000000.2072480.1053750.0357430.2089580.295756-0.0172440.1205690.060223...0.2299440.1429290.1559270.1499300.1554220.1709100.1699900.124279-0.0136660.213412
20.0785490.2072481.0000000.3416170.2286460.0559950.0690480.3586470.0761710.128701...0.4011040.4141770.1973850.3347520.1066970.0909380.2853180.285782-0.0191080.218824
3-0.1133840.1053750.3416171.0000000.3437310.197442-0.0930360.2306450.4383630.193574...0.0797800.2015080.6473120.3029490.079059-0.0560180.3106940.2918900.1144040.311802
40.0549110.0357430.2286460.3437311.0000000.259470-0.0163900.2768140.363010-0.028334...0.2345140.2476670.2817140.0946330.442330-0.0749430.0168970.246303-0.1563970.248015
5-0.1102060.2089580.0559950.1974420.2594701.0000000.2109290.2035350.230101-0.148296...0.2425110.2953180.2090690.0996310.6610990.1237570.0479840.1099690.1910600.209861
6-0.1128040.2957560.069048-0.093036-0.0163900.2109291.0000000.193373-0.018380-0.138505...0.2415930.1338730.0321960.0584760.1062300.197470-0.158637-0.079930-0.1097650.030297
70.058322-0.0172440.3586470.2306450.2768140.2035350.1933731.0000000.2595050.009779...0.2886170.2839740.1000080.3128810.2427110.2131610.2374210.1578150.0011010.057754
8-0.2616410.1205690.0761710.4383630.3630100.230101-0.0183800.2595051.0000000.141709...0.0868920.3080050.5463670.1547780.2776360.0368280.0782710.0744510.1550040.217668
90.1037790.0602230.1287010.193574-0.028334-0.148296-0.1385050.0097790.1417091.000000...-0.0591800.0473460.0815680.100993-0.040930-0.1904430.2190830.1226590.1473670.012173
10-0.2362480.0297360.0488610.116515-0.2586320.123174-0.0377180.0811650.1773900.126706...0.1113640.1303380.1452110.1236420.1602710.0204420.2052840.0767430.833957-0.095770
110.0067960.2299440.4011040.0797800.2345140.2425110.2415930.2886170.086892-0.059180...1.0000000.4332790.1284640.2411410.325065-0.0172980.0894880.3839840.0727430.198064
12-0.0977450.1429290.4141770.2015080.2476670.2953180.1338730.2839740.3080050.047346...0.4332791.0000000.2895930.2133860.3427060.1767490.0483730.4581270.1371170.339599
13-0.1737490.1559270.1973850.6473120.2817140.2090690.0321960.1000080.5463670.081568...0.1284640.2895931.0000000.3515030.1287330.0805300.2821900.2693760.2527470.330305
14-0.1573520.1499300.3347520.3029490.0946330.0996310.0584760.3128810.1547780.100993...0.2411410.2133860.3515031.0000000.1232300.1157500.2501570.2043070.1770920.218333
150.0218340.1554220.1066970.0790590.4423300.6610990.1062300.2427110.277636-0.040930...0.3250650.3427060.1287330.1232301.0000000.142654-0.0208190.0978430.2644420.118129
16-0.0106880.1709100.090938-0.056018-0.0749430.1237570.1974700.2131610.036828-0.190443...-0.0172980.1767490.0805300.1157500.1426541.0000000.070940-0.0533420.017846-0.039698
170.0154400.1699900.2853180.3106940.0168970.047984-0.1586370.2374210.0782710.219083...0.0894880.0483730.2821900.250157-0.0208190.0709401.0000000.3854090.2146600.348820
180.1323790.1242790.2857820.2918900.2463030.109969-0.0799300.1578150.0744510.122659...0.3839840.4581270.2693760.2043070.097843-0.0533420.3854091.0000000.1578970.509220
19-0.211786-0.013666-0.0191080.114404-0.1563970.191060-0.1097650.0011010.1550040.147367...0.0727430.1371170.2527470.1770920.2644420.0178460.2146600.1578971.0000000.023781
200.0498560.2134120.2188240.3118020.2480150.2098610.0302970.0577540.2176680.012173...0.1980640.3395990.3303050.2183330.118129-0.0396980.3488200.5092200.0237811.000000
\n", "

21 rows × 21 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 \\\n", "0 1.000000 0.028515 0.078549 -0.113384 0.054911 -0.110206 -0.112804 \n", "1 0.028515 1.000000 0.207248 0.105375 0.035743 0.208958 0.295756 \n", "2 0.078549 0.207248 1.000000 0.341617 0.228646 0.055995 0.069048 \n", "3 -0.113384 0.105375 0.341617 1.000000 0.343731 0.197442 -0.093036 \n", "4 0.054911 0.035743 0.228646 0.343731 1.000000 0.259470 -0.016390 \n", "5 -0.110206 0.208958 0.055995 0.197442 0.259470 1.000000 0.210929 \n", "6 -0.112804 0.295756 0.069048 -0.093036 -0.016390 0.210929 1.000000 \n", "7 0.058322 -0.017244 0.358647 0.230645 0.276814 0.203535 0.193373 \n", "8 -0.261641 0.120569 0.076171 0.438363 0.363010 0.230101 -0.018380 \n", "9 0.103779 0.060223 0.128701 0.193574 -0.028334 -0.148296 -0.138505 \n", "10 -0.236248 0.029736 0.048861 0.116515 -0.258632 0.123174 -0.037718 \n", "11 0.006796 0.229944 0.401104 0.079780 0.234514 0.242511 0.241593 \n", "12 -0.097745 0.142929 0.414177 0.201508 0.247667 0.295318 0.133873 \n", "13 -0.173749 0.155927 0.197385 0.647312 0.281714 0.209069 0.032196 \n", "14 -0.157352 0.149930 0.334752 0.302949 0.094633 0.099631 0.058476 \n", "15 0.021834 0.155422 0.106697 0.079059 0.442330 0.661099 0.106230 \n", "16 -0.010688 0.170910 0.090938 -0.056018 -0.074943 0.123757 0.197470 \n", "17 0.015440 0.169990 0.285318 0.310694 0.016897 0.047984 -0.158637 \n", "18 0.132379 0.124279 0.285782 0.291890 0.246303 0.109969 -0.079930 \n", "19 -0.211786 -0.013666 -0.019108 0.114404 -0.156397 0.191060 -0.109765 \n", "20 0.049856 0.213412 0.218824 0.311802 0.248015 0.209861 0.030297 \n", "\n", " 7 8 9 ... 11 12 13 \\\n", "0 0.058322 -0.261641 0.103779 ... 0.006796 -0.097745 -0.173749 \n", "1 -0.017244 0.120569 0.060223 ... 0.229944 0.142929 0.155927 \n", "2 0.358647 0.076171 0.128701 ... 0.401104 0.414177 0.197385 \n", "3 0.230645 0.438363 0.193574 ... 0.079780 0.201508 0.647312 \n", "4 0.276814 0.363010 -0.028334 ... 0.234514 0.247667 0.281714 \n", "5 0.203535 0.230101 -0.148296 ... 0.242511 0.295318 0.209069 \n", "6 0.193373 -0.018380 -0.138505 ... 0.241593 0.133873 0.032196 \n", "7 1.000000 0.259505 0.009779 ... 0.288617 0.283974 0.100008 \n", "8 0.259505 1.000000 0.141709 ... 0.086892 0.308005 0.546367 \n", "9 0.009779 0.141709 1.000000 ... -0.059180 0.047346 0.081568 \n", "10 0.081165 0.177390 0.126706 ... 0.111364 0.130338 0.145211 \n", "11 0.288617 0.086892 -0.059180 ... 1.000000 0.433279 0.128464 \n", "12 0.283974 0.308005 0.047346 ... 0.433279 1.000000 0.289593 \n", "13 0.100008 0.546367 0.081568 ... 0.128464 0.289593 1.000000 \n", "14 0.312881 0.154778 0.100993 ... 0.241141 0.213386 0.351503 \n", "15 0.242711 0.277636 -0.040930 ... 0.325065 0.342706 0.128733 \n", "16 0.213161 0.036828 -0.190443 ... -0.017298 0.176749 0.080530 \n", "17 0.237421 0.078271 0.219083 ... 0.089488 0.048373 0.282190 \n", "18 0.157815 0.074451 0.122659 ... 0.383984 0.458127 0.269376 \n", "19 0.001101 0.155004 0.147367 ... 0.072743 0.137117 0.252747 \n", "20 0.057754 0.217668 0.012173 ... 0.198064 0.339599 0.330305 \n", "\n", " 14 15 16 17 18 19 20 \n", "0 -0.157352 0.021834 -0.010688 0.015440 0.132379 -0.211786 0.049856 \n", "1 0.149930 0.155422 0.170910 0.169990 0.124279 -0.013666 0.213412 \n", "2 0.334752 0.106697 0.090938 0.285318 0.285782 -0.019108 0.218824 \n", "3 0.302949 0.079059 -0.056018 0.310694 0.291890 0.114404 0.311802 \n", "4 0.094633 0.442330 -0.074943 0.016897 0.246303 -0.156397 0.248015 \n", "5 0.099631 0.661099 0.123757 0.047984 0.109969 0.191060 0.209861 \n", "6 0.058476 0.106230 0.197470 -0.158637 -0.079930 -0.109765 0.030297 \n", "7 0.312881 0.242711 0.213161 0.237421 0.157815 0.001101 0.057754 \n", "8 0.154778 0.277636 0.036828 0.078271 0.074451 0.155004 0.217668 \n", "9 0.100993 -0.040930 -0.190443 0.219083 0.122659 0.147367 0.012173 \n", "10 0.123642 0.160271 0.020442 0.205284 0.076743 0.833957 -0.095770 \n", "11 0.241141 0.325065 -0.017298 0.089488 0.383984 0.072743 0.198064 \n", "12 0.213386 0.342706 0.176749 0.048373 0.458127 0.137117 0.339599 \n", "13 0.351503 0.128733 0.080530 0.282190 0.269376 0.252747 0.330305 \n", "14 1.000000 0.123230 0.115750 0.250157 0.204307 0.177092 0.218333 \n", "15 0.123230 1.000000 0.142654 -0.020819 0.097843 0.264442 0.118129 \n", "16 0.115750 0.142654 1.000000 0.070940 -0.053342 0.017846 -0.039698 \n", "17 0.250157 -0.020819 0.070940 1.000000 0.385409 0.214660 0.348820 \n", "18 0.204307 0.097843 -0.053342 0.385409 1.000000 0.157897 0.509220 \n", "19 0.177092 0.264442 0.017846 0.214660 0.157897 1.000000 0.023781 \n", "20 0.218333 0.118129 -0.039698 0.348820 0.509220 0.023781 1.000000 \n", "\n", "[21 rows x 21 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 相関行列を計算し表示する\n", "cormat = correlation_matrix(matrix)\n", "pd.DataFrame(cormat)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 図やグラフを図示するためのライブラリをインポートする。\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n9v8BlgvaPNntSVkAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 得られた相関行列をカラーマップで表示する。\n", "import matplotlib.ticker as ticker\n", "plt.pcolor(cormat, cmap=plt.cm.Blues)\n", "plt.colorbar()\n", "plt.gca().get_xaxis().set_major_locator(ticker.MaxNLocator(integer=True))\n", "plt.gca().get_yaxis().set_major_locator(ticker.MaxNLocator(integer=True))\n", "plt.xlim([0, len(cormat)])\n", "plt.ylim([0, len(cormat)])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7.6 [通過テスト](http://kogolab.chillout.jp/elearn/icecream/chap7/sec6.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__課題7.6__:[アイスクリームアンケート調査結果](https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt)のデータを用い、以下の問いに答えてください。\n", "* 21種類のアイスクリームの好みのデータについて、すべての組み合わせの相関係数を求めた上で、正の相関が高いもの(ここでは+0.4以上)の組み合わせをリストしてください。\n", "* 同様に、相関行列の中で、負の相関が高いもの(ここでは-0.2以下)の組み合わせをリストしてください。\n", "* 以上の結果を踏まえて、アイスクリームの好みについての分類をしたときに、言えることを書いてください。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 8. [因子分析(1)](http://kogolab.chillout.jp/elearn/icecream/chap8/sec0.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 8.1 [因子分析の考え方](http://kogolab.chillout.jp/elearn/icecream/chap8/sec1.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 8.2 [固有値](http://kogolab.chillout.jp/elearn/icecream/chap8/sec2.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 8.3 [因子負荷](http://kogolab.chillout.jp/elearn/icecream/chap8/sec3.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 8.4 [回転](http://kogolab.chillout.jp/elearn/icecream/chap8/sec4.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 8.5 [通過テスト](http://kogolab.chillout.jp/elearn/icecream/chap8/sec6.html)\n", "Pythonでは、因子分析を行うためのライブラリが使えます。\n", "\n", "__課題8.5__:因子分析を行う前に、リストの正規化をする(Z値に変換する)関数を作成してください。" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# リストの正規化をする(Z値に変換する)関数\n", "def normalize(data):" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# リストのリストの正規化をする(Z値に変換する)関数\n", "def normalize2(data):\n", " list = []\n", " for x in data:\n", " list.append(normalize(x))\n", " return list" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__課題8.6__:因子分析を行う以下のコードを実行してください。" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 図やグラフを図示するためのライブラリをインポートする。\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 機械学習のライブラリから、因子分析のプログラムをインポート\n", "from sklearn.decomposition import FactorAnalysis" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 因子分析の実行\n", "fa = FactorAnalysis()\n", "factors = fa.fit_transform(normalize2(matrix))" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...11121314151617181920
vanilla-1.268569-0.0104242.318349-1.735447-1.382064-0.5705990.0433041.511889-0.7918650.436107...-1.0552571.2538820.161477-0.764865-0.873683-0.2200230.6115760.0830700.2366530.0
strawberry-0.3621260.5141870.8287580.426349-0.0253112.404494-0.876892-1.471251-1.200159-1.630133...-0.1410870.7663271.6676940.562325-0.3541020.694906-0.089582-0.9325070.1667170.0
milk_tea-0.779537-0.4687270.4443151.0644070.688036-0.4970591.139735-0.838651-2.017942-0.732853...0.6204200.552054-1.5357570.319772-0.017558-1.123373-1.6926770.4121580.1033140.0
macadamia_nuts0.311445-1.707769-0.8172740.556034-0.726757-0.2066910.1280000.437522-0.584647-0.277903...0.306305-0.1702831.760713-0.0919571.4724631.2855291.4780710.8768220.7106900.0
cookie-1.458831-0.541890-1.499313-1.012749-0.970025-0.2178020.0463120.0420970.123070-0.748735...-0.932264-1.312443-0.6158762.710530-0.165078-0.8906600.740134-0.963135-0.3232010.0
chocolate-0.0240041.132431-1.190455-1.1166730.047021-0.392829-1.139540-1.0871550.3343340.564087...1.1187160.2500170.734378-1.6033840.098381-1.8078910.297841-1.7761100.1919920.0
melon-0.7565431.8077380.3289621.286306-0.1799941.7272510.3114771.1556712.276051-0.372793...0.155506-0.528329-0.4718450.102185-0.714128-0.0718460.1513550.8553060.3505340.0
coffee-0.6489790.384299-0.0615861.070261-0.617858-2.3393951.278930-0.3905191.665691-0.372049...0.2858451.2985041.1754830.370414-0.0713591.163895-1.140516-1.1290700.0177620.0
almond0.550480-0.495058-1.6840240.228919-1.3999480.6560780.5926460.1895910.259340-1.010834...-0.3281611.373537-0.468381-1.2938560.259451-1.615691-0.0304361.5223420.7248860.0
rum_raisin0.758196-0.8749341.325704-0.696747-1.6947271.3157421.577272-1.1633270.6063881.541298...1.407346-1.161449-0.5046670.0116470.9024070.098465-0.495305-0.498085-0.3814380.0
mint2.4755830.8595360.378847-0.3197730.466233-0.3209640.7731510.393056-0.076465-0.841273...-0.4836450.6950110.2452910.6720470.181762-0.5478090.8310970.141547-2.9339250.0
banana-0.7869820.541323-0.029725-0.1679101.8845160.1445921.804551-0.182355-0.200982-0.191326...-1.943758-1.264642-0.229517-1.7010191.4345170.4399410.682724-0.7633810.3197200.0
caramel-0.4162610.307764-0.745029-0.0239851.3698550.1199221.0096360.779210-0.9502730.988364...2.3964360.570968-0.3234040.456950-1.4326790.6291281.8804400.0442790.2638400.0
walnut0.654143-1.271467-1.0700620.780755-0.3849900.521873-0.5844561.621193-0.5677370.168249...-0.460775-0.857318-0.409739-1.346983-1.7247831.025217-1.389702-1.592031-1.0140180.0
cassis0.175942-0.4372880.0278661.7693190.3989310.032984-0.568923-1.0766110.0422242.937834...-1.8799920.4928590.5720920.716653-0.667108-0.9318650.4381110.482704-0.0063780.0
chocolate_chips-0.2263681.397066-1.208100-1.645448-0.312818-0.345273-0.420425-1.341062-0.4838760.561314...-0.389309-0.455137-0.152339-0.173965-0.5943931.955030-1.1345012.207914-0.5513120.0
orange-0.1630431.6038670.6016731.508254-0.964408-1.057155-1.7113241.006225-1.2374340.208638...0.741975-1.285698-0.3760030.0062711.785554-0.1988880.0466660.183563-0.2787200.0
green_tea0.571728-1.1755871.3087130.3064760.342418-1.306810-1.144870-1.5853951.014943-1.466980...0.223698-1.185572-1.006683-0.777827-1.4592620.1238851.3821540.5422760.3665920.0
marron-0.417869-1.0754060.532979-0.9144451.786432-0.044534-0.3744871.0700830.676474-0.098205...0.717336-1.0569362.0977050.3161350.056157-1.317938-1.6521461.211806-0.2070680.0
chocolate_mint2.4797260.6154350.196853-0.8235840.517045-0.232910-0.1767520.699204-0.0978360.052221...-0.5260640.089772-0.5465671.2508710.0762600.314771-0.771863-0.6466782.9357540.0
adzuki-bean-0.668130-1.1050960.012550-0.5403191.1584160.609084-1.7073440.2305841.2107010.284971...0.1667291.934876-1.7740550.2580551.8071810.995216-0.143440-0.262790-0.6923930.0
\n", "

21 rows × 21 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 \\\n", "vanilla -1.268569 -0.010424 2.318349 -1.735447 -1.382064 -0.570599 \n", "strawberry -0.362126 0.514187 0.828758 0.426349 -0.025311 2.404494 \n", "milk_tea -0.779537 -0.468727 0.444315 1.064407 0.688036 -0.497059 \n", "macadamia_nuts 0.311445 -1.707769 -0.817274 0.556034 -0.726757 -0.206691 \n", "cookie -1.458831 -0.541890 -1.499313 -1.012749 -0.970025 -0.217802 \n", "chocolate -0.024004 1.132431 -1.190455 -1.116673 0.047021 -0.392829 \n", "melon -0.756543 1.807738 0.328962 1.286306 -0.179994 1.727251 \n", "coffee -0.648979 0.384299 -0.061586 1.070261 -0.617858 -2.339395 \n", "almond 0.550480 -0.495058 -1.684024 0.228919 -1.399948 0.656078 \n", "rum_raisin 0.758196 -0.874934 1.325704 -0.696747 -1.694727 1.315742 \n", "mint 2.475583 0.859536 0.378847 -0.319773 0.466233 -0.320964 \n", "banana -0.786982 0.541323 -0.029725 -0.167910 1.884516 0.144592 \n", "caramel -0.416261 0.307764 -0.745029 -0.023985 1.369855 0.119922 \n", "walnut 0.654143 -1.271467 -1.070062 0.780755 -0.384990 0.521873 \n", "cassis 0.175942 -0.437288 0.027866 1.769319 0.398931 0.032984 \n", "chocolate_chips -0.226368 1.397066 -1.208100 -1.645448 -0.312818 -0.345273 \n", "orange -0.163043 1.603867 0.601673 1.508254 -0.964408 -1.057155 \n", "green_tea 0.571728 -1.175587 1.308713 0.306476 0.342418 -1.306810 \n", "marron -0.417869 -1.075406 0.532979 -0.914445 1.786432 -0.044534 \n", "chocolate_mint 2.479726 0.615435 0.196853 -0.823584 0.517045 -0.232910 \n", "adzuki-bean -0.668130 -1.105096 0.012550 -0.540319 1.158416 0.609084 \n", "\n", " 6 7 8 9 ... 11 \\\n", "vanilla 0.043304 1.511889 -0.791865 0.436107 ... -1.055257 \n", "strawberry -0.876892 -1.471251 -1.200159 -1.630133 ... -0.141087 \n", "milk_tea 1.139735 -0.838651 -2.017942 -0.732853 ... 0.620420 \n", "macadamia_nuts 0.128000 0.437522 -0.584647 -0.277903 ... 0.306305 \n", "cookie 0.046312 0.042097 0.123070 -0.748735 ... -0.932264 \n", "chocolate -1.139540 -1.087155 0.334334 0.564087 ... 1.118716 \n", "melon 0.311477 1.155671 2.276051 -0.372793 ... 0.155506 \n", "coffee 1.278930 -0.390519 1.665691 -0.372049 ... 0.285845 \n", "almond 0.592646 0.189591 0.259340 -1.010834 ... -0.328161 \n", "rum_raisin 1.577272 -1.163327 0.606388 1.541298 ... 1.407346 \n", "mint 0.773151 0.393056 -0.076465 -0.841273 ... -0.483645 \n", "banana 1.804551 -0.182355 -0.200982 -0.191326 ... -1.943758 \n", "caramel 1.009636 0.779210 -0.950273 0.988364 ... 2.396436 \n", "walnut -0.584456 1.621193 -0.567737 0.168249 ... -0.460775 \n", "cassis -0.568923 -1.076611 0.042224 2.937834 ... -1.879992 \n", "chocolate_chips -0.420425 -1.341062 -0.483876 0.561314 ... -0.389309 \n", "orange -1.711324 1.006225 -1.237434 0.208638 ... 0.741975 \n", "green_tea -1.144870 -1.585395 1.014943 -1.466980 ... 0.223698 \n", "marron -0.374487 1.070083 0.676474 -0.098205 ... 0.717336 \n", "chocolate_mint -0.176752 0.699204 -0.097836 0.052221 ... -0.526064 \n", "adzuki-bean -1.707344 0.230584 1.210701 0.284971 ... 0.166729 \n", "\n", " 12 13 14 15 16 17 \\\n", "vanilla 1.253882 0.161477 -0.764865 -0.873683 -0.220023 0.611576 \n", "strawberry 0.766327 1.667694 0.562325 -0.354102 0.694906 -0.089582 \n", "milk_tea 0.552054 -1.535757 0.319772 -0.017558 -1.123373 -1.692677 \n", "macadamia_nuts -0.170283 1.760713 -0.091957 1.472463 1.285529 1.478071 \n", "cookie -1.312443 -0.615876 2.710530 -0.165078 -0.890660 0.740134 \n", "chocolate 0.250017 0.734378 -1.603384 0.098381 -1.807891 0.297841 \n", "melon -0.528329 -0.471845 0.102185 -0.714128 -0.071846 0.151355 \n", "coffee 1.298504 1.175483 0.370414 -0.071359 1.163895 -1.140516 \n", "almond 1.373537 -0.468381 -1.293856 0.259451 -1.615691 -0.030436 \n", "rum_raisin -1.161449 -0.504667 0.011647 0.902407 0.098465 -0.495305 \n", "mint 0.695011 0.245291 0.672047 0.181762 -0.547809 0.831097 \n", "banana -1.264642 -0.229517 -1.701019 1.434517 0.439941 0.682724 \n", "caramel 0.570968 -0.323404 0.456950 -1.432679 0.629128 1.880440 \n", "walnut -0.857318 -0.409739 -1.346983 -1.724783 1.025217 -1.389702 \n", "cassis 0.492859 0.572092 0.716653 -0.667108 -0.931865 0.438111 \n", "chocolate_chips -0.455137 -0.152339 -0.173965 -0.594393 1.955030 -1.134501 \n", "orange -1.285698 -0.376003 0.006271 1.785554 -0.198888 0.046666 \n", "green_tea -1.185572 -1.006683 -0.777827 -1.459262 0.123885 1.382154 \n", "marron -1.056936 2.097705 0.316135 0.056157 -1.317938 -1.652146 \n", "chocolate_mint 0.089772 -0.546567 1.250871 0.076260 0.314771 -0.771863 \n", "adzuki-bean 1.934876 -1.774055 0.258055 1.807181 0.995216 -0.143440 \n", "\n", " 18 19 20 \n", "vanilla 0.083070 0.236653 0.0 \n", "strawberry -0.932507 0.166717 0.0 \n", "milk_tea 0.412158 0.103314 0.0 \n", "macadamia_nuts 0.876822 0.710690 0.0 \n", "cookie -0.963135 -0.323201 0.0 \n", "chocolate -1.776110 0.191992 0.0 \n", "melon 0.855306 0.350534 0.0 \n", "coffee -1.129070 0.017762 0.0 \n", "almond 1.522342 0.724886 0.0 \n", "rum_raisin -0.498085 -0.381438 0.0 \n", "mint 0.141547 -2.933925 0.0 \n", "banana -0.763381 0.319720 0.0 \n", "caramel 0.044279 0.263840 0.0 \n", "walnut -1.592031 -1.014018 0.0 \n", "cassis 0.482704 -0.006378 0.0 \n", "chocolate_chips 2.207914 -0.551312 0.0 \n", "orange 0.183563 -0.278720 0.0 \n", "green_tea 0.542276 0.366592 0.0 \n", "marron 1.211806 -0.207068 0.0 \n", "chocolate_mint -0.646678 2.935754 0.0 \n", "adzuki-bean -0.262790 -0.692393 0.0 \n", "\n", "[21 rows x 21 columns]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 左から順に第一因子、第二因子、、、\n", "pd.DataFrame(factors, index=val_names)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 第一因子と第二因子でプロットする\n", "plt.figure(figsize=(8, 8))\n", "for x, y, name in zip(factors[:, 0], factors[:, 1], val_names):\n", " plt.text(x, y, name, alpha=0.8, size=10)\n", "plt.scatter(factors[:, 0], factors[:, 1], alpha=0.8)\n", "plt.title(\"Factor Analysis\")\n", "plt.xlabel(\"The first factor score\")\n", "plt.ylabel(\"The second factor score\")\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__課題8.7__:上と同様にして、第三因子と第四因子でプロットしてください。また、以上の結果から、アイスクリームの味の好みについて何が言えそうか考察してください。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 9. [因子分析(2)](http://kogolab.chillout.jp/elearn/icecream/chap9/sec0.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 9.1 [単純構造](http://kogolab.chillout.jp/elearn/icecream/chap9/sec1.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 9.2 [因子得点](http://kogolab.chillout.jp/elearn/icecream/chap9/sec2.html)\n", "本文を読んで概念を学んでください。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 9.3 [通過テスト](http://kogolab.chillout.jp/elearn/icecream/chap9/sec3.html)\n", "今までは、アイスクリーム間の関係を解析しましたが、ここからは、人の間の関係を解析します。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__課題9.3__:[アイスクリームアンケート調査結果](https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt)をダウンロードして、先ほどの matrix と縦横を入れ替えた matrixTを作成してください。" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 縦横入れ替えた matrixT を作成\n", "matrixT = []\n", "val_names = []\n", "ids = []\n", "sta = 5\n", "for i, line in enumerate(open(\"icecream_chosa.txt\")):\n", " if i == 0:\n", " for j, val in enumerate(line.split()):\n", " val_names.append(val)\n", " else:\n", " vec = []\n", " for j, val in enumerate(line.split()):\n", " if j == 0:\n", " ids.append(val)\n", " vec.append(float(val))\n", " matrixT.append(vec)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDgenderagebirth_orderfrequencyvanillastrawberrymilk_teamacadamia_nutscookie...bananacaramelwalnutcassischocolate_chipsorangegreen_teamarronchocolate_mintadzuki-bean
01.02.020.02.05.07.07.08.03.09.0...7.09.03.03.09.07.08.08.01.07.0
12.02.021.02.01.07.08.09.09.09.0...4.07.08.09.09.04.07.07.08.09.0
23.02.021.03.02.07.04.03.03.06.0...4.06.03.03.06.07.03.07.03.03.0
34.02.021.04.03.09.06.06.05.08.0...4.09.05.04.08.09.01.02.01.03.0
45.02.021.04.02.09.05.07.05.06.0...6.06.06.05.09.06.06.06.09.01.0
56.02.021.02.05.05.07.05.05.05.0...5.09.05.08.08.09.09.05.09.01.0
67.02.021.02.02.09.07.06.03.07.0...6.07.05.05.09.09.03.05.02.03.0
78.02.020.02.04.07.07.06.08.07.0...5.06.07.09.05.06.08.05.06.08.0
89.02.021.02.04.07.07.04.08.07.0...5.07.07.06.08.06.03.03.07.03.0
910.02.022.04.04.05.05.09.05.08.0...8.07.02.08.08.06.06.02.01.01.0
1011.02.022.02.03.08.01.08.09.07.0...4.09.07.06.06.07.08.06.04.05.0
1112.02.021.04.03.09.04.07.05.08.0...4.04.05.08.09.05.06.04.09.07.0
1213.02.021.04.04.07.07.06.08.08.0...5.09.07.05.09.07.07.06.08.08.0
1314.02.020.04.02.09.06.04.06.09.0...6.07.08.04.09.09.08.09.07.08.0
1415.02.020.02.04.08.07.05.05.05.0...4.04.06.05.08.06.09.04.09.05.0
1516.02.021.04.02.07.04.07.04.07.0...6.06.06.06.04.06.08.05.07.07.0
1617.02.020.02.02.06.04.02.02.07.0...4.06.06.05.07.05.09.06.09.06.0
1718.02.020.03.02.08.07.05.05.06.0...3.05.04.05.07.09.08.04.09.04.0
1819.02.021.04.06.05.09.08.05.07.0...6.06.07.07.08.07.09.05.08.05.0
1920.02.020.04.02.06.06.06.08.08.0...5.07.07.07.07.06.07.07.08.08.0
2021.02.021.04.03.09.09.06.06.08.0...7.06.05.09.09.09.09.07.04.08.0
2122.02.021.01.04.07.09.09.07.09.0...8.08.08.05.08.06.07.08.04.08.0
2223.02.021.02.04.08.08.09.08.08.0...5.08.08.04.09.08.09.05.05.08.0
2324.02.020.04.04.07.07.06.05.04.0...9.09.03.07.07.03.05.09.09.09.0
2425.02.020.01.03.07.06.07.09.09.0...6.08.08.05.08.04.08.09.03.09.0
2526.02.021.04.04.07.05.08.07.09.0...5.04.04.08.09.08.08.06.01.07.0
2627.02.020.02.05.07.09.07.07.08.0...2.08.08.09.08.09.06.03.01.07.0
2728.02.021.02.04.07.06.01.07.08.0...3.06.06.04.08.04.08.07.08.07.0
2829.02.021.03.04.06.07.07.08.08.0...5.09.08.07.09.07.07.05.05.03.0
2930.02.021.04.04.07.07.07.07.09.0...9.09.05.05.09.06.09.07.09.06.0
..................................................................
5051.01.019.02.06.07.08.06.03.05.0...4.05.02.03.08.05.08.03.08.02.0
5152.01.021.01.02.09.04.05.03.07.0...8.06.02.04.09.08.07.05.05.09.0
5253.01.020.01.05.09.08.07.06.09.0...7.09.07.06.09.05.03.09.01.09.0
5354.01.021.04.05.08.08.07.05.07.0...5.04.04.04.07.06.03.04.06.05.0
5455.01.019.04.04.07.07.08.07.06.0...5.06.05.09.09.07.09.07.08.09.0
5556.01.020.02.02.05.07.05.05.05.0...4.06.05.05.09.09.08.05.09.08.0
5657.01.022.01.03.09.09.09.09.09.0...7.08.06.06.08.07.09.07.01.09.0
5758.01.019.01.03.09.03.05.07.06.0...5.01.06.03.08.02.07.01.01.03.0
5859.01.020.02.03.07.07.07.04.06.0...7.08.03.06.07.07.08.06.03.06.0
5960.01.020.04.08.07.08.08.05.07.0...5.06.04.05.05.08.07.06.05.06.0
6061.01.018.02.04.06.04.03.05.09.0...3.04.03.05.08.05.01.03.05.01.0
6162.01.025.02.03.07.08.06.05.09.0...7.05.05.05.09.07.06.06.04.05.0
6263.01.019.02.02.06.06.07.07.07.0...6.08.07.05.09.05.06.06.08.05.0
6364.01.021.02.04.08.07.09.06.09.0...8.04.05.09.09.03.06.05.09.01.0
6465.01.021.02.06.07.08.05.04.06.0...4.07.07.05.06.04.08.05.04.06.0
6566.01.020.02.01.07.07.07.07.08.0...7.04.06.05.07.07.09.05.05.06.0
6667.01.022.02.05.07.07.05.04.08.0...5.03.03.04.08.07.08.05.03.04.0
6768.01.021.02.05.05.05.06.07.07.0...5.05.09.06.09.06.09.07.08.05.0
6869.01.021.03.01.08.07.05.05.07.0...6.05.04.05.07.08.05.05.05.05.0
6970.01.021.02.06.07.07.09.08.09.0...9.09.08.06.09.08.09.07.07.07.0
7071.01.022.04.04.07.07.06.06.08.0...5.07.05.05.09.07.03.07.06.08.0
7172.01.024.01.02.06.07.05.06.04.0...4.02.06.08.04.07.08.03.02.06.0
7273.01.020.02.02.06.06.05.08.08.0...6.07.08.07.08.05.08.08.08.07.0
7374.01.020.02.05.08.08.04.08.09.0...5.04.08.08.09.08.09.06.09.04.0
7475.01.021.02.06.04.06.02.03.06.0...3.02.03.02.06.08.01.01.02.02.0
7576.01.020.02.04.05.06.04.09.06.0...5.05.05.05.07.07.04.04.04.04.0
7677.01.020.03.06.07.05.06.06.08.0...3.09.05.05.09.07.06.05.06.07.0
7778.01.023.01.05.04.08.08.09.09.0...6.08.09.05.09.09.09.04.09.09.0
7879.01.023.04.07.09.07.07.05.04.0...9.07.04.05.08.08.05.05.08.04.0
7980.01.022.02.02.08.05.05.02.05.0...4.05.05.05.05.07.01.01.05.05.0
\n", "

80 rows × 26 columns

\n", "
" ], "text/plain": [ " ID gender age birth_order frequency vanilla strawberry milk_tea \\\n", "0 1.0 2.0 20.0 2.0 5.0 7.0 7.0 8.0 \n", "1 2.0 2.0 21.0 2.0 1.0 7.0 8.0 9.0 \n", "2 3.0 2.0 21.0 3.0 2.0 7.0 4.0 3.0 \n", "3 4.0 2.0 21.0 4.0 3.0 9.0 6.0 6.0 \n", "4 5.0 2.0 21.0 4.0 2.0 9.0 5.0 7.0 \n", "5 6.0 2.0 21.0 2.0 5.0 5.0 7.0 5.0 \n", "6 7.0 2.0 21.0 2.0 2.0 9.0 7.0 6.0 \n", "7 8.0 2.0 20.0 2.0 4.0 7.0 7.0 6.0 \n", "8 9.0 2.0 21.0 2.0 4.0 7.0 7.0 4.0 \n", "9 10.0 2.0 22.0 4.0 4.0 5.0 5.0 9.0 \n", "10 11.0 2.0 22.0 2.0 3.0 8.0 1.0 8.0 \n", "11 12.0 2.0 21.0 4.0 3.0 9.0 4.0 7.0 \n", "12 13.0 2.0 21.0 4.0 4.0 7.0 7.0 6.0 \n", "13 14.0 2.0 20.0 4.0 2.0 9.0 6.0 4.0 \n", "14 15.0 2.0 20.0 2.0 4.0 8.0 7.0 5.0 \n", "15 16.0 2.0 21.0 4.0 2.0 7.0 4.0 7.0 \n", "16 17.0 2.0 20.0 2.0 2.0 6.0 4.0 2.0 \n", "17 18.0 2.0 20.0 3.0 2.0 8.0 7.0 5.0 \n", "18 19.0 2.0 21.0 4.0 6.0 5.0 9.0 8.0 \n", "19 20.0 2.0 20.0 4.0 2.0 6.0 6.0 6.0 \n", "20 21.0 2.0 21.0 4.0 3.0 9.0 9.0 6.0 \n", "21 22.0 2.0 21.0 1.0 4.0 7.0 9.0 9.0 \n", "22 23.0 2.0 21.0 2.0 4.0 8.0 8.0 9.0 \n", "23 24.0 2.0 20.0 4.0 4.0 7.0 7.0 6.0 \n", "24 25.0 2.0 20.0 1.0 3.0 7.0 6.0 7.0 \n", "25 26.0 2.0 21.0 4.0 4.0 7.0 5.0 8.0 \n", "26 27.0 2.0 20.0 2.0 5.0 7.0 9.0 7.0 \n", "27 28.0 2.0 21.0 2.0 4.0 7.0 6.0 1.0 \n", "28 29.0 2.0 21.0 3.0 4.0 6.0 7.0 7.0 \n", "29 30.0 2.0 21.0 4.0 4.0 7.0 7.0 7.0 \n", ".. ... ... ... ... ... ... ... ... \n", "50 51.0 1.0 19.0 2.0 6.0 7.0 8.0 6.0 \n", "51 52.0 1.0 21.0 1.0 2.0 9.0 4.0 5.0 \n", "52 53.0 1.0 20.0 1.0 5.0 9.0 8.0 7.0 \n", "53 54.0 1.0 21.0 4.0 5.0 8.0 8.0 7.0 \n", "54 55.0 1.0 19.0 4.0 4.0 7.0 7.0 8.0 \n", "55 56.0 1.0 20.0 2.0 2.0 5.0 7.0 5.0 \n", "56 57.0 1.0 22.0 1.0 3.0 9.0 9.0 9.0 \n", "57 58.0 1.0 19.0 1.0 3.0 9.0 3.0 5.0 \n", "58 59.0 1.0 20.0 2.0 3.0 7.0 7.0 7.0 \n", "59 60.0 1.0 20.0 4.0 8.0 7.0 8.0 8.0 \n", "60 61.0 1.0 18.0 2.0 4.0 6.0 4.0 3.0 \n", "61 62.0 1.0 25.0 2.0 3.0 7.0 8.0 6.0 \n", "62 63.0 1.0 19.0 2.0 2.0 6.0 6.0 7.0 \n", "63 64.0 1.0 21.0 2.0 4.0 8.0 7.0 9.0 \n", "64 65.0 1.0 21.0 2.0 6.0 7.0 8.0 5.0 \n", "65 66.0 1.0 20.0 2.0 1.0 7.0 7.0 7.0 \n", "66 67.0 1.0 22.0 2.0 5.0 7.0 7.0 5.0 \n", "67 68.0 1.0 21.0 2.0 5.0 5.0 5.0 6.0 \n", "68 69.0 1.0 21.0 3.0 1.0 8.0 7.0 5.0 \n", "69 70.0 1.0 21.0 2.0 6.0 7.0 7.0 9.0 \n", "70 71.0 1.0 22.0 4.0 4.0 7.0 7.0 6.0 \n", "71 72.0 1.0 24.0 1.0 2.0 6.0 7.0 5.0 \n", "72 73.0 1.0 20.0 2.0 2.0 6.0 6.0 5.0 \n", "73 74.0 1.0 20.0 2.0 5.0 8.0 8.0 4.0 \n", "74 75.0 1.0 21.0 2.0 6.0 4.0 6.0 2.0 \n", "75 76.0 1.0 20.0 2.0 4.0 5.0 6.0 4.0 \n", "76 77.0 1.0 20.0 3.0 6.0 7.0 5.0 6.0 \n", "77 78.0 1.0 23.0 1.0 5.0 4.0 8.0 8.0 \n", "78 79.0 1.0 23.0 4.0 7.0 9.0 7.0 7.0 \n", "79 80.0 1.0 22.0 2.0 2.0 8.0 5.0 5.0 \n", "\n", " macadamia_nuts cookie ... banana caramel walnut cassis \\\n", "0 3.0 9.0 ... 7.0 9.0 3.0 3.0 \n", "1 9.0 9.0 ... 4.0 7.0 8.0 9.0 \n", "2 3.0 6.0 ... 4.0 6.0 3.0 3.0 \n", "3 5.0 8.0 ... 4.0 9.0 5.0 4.0 \n", "4 5.0 6.0 ... 6.0 6.0 6.0 5.0 \n", "5 5.0 5.0 ... 5.0 9.0 5.0 8.0 \n", "6 3.0 7.0 ... 6.0 7.0 5.0 5.0 \n", "7 8.0 7.0 ... 5.0 6.0 7.0 9.0 \n", "8 8.0 7.0 ... 5.0 7.0 7.0 6.0 \n", "9 5.0 8.0 ... 8.0 7.0 2.0 8.0 \n", "10 9.0 7.0 ... 4.0 9.0 7.0 6.0 \n", "11 5.0 8.0 ... 4.0 4.0 5.0 8.0 \n", "12 8.0 8.0 ... 5.0 9.0 7.0 5.0 \n", "13 6.0 9.0 ... 6.0 7.0 8.0 4.0 \n", "14 5.0 5.0 ... 4.0 4.0 6.0 5.0 \n", "15 4.0 7.0 ... 6.0 6.0 6.0 6.0 \n", "16 2.0 7.0 ... 4.0 6.0 6.0 5.0 \n", "17 5.0 6.0 ... 3.0 5.0 4.0 5.0 \n", "18 5.0 7.0 ... 6.0 6.0 7.0 7.0 \n", "19 8.0 8.0 ... 5.0 7.0 7.0 7.0 \n", "20 6.0 8.0 ... 7.0 6.0 5.0 9.0 \n", "21 7.0 9.0 ... 8.0 8.0 8.0 5.0 \n", "22 8.0 8.0 ... 5.0 8.0 8.0 4.0 \n", "23 5.0 4.0 ... 9.0 9.0 3.0 7.0 \n", "24 9.0 9.0 ... 6.0 8.0 8.0 5.0 \n", "25 7.0 9.0 ... 5.0 4.0 4.0 8.0 \n", "26 7.0 8.0 ... 2.0 8.0 8.0 9.0 \n", "27 7.0 8.0 ... 3.0 6.0 6.0 4.0 \n", "28 8.0 8.0 ... 5.0 9.0 8.0 7.0 \n", "29 7.0 9.0 ... 9.0 9.0 5.0 5.0 \n", ".. ... ... ... ... ... ... ... \n", "50 3.0 5.0 ... 4.0 5.0 2.0 3.0 \n", "51 3.0 7.0 ... 8.0 6.0 2.0 4.0 \n", "52 6.0 9.0 ... 7.0 9.0 7.0 6.0 \n", "53 5.0 7.0 ... 5.0 4.0 4.0 4.0 \n", "54 7.0 6.0 ... 5.0 6.0 5.0 9.0 \n", "55 5.0 5.0 ... 4.0 6.0 5.0 5.0 \n", "56 9.0 9.0 ... 7.0 8.0 6.0 6.0 \n", "57 7.0 6.0 ... 5.0 1.0 6.0 3.0 \n", "58 4.0 6.0 ... 7.0 8.0 3.0 6.0 \n", "59 5.0 7.0 ... 5.0 6.0 4.0 5.0 \n", "60 5.0 9.0 ... 3.0 4.0 3.0 5.0 \n", "61 5.0 9.0 ... 7.0 5.0 5.0 5.0 \n", "62 7.0 7.0 ... 6.0 8.0 7.0 5.0 \n", "63 6.0 9.0 ... 8.0 4.0 5.0 9.0 \n", "64 4.0 6.0 ... 4.0 7.0 7.0 5.0 \n", "65 7.0 8.0 ... 7.0 4.0 6.0 5.0 \n", "66 4.0 8.0 ... 5.0 3.0 3.0 4.0 \n", "67 7.0 7.0 ... 5.0 5.0 9.0 6.0 \n", "68 5.0 7.0 ... 6.0 5.0 4.0 5.0 \n", "69 8.0 9.0 ... 9.0 9.0 8.0 6.0 \n", "70 6.0 8.0 ... 5.0 7.0 5.0 5.0 \n", "71 6.0 4.0 ... 4.0 2.0 6.0 8.0 \n", "72 8.0 8.0 ... 6.0 7.0 8.0 7.0 \n", "73 8.0 9.0 ... 5.0 4.0 8.0 8.0 \n", "74 3.0 6.0 ... 3.0 2.0 3.0 2.0 \n", "75 9.0 6.0 ... 5.0 5.0 5.0 5.0 \n", "76 6.0 8.0 ... 3.0 9.0 5.0 5.0 \n", "77 9.0 9.0 ... 6.0 8.0 9.0 5.0 \n", "78 5.0 4.0 ... 9.0 7.0 4.0 5.0 \n", "79 2.0 5.0 ... 4.0 5.0 5.0 5.0 \n", "\n", " chocolate_chips orange green_tea marron chocolate_mint adzuki-bean \n", "0 9.0 7.0 8.0 8.0 1.0 7.0 \n", "1 9.0 4.0 7.0 7.0 8.0 9.0 \n", "2 6.0 7.0 3.0 7.0 3.0 3.0 \n", "3 8.0 9.0 1.0 2.0 1.0 3.0 \n", "4 9.0 6.0 6.0 6.0 9.0 1.0 \n", "5 8.0 9.0 9.0 5.0 9.0 1.0 \n", "6 9.0 9.0 3.0 5.0 2.0 3.0 \n", "7 5.0 6.0 8.0 5.0 6.0 8.0 \n", "8 8.0 6.0 3.0 3.0 7.0 3.0 \n", "9 8.0 6.0 6.0 2.0 1.0 1.0 \n", "10 6.0 7.0 8.0 6.0 4.0 5.0 \n", "11 9.0 5.0 6.0 4.0 9.0 7.0 \n", "12 9.0 7.0 7.0 6.0 8.0 8.0 \n", "13 9.0 9.0 8.0 9.0 7.0 8.0 \n", "14 8.0 6.0 9.0 4.0 9.0 5.0 \n", "15 4.0 6.0 8.0 5.0 7.0 7.0 \n", "16 7.0 5.0 9.0 6.0 9.0 6.0 \n", "17 7.0 9.0 8.0 4.0 9.0 4.0 \n", "18 8.0 7.0 9.0 5.0 8.0 5.0 \n", "19 7.0 6.0 7.0 7.0 8.0 8.0 \n", "20 9.0 9.0 9.0 7.0 4.0 8.0 \n", "21 8.0 6.0 7.0 8.0 4.0 8.0 \n", "22 9.0 8.0 9.0 5.0 5.0 8.0 \n", "23 7.0 3.0 5.0 9.0 9.0 9.0 \n", "24 8.0 4.0 8.0 9.0 3.0 9.0 \n", "25 9.0 8.0 8.0 6.0 1.0 7.0 \n", "26 8.0 9.0 6.0 3.0 1.0 7.0 \n", "27 8.0 4.0 8.0 7.0 8.0 7.0 \n", "28 9.0 7.0 7.0 5.0 5.0 3.0 \n", "29 9.0 6.0 9.0 7.0 9.0 6.0 \n", ".. ... ... ... ... ... ... \n", "50 8.0 5.0 8.0 3.0 8.0 2.0 \n", "51 9.0 8.0 7.0 5.0 5.0 9.0 \n", "52 9.0 5.0 3.0 9.0 1.0 9.0 \n", "53 7.0 6.0 3.0 4.0 6.0 5.0 \n", "54 9.0 7.0 9.0 7.0 8.0 9.0 \n", "55 9.0 9.0 8.0 5.0 9.0 8.0 \n", "56 8.0 7.0 9.0 7.0 1.0 9.0 \n", "57 8.0 2.0 7.0 1.0 1.0 3.0 \n", "58 7.0 7.0 8.0 6.0 3.0 6.0 \n", "59 5.0 8.0 7.0 6.0 5.0 6.0 \n", "60 8.0 5.0 1.0 3.0 5.0 1.0 \n", "61 9.0 7.0 6.0 6.0 4.0 5.0 \n", "62 9.0 5.0 6.0 6.0 8.0 5.0 \n", "63 9.0 3.0 6.0 5.0 9.0 1.0 \n", "64 6.0 4.0 8.0 5.0 4.0 6.0 \n", "65 7.0 7.0 9.0 5.0 5.0 6.0 \n", "66 8.0 7.0 8.0 5.0 3.0 4.0 \n", "67 9.0 6.0 9.0 7.0 8.0 5.0 \n", "68 7.0 8.0 5.0 5.0 5.0 5.0 \n", "69 9.0 8.0 9.0 7.0 7.0 7.0 \n", "70 9.0 7.0 3.0 7.0 6.0 8.0 \n", "71 4.0 7.0 8.0 3.0 2.0 6.0 \n", "72 8.0 5.0 8.0 8.0 8.0 7.0 \n", "73 9.0 8.0 9.0 6.0 9.0 4.0 \n", "74 6.0 8.0 1.0 1.0 2.0 2.0 \n", "75 7.0 7.0 4.0 4.0 4.0 4.0 \n", "76 9.0 7.0 6.0 5.0 6.0 7.0 \n", "77 9.0 9.0 9.0 4.0 9.0 9.0 \n", "78 8.0 8.0 5.0 5.0 8.0 4.0 \n", "79 5.0 7.0 1.0 1.0 5.0 5.0 \n", "\n", "[80 rows x 26 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# できあがったMatrixTの中身の確認\n", "pd.DataFrame(matrixT, columns=val_names)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# アイスクリームの種類に関するデータは5行目以降なので、MatrixTを作り直してください。\n", "matrixT = []\n", "val_names = []\n", "ids = []\n", "gender = []\n", "sta = 5\n", "for i, line in enumerate(open(\"icecream_chosa.txt\")):\n", " if i == 0:\n", " for j, val in enumerate(line.split()):\n", " if j < sta:\n", " continue\n", " val_names.append(val)\n", " else:\n", " vec = []\n", " for j, val in enumerate(line.split()):\n", " if j == 0:\n", " ids.append(val)\n", " elif j == 1:\n", " gender.append(int(val))\n", " elif j < sta:\n", " continue\n", " else:\n", " vec.append(float(val))\n", " matrixT.append(vec)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
vanillastrawberrymilk_teamacadamia_nutscookiechocolatemeloncoffeealmondrum_raisin...bananacaramelwalnutcassischocolate_chipsorangegreen_teamarronchocolate_mintadzuki-bean
07.07.08.03.09.09.06.08.03.02.0...7.09.03.03.09.07.08.08.01.07.0
17.08.09.09.09.09.02.07.07.09.0...4.07.08.09.09.04.07.07.08.09.0
27.04.03.03.06.04.07.07.06.03.0...4.06.03.03.06.07.03.07.03.03.0
39.06.06.05.08.06.08.09.06.05.0...4.09.05.04.08.09.01.02.01.03.0
49.05.07.05.06.08.04.04.04.06.0...6.06.06.05.09.06.06.06.09.01.0
55.07.05.05.05.07.05.08.05.08.0...5.09.05.08.08.09.09.05.09.01.0
69.07.06.03.07.09.04.06.05.02.0...6.07.05.05.09.09.03.05.02.03.0
77.07.06.08.07.06.05.08.07.05.0...5.06.07.09.05.06.08.05.06.08.0
87.07.04.08.07.07.04.07.06.03.0...5.07.07.06.08.06.03.03.07.03.0
95.05.09.05.08.08.05.06.03.03.0...8.07.02.08.08.06.06.02.01.01.0
108.01.08.09.07.09.03.09.04.07.0...4.09.07.06.06.07.08.06.04.05.0
119.04.07.05.08.04.05.07.05.06.0...4.04.05.08.09.05.06.04.09.07.0
127.07.06.08.08.09.06.07.07.06.0...5.09.07.05.09.07.07.06.08.08.0
139.06.04.06.09.09.03.06.08.09.0...6.07.08.04.09.09.08.09.07.08.0
148.07.05.05.05.09.04.05.04.03.0...4.04.06.05.08.06.09.04.09.05.0
157.04.07.04.07.03.03.07.05.03.0...6.06.06.06.04.06.08.05.07.07.0
166.04.02.02.07.06.04.05.05.08.0...4.06.06.05.07.05.09.06.09.06.0
178.07.05.05.06.08.03.05.06.03.0...3.05.04.05.07.09.08.04.09.04.0
185.09.08.05.07.05.05.05.09.04.0...6.06.07.07.08.07.09.05.08.05.0
196.06.06.08.08.06.01.05.07.08.0...5.07.07.07.07.06.07.07.08.08.0
209.09.06.06.08.07.07.09.06.06.0...7.06.05.09.09.09.09.07.04.08.0
217.09.09.07.09.08.03.01.06.01.0...8.08.08.05.08.06.07.08.04.08.0
228.08.09.08.08.08.06.06.06.09.0...5.08.08.04.09.08.09.05.05.08.0
237.07.06.05.04.07.04.05.05.08.0...9.09.03.07.07.03.05.09.09.09.0
247.06.07.09.09.08.04.06.08.09.0...6.08.08.05.08.04.08.09.03.09.0
257.05.08.07.09.09.05.09.04.04.0...5.04.04.08.09.08.08.06.01.07.0
267.09.07.07.08.05.03.04.08.09.0...2.08.08.09.08.09.06.03.01.07.0
277.06.01.07.08.08.04.04.04.06.0...3.06.06.04.08.04.08.07.08.07.0
286.07.07.08.08.09.08.09.09.06.0...5.09.08.07.09.07.07.05.05.03.0
297.07.07.07.09.09.06.09.09.09.0...9.09.05.05.09.06.09.07.09.06.0
..................................................................
507.08.06.03.05.06.06.06.03.08.0...4.05.02.03.08.05.08.03.08.02.0
519.04.05.03.07.07.01.05.03.04.0...8.06.02.04.09.08.07.05.05.09.0
529.08.07.06.09.08.06.09.05.01.0...7.09.07.06.09.05.03.09.01.09.0
538.08.07.05.07.07.08.04.04.08.0...5.04.04.04.07.06.03.04.06.05.0
547.07.08.07.06.09.05.09.05.07.0...5.06.05.09.09.07.09.07.08.09.0
555.07.05.05.05.09.05.05.05.05.0...4.06.05.05.09.09.08.05.09.08.0
569.09.09.09.09.06.06.09.08.09.0...7.08.06.06.08.07.09.07.01.09.0
579.03.05.07.06.03.02.04.05.08.0...5.01.06.03.08.02.07.01.01.03.0
587.07.07.04.06.06.07.07.04.06.0...7.08.03.06.07.07.08.06.03.06.0
597.08.08.05.07.04.04.04.03.09.0...5.06.04.05.05.08.07.06.05.06.0
606.04.03.05.09.06.04.03.04.05.0...3.04.03.05.08.05.01.03.05.01.0
617.08.06.05.09.08.07.07.05.04.0...7.05.05.05.09.07.06.06.04.05.0
626.06.07.07.07.09.05.06.07.05.0...6.08.07.05.09.05.06.06.08.05.0
638.07.09.06.09.09.06.09.03.07.0...8.04.05.09.09.03.06.05.09.01.0
647.08.05.04.06.05.05.05.05.09.0...4.07.07.05.06.04.08.05.04.06.0
657.07.07.07.08.06.05.09.05.08.0...7.04.06.05.07.07.09.05.05.06.0
667.07.05.04.08.08.05.05.04.04.0...5.03.03.04.08.07.08.05.03.04.0
675.05.06.07.07.09.06.06.09.06.0...5.05.09.06.09.06.09.07.08.05.0
688.07.05.05.07.07.06.05.05.06.0...6.05.04.05.07.08.05.05.05.05.0
697.07.09.08.09.05.08.08.05.06.0...9.09.08.06.09.08.09.07.07.07.0
707.07.06.06.08.09.06.05.05.05.0...5.07.05.05.09.07.03.07.06.08.0
716.07.05.06.04.08.08.07.06.08.0...4.02.06.08.04.07.08.03.02.06.0
726.06.05.08.08.07.03.06.07.07.0...6.07.08.07.08.05.08.08.08.07.0
738.08.04.08.09.07.03.06.06.03.0...5.04.08.08.09.08.09.06.09.04.0
744.06.02.03.06.06.08.05.04.02.0...3.02.03.02.06.08.01.01.02.02.0
755.06.04.09.06.07.04.03.06.05.0...5.05.05.05.07.07.04.04.04.04.0
767.05.06.06.08.09.04.04.04.05.0...3.09.05.05.09.07.06.05.06.07.0
774.08.08.09.09.09.04.08.09.01.0...6.08.09.05.09.09.09.04.09.09.0
789.07.07.05.04.06.07.07.04.05.0...9.07.04.05.08.08.05.05.08.04.0
798.05.05.02.05.04.07.01.05.05.0...4.05.05.05.05.07.01.01.05.05.0
\n", "

80 rows × 21 columns

\n", "
" ], "text/plain": [ " vanilla strawberry milk_tea macadamia_nuts cookie chocolate melon \\\n", "0 7.0 7.0 8.0 3.0 9.0 9.0 6.0 \n", "1 7.0 8.0 9.0 9.0 9.0 9.0 2.0 \n", "2 7.0 4.0 3.0 3.0 6.0 4.0 7.0 \n", "3 9.0 6.0 6.0 5.0 8.0 6.0 8.0 \n", "4 9.0 5.0 7.0 5.0 6.0 8.0 4.0 \n", "5 5.0 7.0 5.0 5.0 5.0 7.0 5.0 \n", "6 9.0 7.0 6.0 3.0 7.0 9.0 4.0 \n", "7 7.0 7.0 6.0 8.0 7.0 6.0 5.0 \n", "8 7.0 7.0 4.0 8.0 7.0 7.0 4.0 \n", "9 5.0 5.0 9.0 5.0 8.0 8.0 5.0 \n", "10 8.0 1.0 8.0 9.0 7.0 9.0 3.0 \n", "11 9.0 4.0 7.0 5.0 8.0 4.0 5.0 \n", "12 7.0 7.0 6.0 8.0 8.0 9.0 6.0 \n", "13 9.0 6.0 4.0 6.0 9.0 9.0 3.0 \n", "14 8.0 7.0 5.0 5.0 5.0 9.0 4.0 \n", "15 7.0 4.0 7.0 4.0 7.0 3.0 3.0 \n", "16 6.0 4.0 2.0 2.0 7.0 6.0 4.0 \n", "17 8.0 7.0 5.0 5.0 6.0 8.0 3.0 \n", "18 5.0 9.0 8.0 5.0 7.0 5.0 5.0 \n", "19 6.0 6.0 6.0 8.0 8.0 6.0 1.0 \n", "20 9.0 9.0 6.0 6.0 8.0 7.0 7.0 \n", "21 7.0 9.0 9.0 7.0 9.0 8.0 3.0 \n", "22 8.0 8.0 9.0 8.0 8.0 8.0 6.0 \n", "23 7.0 7.0 6.0 5.0 4.0 7.0 4.0 \n", "24 7.0 6.0 7.0 9.0 9.0 8.0 4.0 \n", "25 7.0 5.0 8.0 7.0 9.0 9.0 5.0 \n", "26 7.0 9.0 7.0 7.0 8.0 5.0 3.0 \n", "27 7.0 6.0 1.0 7.0 8.0 8.0 4.0 \n", "28 6.0 7.0 7.0 8.0 8.0 9.0 8.0 \n", "29 7.0 7.0 7.0 7.0 9.0 9.0 6.0 \n", ".. ... ... ... ... ... ... ... \n", "50 7.0 8.0 6.0 3.0 5.0 6.0 6.0 \n", "51 9.0 4.0 5.0 3.0 7.0 7.0 1.0 \n", "52 9.0 8.0 7.0 6.0 9.0 8.0 6.0 \n", "53 8.0 8.0 7.0 5.0 7.0 7.0 8.0 \n", "54 7.0 7.0 8.0 7.0 6.0 9.0 5.0 \n", "55 5.0 7.0 5.0 5.0 5.0 9.0 5.0 \n", "56 9.0 9.0 9.0 9.0 9.0 6.0 6.0 \n", "57 9.0 3.0 5.0 7.0 6.0 3.0 2.0 \n", "58 7.0 7.0 7.0 4.0 6.0 6.0 7.0 \n", "59 7.0 8.0 8.0 5.0 7.0 4.0 4.0 \n", "60 6.0 4.0 3.0 5.0 9.0 6.0 4.0 \n", "61 7.0 8.0 6.0 5.0 9.0 8.0 7.0 \n", "62 6.0 6.0 7.0 7.0 7.0 9.0 5.0 \n", "63 8.0 7.0 9.0 6.0 9.0 9.0 6.0 \n", "64 7.0 8.0 5.0 4.0 6.0 5.0 5.0 \n", "65 7.0 7.0 7.0 7.0 8.0 6.0 5.0 \n", "66 7.0 7.0 5.0 4.0 8.0 8.0 5.0 \n", "67 5.0 5.0 6.0 7.0 7.0 9.0 6.0 \n", "68 8.0 7.0 5.0 5.0 7.0 7.0 6.0 \n", "69 7.0 7.0 9.0 8.0 9.0 5.0 8.0 \n", "70 7.0 7.0 6.0 6.0 8.0 9.0 6.0 \n", "71 6.0 7.0 5.0 6.0 4.0 8.0 8.0 \n", "72 6.0 6.0 5.0 8.0 8.0 7.0 3.0 \n", "73 8.0 8.0 4.0 8.0 9.0 7.0 3.0 \n", "74 4.0 6.0 2.0 3.0 6.0 6.0 8.0 \n", "75 5.0 6.0 4.0 9.0 6.0 7.0 4.0 \n", "76 7.0 5.0 6.0 6.0 8.0 9.0 4.0 \n", "77 4.0 8.0 8.0 9.0 9.0 9.0 4.0 \n", "78 9.0 7.0 7.0 5.0 4.0 6.0 7.0 \n", "79 8.0 5.0 5.0 2.0 5.0 4.0 7.0 \n", "\n", " coffee almond rum_raisin ... banana caramel walnut cassis \\\n", "0 8.0 3.0 2.0 ... 7.0 9.0 3.0 3.0 \n", "1 7.0 7.0 9.0 ... 4.0 7.0 8.0 9.0 \n", "2 7.0 6.0 3.0 ... 4.0 6.0 3.0 3.0 \n", "3 9.0 6.0 5.0 ... 4.0 9.0 5.0 4.0 \n", "4 4.0 4.0 6.0 ... 6.0 6.0 6.0 5.0 \n", "5 8.0 5.0 8.0 ... 5.0 9.0 5.0 8.0 \n", "6 6.0 5.0 2.0 ... 6.0 7.0 5.0 5.0 \n", "7 8.0 7.0 5.0 ... 5.0 6.0 7.0 9.0 \n", "8 7.0 6.0 3.0 ... 5.0 7.0 7.0 6.0 \n", "9 6.0 3.0 3.0 ... 8.0 7.0 2.0 8.0 \n", "10 9.0 4.0 7.0 ... 4.0 9.0 7.0 6.0 \n", "11 7.0 5.0 6.0 ... 4.0 4.0 5.0 8.0 \n", "12 7.0 7.0 6.0 ... 5.0 9.0 7.0 5.0 \n", "13 6.0 8.0 9.0 ... 6.0 7.0 8.0 4.0 \n", "14 5.0 4.0 3.0 ... 4.0 4.0 6.0 5.0 \n", "15 7.0 5.0 3.0 ... 6.0 6.0 6.0 6.0 \n", "16 5.0 5.0 8.0 ... 4.0 6.0 6.0 5.0 \n", "17 5.0 6.0 3.0 ... 3.0 5.0 4.0 5.0 \n", "18 5.0 9.0 4.0 ... 6.0 6.0 7.0 7.0 \n", "19 5.0 7.0 8.0 ... 5.0 7.0 7.0 7.0 \n", "20 9.0 6.0 6.0 ... 7.0 6.0 5.0 9.0 \n", "21 1.0 6.0 1.0 ... 8.0 8.0 8.0 5.0 \n", "22 6.0 6.0 9.0 ... 5.0 8.0 8.0 4.0 \n", "23 5.0 5.0 8.0 ... 9.0 9.0 3.0 7.0 \n", "24 6.0 8.0 9.0 ... 6.0 8.0 8.0 5.0 \n", "25 9.0 4.0 4.0 ... 5.0 4.0 4.0 8.0 \n", "26 4.0 8.0 9.0 ... 2.0 8.0 8.0 9.0 \n", "27 4.0 4.0 6.0 ... 3.0 6.0 6.0 4.0 \n", "28 9.0 9.0 6.0 ... 5.0 9.0 8.0 7.0 \n", "29 9.0 9.0 9.0 ... 9.0 9.0 5.0 5.0 \n", ".. ... ... ... ... ... ... ... ... \n", "50 6.0 3.0 8.0 ... 4.0 5.0 2.0 3.0 \n", "51 5.0 3.0 4.0 ... 8.0 6.0 2.0 4.0 \n", "52 9.0 5.0 1.0 ... 7.0 9.0 7.0 6.0 \n", "53 4.0 4.0 8.0 ... 5.0 4.0 4.0 4.0 \n", "54 9.0 5.0 7.0 ... 5.0 6.0 5.0 9.0 \n", "55 5.0 5.0 5.0 ... 4.0 6.0 5.0 5.0 \n", "56 9.0 8.0 9.0 ... 7.0 8.0 6.0 6.0 \n", "57 4.0 5.0 8.0 ... 5.0 1.0 6.0 3.0 \n", "58 7.0 4.0 6.0 ... 7.0 8.0 3.0 6.0 \n", "59 4.0 3.0 9.0 ... 5.0 6.0 4.0 5.0 \n", "60 3.0 4.0 5.0 ... 3.0 4.0 3.0 5.0 \n", "61 7.0 5.0 4.0 ... 7.0 5.0 5.0 5.0 \n", "62 6.0 7.0 5.0 ... 6.0 8.0 7.0 5.0 \n", "63 9.0 3.0 7.0 ... 8.0 4.0 5.0 9.0 \n", "64 5.0 5.0 9.0 ... 4.0 7.0 7.0 5.0 \n", "65 9.0 5.0 8.0 ... 7.0 4.0 6.0 5.0 \n", "66 5.0 4.0 4.0 ... 5.0 3.0 3.0 4.0 \n", "67 6.0 9.0 6.0 ... 5.0 5.0 9.0 6.0 \n", "68 5.0 5.0 6.0 ... 6.0 5.0 4.0 5.0 \n", "69 8.0 5.0 6.0 ... 9.0 9.0 8.0 6.0 \n", "70 5.0 5.0 5.0 ... 5.0 7.0 5.0 5.0 \n", "71 7.0 6.0 8.0 ... 4.0 2.0 6.0 8.0 \n", "72 6.0 7.0 7.0 ... 6.0 7.0 8.0 7.0 \n", "73 6.0 6.0 3.0 ... 5.0 4.0 8.0 8.0 \n", "74 5.0 4.0 2.0 ... 3.0 2.0 3.0 2.0 \n", "75 3.0 6.0 5.0 ... 5.0 5.0 5.0 5.0 \n", "76 4.0 4.0 5.0 ... 3.0 9.0 5.0 5.0 \n", "77 8.0 9.0 1.0 ... 6.0 8.0 9.0 5.0 \n", "78 7.0 4.0 5.0 ... 9.0 7.0 4.0 5.0 \n", "79 1.0 5.0 5.0 ... 4.0 5.0 5.0 5.0 \n", "\n", " chocolate_chips orange green_tea marron chocolate_mint adzuki-bean \n", "0 9.0 7.0 8.0 8.0 1.0 7.0 \n", "1 9.0 4.0 7.0 7.0 8.0 9.0 \n", "2 6.0 7.0 3.0 7.0 3.0 3.0 \n", "3 8.0 9.0 1.0 2.0 1.0 3.0 \n", "4 9.0 6.0 6.0 6.0 9.0 1.0 \n", "5 8.0 9.0 9.0 5.0 9.0 1.0 \n", "6 9.0 9.0 3.0 5.0 2.0 3.0 \n", "7 5.0 6.0 8.0 5.0 6.0 8.0 \n", "8 8.0 6.0 3.0 3.0 7.0 3.0 \n", "9 8.0 6.0 6.0 2.0 1.0 1.0 \n", "10 6.0 7.0 8.0 6.0 4.0 5.0 \n", "11 9.0 5.0 6.0 4.0 9.0 7.0 \n", "12 9.0 7.0 7.0 6.0 8.0 8.0 \n", "13 9.0 9.0 8.0 9.0 7.0 8.0 \n", "14 8.0 6.0 9.0 4.0 9.0 5.0 \n", "15 4.0 6.0 8.0 5.0 7.0 7.0 \n", "16 7.0 5.0 9.0 6.0 9.0 6.0 \n", "17 7.0 9.0 8.0 4.0 9.0 4.0 \n", "18 8.0 7.0 9.0 5.0 8.0 5.0 \n", "19 7.0 6.0 7.0 7.0 8.0 8.0 \n", "20 9.0 9.0 9.0 7.0 4.0 8.0 \n", "21 8.0 6.0 7.0 8.0 4.0 8.0 \n", "22 9.0 8.0 9.0 5.0 5.0 8.0 \n", "23 7.0 3.0 5.0 9.0 9.0 9.0 \n", "24 8.0 4.0 8.0 9.0 3.0 9.0 \n", "25 9.0 8.0 8.0 6.0 1.0 7.0 \n", "26 8.0 9.0 6.0 3.0 1.0 7.0 \n", "27 8.0 4.0 8.0 7.0 8.0 7.0 \n", "28 9.0 7.0 7.0 5.0 5.0 3.0 \n", "29 9.0 6.0 9.0 7.0 9.0 6.0 \n", ".. ... ... ... ... ... ... \n", "50 8.0 5.0 8.0 3.0 8.0 2.0 \n", "51 9.0 8.0 7.0 5.0 5.0 9.0 \n", "52 9.0 5.0 3.0 9.0 1.0 9.0 \n", "53 7.0 6.0 3.0 4.0 6.0 5.0 \n", "54 9.0 7.0 9.0 7.0 8.0 9.0 \n", "55 9.0 9.0 8.0 5.0 9.0 8.0 \n", "56 8.0 7.0 9.0 7.0 1.0 9.0 \n", "57 8.0 2.0 7.0 1.0 1.0 3.0 \n", "58 7.0 7.0 8.0 6.0 3.0 6.0 \n", "59 5.0 8.0 7.0 6.0 5.0 6.0 \n", "60 8.0 5.0 1.0 3.0 5.0 1.0 \n", "61 9.0 7.0 6.0 6.0 4.0 5.0 \n", "62 9.0 5.0 6.0 6.0 8.0 5.0 \n", "63 9.0 3.0 6.0 5.0 9.0 1.0 \n", "64 6.0 4.0 8.0 5.0 4.0 6.0 \n", "65 7.0 7.0 9.0 5.0 5.0 6.0 \n", "66 8.0 7.0 8.0 5.0 3.0 4.0 \n", "67 9.0 6.0 9.0 7.0 8.0 5.0 \n", "68 7.0 8.0 5.0 5.0 5.0 5.0 \n", "69 9.0 8.0 9.0 7.0 7.0 7.0 \n", "70 9.0 7.0 3.0 7.0 6.0 8.0 \n", "71 4.0 7.0 8.0 3.0 2.0 6.0 \n", "72 8.0 5.0 8.0 8.0 8.0 7.0 \n", "73 9.0 8.0 9.0 6.0 9.0 4.0 \n", "74 6.0 8.0 1.0 1.0 2.0 2.0 \n", "75 7.0 7.0 4.0 4.0 4.0 4.0 \n", "76 9.0 7.0 6.0 5.0 6.0 7.0 \n", "77 9.0 9.0 9.0 4.0 9.0 9.0 \n", "78 8.0 8.0 5.0 5.0 8.0 4.0 \n", "79 5.0 7.0 1.0 1.0 5.0 5.0 \n", "\n", "[80 rows x 21 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# できあがったMatrixTの中身の確認\n", "pd.DataFrame(matrixT, columns=val_names)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__課題9.4__:作成した MatrixT をもとに、アイスクリームの好みに関する相関係数を作成してください。また、その相関行列をカラーマップで図示してください。" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 相関行列を計算し表示する" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 得られた相関行列をカラーマップで表示する。" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "__課題9.5__:作成した matrixT をもとに、アイスクリームの好みに関する因子分析を実行し、80人の男女を色分けして、第一因子と第二因子でプロットしてください。また、この結果から、アイスクリームの好みに関して言えることを考察してください。" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 因子分析の実行" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 第一因子と第二因子でプロットする" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__今日の課題提出__:計算結果を.ipynb ファイル(または.jsonファイル)として保存し、指定したアドレスまでメールしてください。メールタイトルは「__アイスクリーム統計学789__」とし、メール本文に学籍番号と氏名を明記のこと。また、感想も書いてくれると喜びます。今後の講義の改善につながるかも知れません。" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 0 }