Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save canard0328/a5911ee5b4bf1a07fbcb to your computer and use it in GitHub Desktop.
Save canard0328/a5911ee5b4bf1a07fbcb to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##データの入手"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Data obtained from http://biostat.mc.vanderbilt.edu/DataSets"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"pclassの型を数値から文字列に変換"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data['pclass'] = data['pclass'].map(str)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##データの確認"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"survived: 1(生存),0(死亡) \n",
"pclass: 乗客の社会経済的地位(1:上流,2:中流,3:下流) \n",
"name: 氏名 \n",
"sex: 性別 \n",
"age: 年齢 \n",
"sibsp: 同乗したSibling/Spouseの数 \n",
"parch: 同乗したParent/Childrenの数 \n",
"ticket: チケットナンバー \n",
"fare: 乗船料金 \n",
"cabin: 船室番号 \n",
"embarked: 乗船場(C = Cherbourg, Q = Queenstown; S = Southampton) \n",
"boat: Lifeboat \n",
"body: Body Identification Number \n",
"home.dest: Home/Destination"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<bound method DataFrame.describe of pclass survived name \\\n",
"0 1 1 Allen, Miss. Elisabeth Walton \n",
"1 1 1 Allison, Master. Hudson Trevor \n",
"2 1 0 Allison, Miss. Helen Loraine \n",
"3 1 0 Allison, Mr. Hudson Joshua Creighton \n",
"4 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) \n",
"5 1 1 Anderson, Mr. Harry \n",
"6 1 1 Andrews, Miss. Kornelia Theodosia \n",
"7 1 0 Andrews, Mr. Thomas Jr \n",
"8 1 1 Appleton, Mrs. Edward Dale (Charlotte Lamson) \n",
"9 1 0 Artagaveytia, Mr. Ramon \n",
"10 1 0 Astor, Col. John Jacob \n",
"11 1 1 Astor, Mrs. John Jacob (Madeleine Talmadge Force) \n",
"12 1 1 Aubart, Mme. Leontine Pauline \n",
"13 1 1 Barber, Miss. Ellen \"Nellie\" \n",
"14 1 1 Barkworth, Mr. Algernon Henry Wilson \n",
"15 1 0 Baumann, Mr. John D \n",
"16 1 0 Baxter, Mr. Quigg Edmond \n",
"17 1 1 Baxter, Mrs. James (Helene DeLaudeniere Chaput) \n",
"18 1 1 Bazzani, Miss. Albina \n",
"19 1 0 Beattie, Mr. Thomson \n",
"20 1 1 Beckwith, Mr. Richard Leonard \n",
"21 1 1 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) \n",
"22 1 1 Behr, Mr. Karl Howell \n",
"23 1 1 Bidois, Miss. Rosalie \n",
"24 1 1 Bird, Miss. Ellen \n",
"25 1 0 Birnbaum, Mr. Jakob \n",
"26 1 1 Bishop, Mr. Dickinson H \n",
"27 1 1 Bishop, Mrs. Dickinson H (Helen Walton) \n",
"28 1 1 Bissette, Miss. Amelia \n",
"29 1 1 Bjornstrom-Steffansson, Mr. Mauritz Hakan \n",
"... ... ... ... \n",
"1279 3 0 Vestrom, Miss. Hulda Amanda Adolfina \n",
"1280 3 0 Vovk, Mr. Janko \n",
"1281 3 0 Waelens, Mr. Achille \n",
"1282 3 0 Ware, Mr. Frederick \n",
"1283 3 0 Warren, Mr. Charles William \n",
"1284 3 0 Webber, Mr. James \n",
"1285 3 0 Wenzel, Mr. Linhart \n",
"1286 3 1 Whabee, Mrs. George Joseph (Shawneene Abi-Saab) \n",
"1287 3 0 Widegren, Mr. Carl/Charles Peter \n",
"1288 3 0 Wiklund, Mr. Jakob Alfred \n",
"1289 3 0 Wiklund, Mr. Karl Johan \n",
"1290 3 1 Wilkes, Mrs. James (Ellen Needs) \n",
"1291 3 0 Willer, Mr. Aaron (\"Abi Weller\") \n",
"1292 3 0 Willey, Mr. Edward \n",
"1293 3 0 Williams, Mr. Howard Hugh \"Harry\" \n",
"1294 3 0 Williams, Mr. Leslie \n",
"1295 3 0 Windelov, Mr. Einar \n",
"1296 3 0 Wirz, Mr. Albert \n",
"1297 3 0 Wiseman, Mr. Phillippe \n",
"1298 3 0 Wittevrongel, Mr. Camille \n",
"1299 3 0 Yasbeck, Mr. Antoni \n",
"1300 3 1 Yasbeck, Mrs. Antoni (Selini Alexander) \n",
"1301 3 0 Youseff, Mr. Gerious \n",
"1302 3 0 Yousif, Mr. Wazli \n",
"1303 3 0 Yousseff, Mr. Gerious \n",
"1304 3 0 Zabour, Miss. Hileni \n",
"1305 3 0 Zabour, Miss. Thamine \n",
"1306 3 0 Zakarian, Mr. Mapriededer \n",
"1307 3 0 Zakarian, Mr. Ortin \n",
"1308 3 0 Zimmerman, Mr. Leo \n",
"\n",
" sex age sibsp parch ticket fare cabin \\\n",
"0 female 29.00 0 0 24160 211.3375 B5 \n",
"1 male 0.92 1 2 113781 151.5500 C22 C26 \n",
"2 female 2.00 1 2 113781 151.5500 C22 C26 \n",
"3 male 30.00 1 2 113781 151.5500 C22 C26 \n",
"4 female 25.00 1 2 113781 151.5500 C22 C26 \n",
"5 male 48.00 0 0 19952 26.5500 E12 \n",
"6 female 63.00 1 0 13502 77.9583 D7 \n",
"7 male 39.00 0 0 112050 0.0000 A36 \n",
"8 female 53.00 2 0 11769 51.4792 C101 \n",
"9 male 71.00 0 0 PC 17609 49.5042 NaN \n",
"10 male 47.00 1 0 PC 17757 227.5250 C62 C64 \n",
"11 female 18.00 1 0 PC 17757 227.5250 C62 C64 \n",
"12 female 24.00 0 0 PC 17477 69.3000 B35 \n",
"13 female 26.00 0 0 19877 78.8500 NaN \n",
"14 male 80.00 0 0 27042 30.0000 A23 \n",
"15 male NaN 0 0 PC 17318 25.9250 NaN \n",
"16 male 24.00 0 1 PC 17558 247.5208 B58 B60 \n",
"17 female 50.00 0 1 PC 17558 247.5208 B58 B60 \n",
"18 female 32.00 0 0 11813 76.2917 D15 \n",
"19 male 36.00 0 0 13050 75.2417 C6 \n",
"20 male 37.00 1 1 11751 52.5542 D35 \n",
"21 female 47.00 1 1 11751 52.5542 D35 \n",
"22 male 26.00 0 0 111369 30.0000 C148 \n",
"23 female 42.00 0 0 PC 17757 227.5250 NaN \n",
"24 female 29.00 0 0 PC 17483 221.7792 C97 \n",
"25 male 25.00 0 0 13905 26.0000 NaN \n",
"26 male 25.00 1 0 11967 91.0792 B49 \n",
"27 female 19.00 1 0 11967 91.0792 B49 \n",
"28 female 35.00 0 0 PC 17760 135.6333 C99 \n",
"29 male 28.00 0 0 110564 26.5500 C52 \n",
"... ... ... ... ... ... ... ... \n",
"1279 female 14.00 0 0 350406 7.8542 NaN \n",
"1280 male 22.00 0 0 349252 7.8958 NaN \n",
"1281 male 22.00 0 0 345767 9.0000 NaN \n",
"1282 male NaN 0 0 359309 8.0500 NaN \n",
"1283 male NaN 0 0 C.A. 49867 7.5500 NaN \n",
"1284 male NaN 0 0 SOTON/OQ 3101316 8.0500 NaN \n",
"1285 male 32.50 0 0 345775 9.5000 NaN \n",
"1286 female 38.00 0 0 2688 7.2292 NaN \n",
"1287 male 51.00 0 0 347064 7.7500 NaN \n",
"1288 male 18.00 1 0 3101267 6.4958 NaN \n",
"1289 male 21.00 1 0 3101266 6.4958 NaN \n",
"1290 female 47.00 1 0 363272 7.0000 NaN \n",
"1291 male NaN 0 0 3410 8.7125 NaN \n",
"1292 male NaN 0 0 S.O./P.P. 751 7.5500 NaN \n",
"1293 male NaN 0 0 A/5 2466 8.0500 NaN \n",
"1294 male 28.50 0 0 54636 16.1000 NaN \n",
"1295 male 21.00 0 0 SOTON/OQ 3101317 7.2500 NaN \n",
"1296 male 27.00 0 0 315154 8.6625 NaN \n",
"1297 male NaN 0 0 A/4. 34244 7.2500 NaN \n",
"1298 male 36.00 0 0 345771 9.5000 NaN \n",
"1299 male 27.00 1 0 2659 14.4542 NaN \n",
"1300 female 15.00 1 0 2659 14.4542 NaN \n",
"1301 male 45.50 0 0 2628 7.2250 NaN \n",
"1302 male NaN 0 0 2647 7.2250 NaN \n",
"1303 male NaN 0 0 2627 14.4583 NaN \n",
"1304 female 14.50 1 0 2665 14.4542 NaN \n",
"1305 female NaN 1 0 2665 14.4542 NaN \n",
"1306 male 26.50 0 0 2656 7.2250 NaN \n",
"1307 male 27.00 0 0 2670 7.2250 NaN \n",
"1308 male 29.00 0 0 315082 7.8750 NaN \n",
"\n",
" embarked boat body home.dest \n",
"0 S 2 NaN St Louis, MO \n",
"1 S 11 NaN Montreal, PQ / Chesterville, ON \n",
"2 S NaN NaN Montreal, PQ / Chesterville, ON \n",
"3 S NaN 135 Montreal, PQ / Chesterville, ON \n",
"4 S NaN NaN Montreal, PQ / Chesterville, ON \n",
"5 S 3 NaN New York, NY \n",
"6 S 10 NaN Hudson, NY \n",
"7 S NaN NaN Belfast, NI \n",
"8 S D NaN Bayside, Queens, NY \n",
"9 C NaN 22 Montevideo, Uruguay \n",
"10 C NaN 124 New York, NY \n",
"11 C 4 NaN New York, NY \n",
"12 C 9 NaN Paris, France \n",
"13 S 6 NaN NaN \n",
"14 S B NaN Hessle, Yorks \n",
"15 S NaN NaN New York, NY \n",
"16 C NaN NaN Montreal, PQ \n",
"17 C 6 NaN Montreal, PQ \n",
"18 C 8 NaN NaN \n",
"19 C A NaN Winnipeg, MN \n",
"20 S 5 NaN New York, NY \n",
"21 S 5 NaN New York, NY \n",
"22 C 5 NaN New York, NY \n",
"23 C 4 NaN NaN \n",
"24 S 8 NaN NaN \n",
"25 C NaN 148 San Francisco, CA \n",
"26 C 7 NaN Dowagiac, MI \n",
"27 C 7 NaN Dowagiac, MI \n",
"28 S 8 NaN NaN \n",
"29 S D NaN Stockholm, Sweden / Washington, DC \n",
"... ... ... ... ... \n",
"1279 S NaN NaN NaN \n",
"1280 S NaN NaN NaN \n",
"1281 S NaN NaN Antwerp, Belgium / Stanton, OH \n",
"1282 S NaN NaN NaN \n",
"1283 S NaN NaN NaN \n",
"1284 S NaN NaN NaN \n",
"1285 S NaN 298 NaN \n",
"1286 C C NaN NaN \n",
"1287 S NaN NaN NaN \n",
"1288 S NaN 314 NaN \n",
"1289 S NaN NaN NaN \n",
"1290 S NaN NaN NaN \n",
"1291 S NaN NaN NaN \n",
"1292 S NaN NaN NaN \n",
"1293 S NaN NaN NaN \n",
"1294 S NaN 14 NaN \n",
"1295 S NaN NaN NaN \n",
"1296 S NaN 131 NaN \n",
"1297 S NaN NaN NaN \n",
"1298 S NaN NaN NaN \n",
"1299 C C NaN NaN \n",
"1300 C NaN NaN NaN \n",
"1301 C NaN 312 NaN \n",
"1302 C NaN NaN NaN \n",
"1303 C NaN NaN NaN \n",
"1304 C NaN 328 NaN \n",
"1305 C NaN NaN NaN \n",
"1306 C NaN 304 NaN \n",
"1307 C NaN NaN NaN \n",
"1308 S NaN NaN NaN \n",
"\n",
"[1309 rows x 14 columns]>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##欠損値の確認"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"pclass 0.000000\n",
"survived 0.000000\n",
"name 0.000000\n",
"sex 0.000000\n",
"age 0.200917\n",
"sibsp 0.000000\n",
"parch 0.000000\n",
"ticket 0.000000\n",
"fare 0.000764\n",
"cabin 0.774637\n",
"embarked 0.001528\n",
"boat 0.628724\n",
"body 0.907563\n",
"home.dest 0.430863\n",
"dtype: float64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(len(data) - data.count()) / len(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##特徴量の選択"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"欠損値の多い特徴量や,分析に有効でなさそうな特徴量を削除します. \n",
"※本来特徴量の選択は分析の試行錯誤のなかで行うべきですが,演習の都合上最初に行っています."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data2 = data.drop(['name', 'ticket', 'cabin', 'boat', 'body', 'home.dest'], 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## データの可視化"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"カテゴリデータ(pclass, embarked, sex)は積み上げ棒グラフにして \n",
"変数の割合と,変数内の生死の割合を可視化"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n2sQ/kuye5KYk+yd5XJIrkjx7jPX8YpJDk6ybM+0/JvmtwfC7kvzfg+HnDOp93KD+m5LstkB1Pj3J\nIYPh5UluSPLsnta61+DfZUn+JsmLelrn/5XkvCQX9vj//eYkT9liWh/r/FSSX5/z//4TfaxzTr27\nJbk9yX59q3PwXv8ryR6D8c8leV3f6vTwmPtIz3r7AqzvounJC7hNet9TF2g7LKp+OMLtsKR7WXY9\nX2y8MOu3kzx/MPznSVZt732Xyp7J5ye5qbX2/dbaQ0nOT3L8uIpprf3PJHdtMfm4zH4YZPDvvxkM\nH5/ks621h1pr38/sf/bzF6jOO1prVwyG701yXZJ9e1rr/YPBx2f2D4y7+lZnVT0jya8m+S9JNl6K\nuVc1zrHlpaJ7VWdV/USSX2yt/UmStNY2tNbu7ludW3hpZj+HbulhnfckeSjJXlW1LMleSW7rYZ0w\nV696+6gtpp68EBZZTx2ZRdoPR2VJ97Ih5IsXVNVPJ9m7tfbtwXz/dc5rtmmphMl9k9wyZ/zWwbQ+\n+anW2g8Hwz9M8lOD4X0yW+9GY6m9qvbP7Lcd30oPa62q3arqikE932ytXdPDOv+fJO9M8sicaX2r\nMUlakr+oqjVV9cbBtL7VeUCSv6+qT1TV5VX1x1X1xB7WOdevJfnsYLhXdbbW7kzye0n+LrON9x9b\na5f0rU7YwmLo7SPR9568QBZLTx21xdgPR0Iv26au677l9B9kB9tkqYTJRXUzzTa7X3l7NS/o+lTV\n8iRfSHJ6a239ZoX0pNbW2iOttUOSPCPJi6vq6C2eH2udVfWvk/yotbY2W+/1my2gJ9syyVGttUOT\nvCzJqVX1i5sV0Y86lyX5+SR/0Fr7+ST3JXn3ZkX0o84kSVU9PsmxSf7bVkX0oM6q+tkkv5nZQ132\nSbK8qk7erIge1AlbWJI/c4uhJ4/aIuupo7ao+uEo6WXbN4913ylLJUz+ILPnKW20XzZP3X3ww6p6\nepIMdjH/aDB9y9qfMZi2IKrqcZltWp9urf1Zn2tNksGhHV9JcljP6vyFJMdV1c2Z3Tt1TFV9umc1\nJklaa7cP/v37JF/K7CEffavz1iS3ttb+djD++cw20zt6VudGL0vyncE2Tfq3PQ9Pcllr7X+31jYk\n+WKSI9Pf7QnJ4ujtQ7XYevIILZqeugAWWz8cJb1sa11+J24dTH/GFtO3u02WSphck+TAqtp/sIdg\n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\nnuy///6bvdczn/nMPPzww/ne976Xl73sZTn88MPz4he/ODfccEOS5Oabb86RRx6ZlStX5r3vfe/C\nbQgAYGIJkwAjcPHFF2fffffNFVdckXXr1mXVqlXbnf/666/P17/+9XzmM5/J6tWrc8EFFyRJbr/9\n9txxxx057LDDNs27YsWKHHLIIZvuA/nlL385q1atyu677543velN+fCHP5w1a9bkgx/8YN761rcm\nSU4//fSceuqpueqqq7LPPvuMZqWho6paVVXXV9WNVfWubTz/mqq6cnABv79ypXaAfhEmAUZg5cqV\nueSSS/Lud787l156aVasWPGY81ZVjjvuuOyxxx5JkhNPPDGf//znkyQXXHBBTjjhhK1es3r16nzu\nc59Lkpx//vlZvXp17r333lx22WU54YQTcuihh+bNb35z7rjjjiTJZZddlpNOOilJcvLJJw91XWFn\nVNXuST6SZFWS5yQ5qaqevcVs/yvJi1trKzN7Zfg/WtgqAdie0Z+YA7AEHXjggVm7dm2+8pWv5L3v\nfW+OOeaYLFu2LI888kiS5MEHH9xs/r322mvT8D777JOnPvWpWbduXS644IKce+65SWZD50bHHnts\n3vOe9+Suu+7K5ZdfnmOOOSbr16/Pk5/85Kxdu3YB1hB22fOT3NRa+36SVNX5SY7PnFuAtdb+es78\n30ryjIUsEIDts2cSYARuv/327LnnnnnNa16Td7zjHVm7dm0OOOCArFmzJknyhS98YdO827p4yOrV\nq3POOefknnvuycEHH7zVfMuXL88RRxyR0047Lccee2yqKitWrMgBBxywaa9may1XXXVVkuSoo47K\n+eefnyQ577zzRrPS0M2+SW6ZM37rYNpjeUOSPx9pRQB0Ys8kwAisW7cu73znO7Pbbrvl8Y9/fD72\nsY/l/vvvzxve8IasWLEiU1NTm/Y0VtVmex2T5FWvelVOP/30nHHGGZumbTnf6tWrc+KJJ246dzKZ\nDYpvectb8ru/+7t56KGHctJJJ2XlypX50Ic+lFe/+tU555xzcvzxx2/1fjAG874Ea1UdneTXkxw1\nunIA6MqtQRYVtwZZkqbdGqTvhnlrkHFzaxAWSlW9MMl0a23VYPy3kzzSWjtni/lWJvliklWttZu2\nsZx25plnbhqfmprK1NTUKEsHWHRmZmY2+/L5rLPOGkpfFyYXFWFySZoWJvtOmITuqmpZkhuSvCTJ\nbUm+neSk1tp1c+Z5ZpJvJDm5tfY3j7Ec95kE6GhYfd1hrgDAgmutbaiqtyX5apLdk3y8tXZdVf3G\n4Plzk5yR5MlJPjY4NPuh1trzx1UzAJuzZ3JRsWdySZq2Z7Lv7JmE8bFnEqC7YfV1V3MFAACgM2ES\nAACAzoRJAAAAOhMmAQAA6EyYBAAAoDNhEmDC3XnnnXnFK16R5cuXZ//9989nP/vZcZcEAEwA95kE\nGIHBPfFGar63Qzj11FOz55575kc/+lHWrl2bl7/85Xne856X5zznOSOuEACYZO4zuai4z+SSNO0+\nk323rXszzobJUf6/ze/elvfdd1+e8pSn5JprrsmznvWsJMnrXve67LPPPvnABz6w9VLdZ5JFxn0m\nAbpzn0kAdui73/1uli1btilIJsnznve8XHPNNWOsCgCYBMIkwAS79957s2LFis2m7b333lm/fv2Y\nKgIAJoUwCTDBli9fnnvuuWezaXfffXf23nvvMVUEAEwKYRJggh100EHZsGFDbrrppk3Trrzyyhx8\n8MFjrAr4/9u7/9i76vqO4883tNh+i1IIAaVlkTlk1akUO2UOxjRMkSiO+oeirVqMkmUOzDJ/QAIh\nIcR1yTJjuopBMUYmLENQurEBRjuHzmKVQgtUrYOMTqjI1P2gMPrlvT/O58v37ttCz933e8/nfu99\nPpKbe++5J9/z+n7uuedz3/ec8zmSNAosJiVphC1ZsoTVq1dz2WWX8fjjj3PHHXewadMm1q5dWzua\nJEma5ywmJWnEbdy4kb1793LMMcewZs0arrrqKlasWFE7liRJmue8zqQkDcxwXEnjyCOP5Kabbqod\nQ5IkjZgxvc6kNL+M2+d0vnm2azPOR15nUvON15mUpP7NVb8+lnsm7XQkSZIkaXY8Z1KSJEmS1DeL\nSUmSJElS3ywmJUmSJEl9s5iUJEmSJPXNYlKSJEmS1DeLSUmSJElS3ywmJUmSJEl9s5iUpBG2YcMG\nVq1axaJFi1i3bl3tOJIkaYQsqB1AkkZRRAx8GZl50HmWLVvGpZdeyq233srevXsHnkmSJI0Pi0lJ\nGpTL6//tc889F4CtW7eye/fuweWRJEljx8NcJWkMtNmLKUmS1A+LSUkaA10cditJksaLxaQkjQH3\nTEqSpLlmMSlJY8A9k5Ikaa5ZTErSCJucnOSJJ55g3759TE5O8uSTTzI5OVk7liRJGgEWk5I0wq64\n4gomJiZYv3491157LYsXL+bKK6+sHUuSJI2AGLfzaCIix+1/ljRYEbHfOYnDcp3Jfh3of+mZ7rGy\nGjr265LUv7nq173OpCQNgF9uJUnSqPMwV0mSJElS3ywmJUmSJEl9s5iUJEmSJPXNYlKSJEmS1DeL\nSUmSJElS3ywmJUmSJEl989IgkjQHuriupCRJ0jBxz6QkzVJmjtRN6kJEnBUROyPiRxHxsWeZ51Pl\n9bsjYmXXGSVJz81icghs3ry5doT9mKm9YcxlpnbMJNUREYcCG4CzgJcB50XEihnznA38WmaeCHwQ\n+HTnQecZtx/TbItptsU022LuWUwOgWFcsc3U3jDmMlM7ZpKqeQ2wKzMfzMyngOuBt82Y5xzgCwCZ\nuQVYGhHHdhtzfnH7Mc22mGZbTLMt5p7FpCRJ6toy4KGe57vLtIPNs3zAuSRJfbCYlCRJXWt7cu7M\nka08qVeShkiM22ALETFe/7AkzZHMdMhazYmIOBW4PDPPKs8vBp7OzPU981wFbM7M68vzncAZmbln\nxt+yX5ek/4e56NfH7tIgfhmSJKm6rcCJEfFi4CfAO4DzZsxzM/Ah4PpSfP5iZiEJ9uuSVNPYFZOS\nJKmuzNwXER8CbgUOBT6XmfdHxAXl9c9k5i0RcXZE7AL+G1hXMbIk6QDG7jBXSZIkSdLsjc0APG0u\njjyg5V4TEXsiYnvPtKMi4vaI+GFE3BYRS3teu7hk3BkRbxxQpuMj4hsRcW9E7IiIC4ck16KI2BIR\n2yLivoj4xDDkKss5NCLuiohNw5ApIh6MiHtKpjuHJNPSiLghIu4v799rhyDTSaWNpm6/jIgLhyDX\nxeXztz0ivhQRzxuCTBeVPDsi4qIyrfpnT5rSph+PiE+V1++OiJVdZ+zKwdoiIt5d2uCeiPhWRLyy\nRs4utFkvyny/GRH7ImJ1l/m61PIz8rulP9wREZs7jtiZFp+RoyPiH6L5zrkjIt5XIebAxQHqkAPM\nM7vtZmaO/I3mEJpdwIuBhcA2YEVHyz4dWAls75n2Z8BHy+OPAX9aHr+sZFtYsu4CDhlAphcCJ5fH\nhwM/AFbUzlWWNVHuFwDfAU4bklx/DPwVcPOQvIcPAEfNmFY70xeA83vevyNqZ5qR7xDgYeD4mrnK\n3/0X4Hnl+V8D762c6TeA7cAimu3l7cBLhun98zbeN1r048DZwC3l8WuB79TOXbEtfgs4ojw+a5zb\nome+rwN/C7y9du6K68VS4F5geXl+dO3cFdvicuATU+0APAYsqJ19AG2xXx0y4/VZbzfHZc9km4sj\nD0Rm/hPw8xmTn7kQc7n//fL4bcB1mflUZj5I80F4zQAyPZKZ28rj/wLup7meV9VcJc/j5eFhNBuD\nn9fOFRHLaT5sn2V6mPrqbdWTZUq1TBFxBHB6Zl4DzflQmfnLmpkO4Eya7cBDlXP9B/AUMBERC4AJ\nmgFIamb6dWBLZj6RmZPAPwJvr5xJ6tWmH39mfc3MLcDSiDi225idOGhbZOY/l20wwBZG9/qcbb/f\n/RFwA/Bol+E61qYt3gV8OTN3A2TmzzrO2JU2bfEw8ILy+AXAY5m5r8OMnXiWOqTXrLeb41JMtrk4\ncpeOzekR6fYAU2/acTTZpgw8ZzQj6a2k6Wyq54qIQyJiW1n+NzLz3iHI9RfAR4Cne6bVzpTA1yJi\na0R8YAgynQA8GhGfj4jvR8TVEbGkcqaZ3glcVx5Xy5WZ/w78OfCvNEXkLzLz9pqZgB3A6eWw1gma\nH0+WV84k9WrTjx9onlEsovr9TvN+4JaBJqrnoG0REctoColPl0mjOlhIm/XiROCoaE512hoRaztL\n1602bXE18PKI+AlwN3BRR9mGzay3m+NSTA7thiOb/crPlW9g2SPicODLwEWZ+Z/DkCszn87Mk2lW\n5N+JiNfXzBURbwF+mpl3sf+ewCqZit/OzJXAm4E/jIjTK2daAJwCbMzMU2hGXvx45UzPiIjDgLcC\nf7PfQrtfp14CfJjm8JvjgMMjYk3NTJm5E1gP3Ab8Pc0hQZM1M0kztF2/Zm6nR3G9bP0/lT70fJrD\n1EdRm7b4JPDxsg0LnqUvHwFt2mIhTV99NvAm4NKIOHGgqepo0xaXANsy8zjgZOAvI+L5g401tGa1\n3RyXYvLfaM6TmnI8//dX9a7tiYgXAkTEi4Cflukzcy4v0+ZcRCykKSS/mJlfGZZcU8rhOX8HvLpy\nrtcB50TEAzR7td4QEV+snInMfLjcPwrcRHNIR81Mu4Hdmfnd8vwGmg7rkSFZp94MfK+0F9Rtq1XA\ntzNz6pCaG2nOb6raVpl5TWauyswzaA6J+SFDtE3Q2GvTj4/LetnqO00ZdOdq4JzMfK7D3OazNm3x\napprlT5Ac/j+xog4p6N8XWrTFg8Bt2Xm3sx8DPgm8KqO8nWpTVu8jvIDc2b+mGYsipM6STdcZr3d\nHJdi8pmLI5c9FO+guRhyLTfTDLhBuf9Kz/R3RsRhEXECzeEId871wiMigM8B92XmJ4co19FTo0VG\nxGLg94C7aubKzEsy8/jMPIHmMMmvZ+bampkiYmLq17NyKOkbaQZPqdlOjwAPRcRLy6QzaU7y31Qr\n0wznMX2I69Tya+XaCZwaEYvLZ/FM4D4qt1VEHFPufwVYDXyJytsEqUebfvxm4D0AEXEqzSHkexg9\nB22L8jm+EViTmbsqZOzKQdsiM381M08o/fgNwB9kZs3vgIPS5jPyVeC0aEaon6AZcOW+jnN2oU1b\n7KTpfynnCJ5EMzjeuJn9drPtSD3z/UazZ+IHNANFXNzhcq+jOS/qf2h+EVoHHAV8jeaX/9uApT3z\nX1Iy7gTeNKBMp9Gc/7eNpli7i2a0t9q5XgF8v+S6B/hImV41V8+yzmB6NNdqmWjOT9xWbjum1ufa\n7UTz6+Z3ac49uJFmNNfq7x2wBPgZ8PyeabXb6qM0xfZ2mhPfFw5Bpm+WTNuA1w9DO3nz1nvjAP04\ncAFwQc88G8rrdwOn1M5cqy1oBox7jOk+/s7amWuuFz3zfh5YXTtzzbYA/qSn/7mwduZabUEzguum\nsq3YDryrduYBtcPMOuT8ud5uRvkjkiRJkiS1Ni6HuUqSJEmS5pDFpCRJkiSpbxaTkiRJkqS+WUxK\nkiRJkvpmMSlJkiRJ6pvFpCRJkiSpbxaTkiRJkqS+WUxKkiRJkvr2v4CtsQ+D5auKAAAAAElFTkSu\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10752b6d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(15, 10))\n",
"\n",
"pd.pivot_table(data2, index=['pclass'], columns=['survived'],\n",
" aggfunc='count')['sex'].plot(kind='barh', stacked=True,\n",
" ax=axes[0,0])\n",
"\n",
"pd.pivot_table(data2, index=['embarked'], columns=['survived'],\n",
" aggfunc='count')['pclass'].plot(kind='barh', stacked=True,\n",
" ax=axes[0,1])\n",
"\n",
"pd.pivot_table(data2, index=['sex'], columns=['survived'],\n",
" aggfunc='count')['pclass'].plot(kind='barh', stacked=True,\n",
" ax=axes[1,0])\n",
"\n",
"plt.subplots_adjust(wspace=.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"数値データ(age, sibsp, parch, fare)は生/死ごとにヒストグラムで可視化"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\neARYC/wwM58Axmbm2mKVtcDYYvogYHW3zVcD4yv5HkmStFN7nNfB3C5JzaC/g37Hbn62TWa+CRwb\nEW8DfhARJ/b4PCOiv3cT+d4iSZKqY4/zOpjbJakZ9FcEvisiNvTx2Vt35Usy85WIuAM4HlgbEQdm\nZltEjAO6HuW1BpjQbbODi2U7mH/fDdumJx96HJMnHr8r4UhS02ttbaW1tbXeYaixVC2vQ3Vzu3ld\nkvpX7bwembU5IRcR+wFbM/N3EfFW4AfAlcCHgXWZeW1EzAb2zczZxc3j8+m8V2A8cDdwRPYIMCJy\n0WcerEnMu2P9xvX8asjP+Md/mVPvUCSpTxFBZlb0BEipL7XI7dXK6xvbN/Hoplauuf7KPd6XJDW6\nPc3rFd8DsBvGAfOKp4ANAW7KzHsi4mFgYURcAKwCzgLIzBURsRBYAWwFLu5ZAEqSpLoyt0tSE6hZ\nEZiZjwPH9bL8t8BJfWxzFXBVrWKSJEm7z9wuSc3Bd/VIkiRJUolYBEqSJElSiVgESpIkSVKJWARK\nkiRJUolYBEqSJElSiVgESpIkSVKJWARKkiRJUolYBEqSJElSiVgESpIkSVKJWARKkiRJUolYBEqS\nJElSiVgESpIkSVKJWARKkiRJUolYBEqSJElSiVgESpIkSVKJWARKkiRJUolYBEqSJElSiVgESpIk\nSVKJWARKkiRJUolYBEqSJElSiVgESpIkSVKJWARKkiRJUolYBEqSJElSiVgESpIkSVKJWARKkiRJ\nUolYBEqSJElSiVgESpIkSVKJWARKkiRJUonUtAiMiAkR8cOIeCIifh4RnyyWj46IpRGxMiKWRMS+\n3baZExFPR8STEfGhWsYnSZIqZ16XpOZQ6yuBHcDfZOYxwPuAT0TE7wOzgaWZeRRwTzFPREwCzgYm\nAacA10eEVyslSWoM5nVJagI1PRBnZltmPlJMbwR+AYwHpgLzitXmAWcW02cACzKzIzNXAc8AU2oZ\noyRJqox5XZKaw4CdjYuIicB7gAeBsZm5tvhoLTC2mD4IWN1ts9V0JhdJktRAzOuSNHgNG4gviYh9\ngO8Bl2bmhojY9llmZkRkP5vv8Nn8+27YNj350OOYPPH4KkYrSYNfa2srra2t9Q5DTcq8LkkDq9p5\nveZFYETsRWeiuCkzby8Wr42IAzOzLSLGAS8Wy9cAE7ptfnCxbDszPnhhLUOWpEGvpaWFlpaWbfNX\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1075336d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(15, 10))\n",
"\n",
"h = pd.concat([data2['age'][data2['survived']==0],\n",
" data2['age'][data2['survived']==1]], axis=1)\n",
"h.columns = ['survived: 0', 'survived: 1']\n",
"h.plot(kind='hist', bins=15, alpha=0.3, color=('r','b'),\n",
" ax=axes[0,0], title='age')\n",
"\n",
"h = pd.concat([data2['sibsp'][data2['survived']==0],\n",
" data2['sibsp'][data2['survived']==1]], axis=1)\n",
"h.columns = ['survived: 0', 'survived: 1']\n",
"h.plot(kind='hist', bins=8, alpha=0.3, color=('r','b'),\n",
" ax=axes[0,1], title='sibsp')\n",
"\n",
"h = pd.concat([data2['parch'][data2['survived']==0],\n",
" data2['parch'][data2['survived']==1]], axis=1)\n",
"h.columns = ['survived: 0', 'survived: 1']\n",
"h.plot(kind='hist', bins=9, alpha=0.3, color=('r','b'),\n",
" ax=axes[1,0], title='parch')\n",
"\n",
"h = pd.concat([data2['fare'][data2['survived']==0],\n",
" data2['fare'][data2['survived']==1]], axis=1)\n",
"h.columns = ['survived: 0', 'survived: 1']\n",
"h.plot(kind='hist', bins=15, alpha=0.3, color=('r','b'),\n",
" ax=axes[1,1], title='fare')\n",
"\n",
"plt.subplots_adjust(wspace=.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 特徴量同士の関係を可視化 \n",
"カテゴリデータ同士の関係はクロス集計(Cross tabulation)で可視化 \n",
"※parch, sibspは数値データですが,取りうる値が限られているためクロス集計を利用"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>pclass</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" </tr>\n",
" <tr>\n",
" <th>embarked</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>C</th>\n",
" <td>141</td>\n",
" <td>28</td>\n",
" <td>101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Q</th>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>113</td>\n",
" </tr>\n",
" <tr>\n",
" <th>S</th>\n",
" <td>177</td>\n",
" <td>242</td>\n",
" <td>495</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"pclass 1 2 3\n",
"embarked \n",
"C 141 28 101\n",
"Q 3 7 113\n",
"S 177 242 495"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['embarked'], data2['pclass'])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>sex</th>\n",
" <th>female</th>\n",
" <th>male</th>\n",
" </tr>\n",
" <tr>\n",
" <th>embarked</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>C</th>\n",
" <td>113</td>\n",
" <td>157</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Q</th>\n",
" <td>60</td>\n",
" <td>63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>S</th>\n",
" <td>291</td>\n",
" <td>623</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sex female male\n",
"embarked \n",
"C 113 157\n",
"Q 60 63\n",
"S 291 623"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['embarked'], data2['sex'])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>sibsp</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>8</th>\n",
" </tr>\n",
" <tr>\n",
" <th>embarked</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>C</th>\n",
" <td>171</td>\n",
" <td>90</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Q</th>\n",
" <td>100</td>\n",
" <td>14</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>S</th>\n",
" <td>618</td>\n",
" <td>215</td>\n",
" <td>29</td>\n",
" <td>20</td>\n",
" <td>17</td>\n",
" <td>6</td>\n",
" <td>9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sibsp 0 1 2 3 4 5 8\n",
"embarked \n",
"C 171 90 9 0 0 0 0\n",
"Q 100 14 4 0 5 0 0\n",
"S 618 215 29 20 17 6 9"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['embarked'], data2['sibsp'])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>parch</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>9</th>\n",
" </tr>\n",
" <tr>\n",
" <th>embarked</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>C</th>\n",
" <td>196</td>\n",
" <td>51</td>\n",
" <td>20</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Q</th>\n",
" <td>114</td>\n",
" <td>7</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>S</th>\n",
" <td>690</td>\n",
" <td>112</td>\n",
" <td>92</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"parch 0 1 2 3 4 5 6 9\n",
"embarked \n",
"C 196 51 20 3 0 0 0 0\n",
"Q 114 7 1 0 0 1 0 0\n",
"S 690 112 92 5 6 5 2 2"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['embarked'], data2['parch'])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>sex</th>\n",
" <th>female</th>\n",
" <th>male</th>\n",
" </tr>\n",
" <tr>\n",
" <th>pclass</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>144</td>\n",
" <td>179</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>106</td>\n",
" <td>171</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>216</td>\n",
" <td>493</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sex female male\n",
"pclass \n",
"1 144 179\n",
"2 106 171\n",
"3 216 493"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['pclass'], data2['sex'])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>sibsp</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>8</th>\n",
" </tr>\n",
" <tr>\n",
" <th>pclass</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>198</td>\n",
" <td>113</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>182</td>\n",
" <td>82</td>\n",
" <td>12</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>511</td>\n",
" <td>124</td>\n",
" <td>22</td>\n",
" <td>15</td>\n",
" <td>22</td>\n",
" <td>6</td>\n",
" <td>9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sibsp 0 1 2 3 4 5 8\n",
"pclass \n",
"1 198 113 8 4 0 0 0\n",
"2 182 82 12 1 0 0 0\n",
"3 511 124 22 15 22 6 9"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['pclass'], data2['sibsp'])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>parch</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>9</th>\n",
" </tr>\n",
" <tr>\n",
" <th>pclass</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>242</td>\n",
" <td>50</td>\n",
" <td>27</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>206</td>\n",
" <td>43</td>\n",
" <td>25</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>554</td>\n",
" <td>77</td>\n",
" <td>61</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"parch 0 1 2 3 4 5 6 9\n",
"pclass \n",
"1 242 50 27 2 2 0 0 0\n",
"2 206 43 25 3 0 0 0 0\n",
"3 554 77 61 3 4 6 2 2"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['pclass'], data2['parch'])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>sibsp</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>8</th>\n",
" </tr>\n",
" <tr>\n",
" <th>sex</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>female</th>\n",
" <td>262</td>\n",
" <td>160</td>\n",
" <td>19</td>\n",
" <td>12</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>male</th>\n",
" <td>629</td>\n",
" <td>159</td>\n",
" <td>23</td>\n",
" <td>8</td>\n",
" <td>15</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sibsp 0 1 2 3 4 5 8\n",
"sex \n",
"female 262 160 19 12 7 2 4\n",
"male 629 159 23 8 15 4 5"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['sex'], data2['sibsp'])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>parch</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>9</th>\n",
" </tr>\n",
" <tr>\n",
" <th>sex</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>female</th>\n",
" <td>293</td>\n",
" <td>88</td>\n",
" <td>69</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>male</th>\n",
" <td>709</td>\n",
" <td>82</td>\n",
" <td>44</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"parch 0 1 2 3 4 5 6 9\n",
"sex \n",
"female 293 88 69 6 4 4 1 1\n",
"male 709 82 44 2 2 2 1 1"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['sex'], data2['parch'])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>parch</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>9</th>\n",
" </tr>\n",
" <tr>\n",
" <th>sibsp</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>790</td>\n",
" <td>52</td>\n",
" <td>43</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>183</td>\n",
" <td>90</td>\n",
" <td>29</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>26</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>9</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>12</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"parch 0 1 2 3 4 5 6 9\n",
"sibsp \n",
"0 790 52 43 2 2 2 0 0\n",
"1 183 90 29 5 4 4 2 2\n",
"2 26 9 6 1 0 0 0 0\n",
"3 3 9 8 0 0 0 0 0\n",
"4 0 10 12 0 0 0 0 0\n",
"5 0 0 6 0 0 0 0 0\n",
"8 0 0 9 0 0 0 0 0"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(data2['sibsp'], data2['parch'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"数値データとカテゴリデータの関係は箱ひげ図(boxplot)で可視化"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10acbc510>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(nrows=5, ncols=2, figsize=(15, 30))\n",
"data2.boxplot(column='age', by='embarked', ax=axes[0,0])\n",
"data2.boxplot(column='age', by='pclass', ax=axes[0,1])\n",
"data2.boxplot(column='age', by='sex', ax=axes[1,0])\n",
"data2.boxplot(column='age', by='sibsp', ax=axes[1,1])\n",
"data2.boxplot(column='age', by='parch', ax=axes[2,0])\n",
"data2.boxplot(column='fare', by='embarked', ax=axes[2,1])\n",
"data2.boxplot(column='fare', by='pclass', ax=axes[3,0])\n",
"data2.boxplot(column='fare', by='sex', ax=axes[3,1])\n",
"data2.boxplot(column='fare', by='sibsp', ax=axes[4,0])\n",
"data2.boxplot(column='fare', by='parch', ax=axes[4,1])\n",
"plt.suptitle('')\n",
"plt.subplots_adjust(wspace=.4, hspace=.2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"数値データ同士の関係は散布図(Scatter plot)で可視化"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n/wNu7GTRv6iERwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a055110>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(data2['age'], data2['fare'], 'b+')\n",
"plt.xlabel('age')\n",
"plt.ylabel('fare')\n",
"plt.suptitle('')\n",
"plt.subplots_adjust(wspace=.4, hspace=.2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## 欠損値の処理"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"今回は,数値データは中央値で,カテゴリデータは最頻値で補間します. \n",
"ただし,運賃(fare)は社会経済的地位(pclass)と相関があるため※ \n",
"等級ごとの中央値で補間します. \n",
"※pclassとfareの可視化結果(boxplot)参照"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"age_median = data2['age'].dropna().median()\n",
"embarked_mode = data2['embarked'].dropna().mode().values\n",
"fare_median_c1 = data2['fare'][data2['pclass']=='1'].dropna().median()\n",
"fare_median_c2 = data2['fare'][data2['pclass']=='2'].dropna().median()\n",
"fare_median_c3 = data2['fare'][data2['pclass']=='3'].dropna().median()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data2.loc[data2['age'].isnull(), 'age'] = age_median\n",
"data2.loc[data2['embarked'].isnull(), 'embarked'] = embarked_mode\n",
"data2.loc[(data2['fare'].isnull()) & (data2['pclass']=='1'), 'fare'] = fare_median_c1\n",
"data2.loc[(data2['fare'].isnull()) & (data2['pclass']=='2'), 'fare'] = fare_median_c2\n",
"data2.loc[(data2['fare'].isnull()) & (data2['pclass']=='3'), 'fare'] = fare_median_c3"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"pclass 0\n",
"survived 0\n",
"sex 0\n",
"age 0\n",
"sibsp 0\n",
"parch 0\n",
"fare 0\n",
"embarked 0\n",
"dtype: float64"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(len(data2) - data2.count()) / len(data2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## カテゴリ変数の処理"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"DictVectorizerはN種類の変数をN個の数値特徴量に変換しますが \n",
"これは冗長なので,1つ削除します"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.feature_extraction import DictVectorizer as DV"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"vec = DV()\n",
"data2 = pd.DataFrame(vec.fit_transform(data2.T.to_dict().values()).toarray(),\n",
" columns=vec.get_feature_names(), index=data2.index)\n",
"del data2['embarked=S']\n",
"del data2['pclass=3']\n",
"del data2['sex=male']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"scikit-learnの入力に合わせ,特徴量と目的変数を分けます"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data2_y = data2.pop('survived')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## データの標準化"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"数値データを平均0,分散1に標準化します."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.preprocessing import StandardScaler"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"standardizer = StandardScaler().fit(data2.loc[:, ['age', 'sibsp', 'parch', 'fare']])\n",
"data2.loc[:, ['age', 'sibsp', 'parch', 'fare']] =\\\n",
" standardizer.transform(data2.loc[:, ['age', 'sibsp', 'parch', 'fare']])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## モデリング"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"決定木(Decision tree)を使って生死を予測してみます. \n",
"予測結果は精度(accuracy)で評価します."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$精度 = \\frac{正解数}{データ数}$$"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn.tree import DecisionTreeClassifier"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"clf0 = DecisionTreeClassifier(random_state=1).fit(data2, data2_y)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import accuracy_score"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.96562261268143623"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"accuracy_score(data2_y, clf0.predict(data2))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## グリッドサーチと交差検証"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.grid_search import GridSearchCV\n",
"from sklearn.cross_validation import KFold"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cv = KFold(data2.shape[0], n_folds=10, shuffle=True, random_state=1)\n",
"clf1 = GridSearchCV(DecisionTreeClassifier(random_state=1),\n",
" [{'max_depth': [3, 5, 7]}],\n",
" cv=cv, scoring='accuracy', n_jobs=-1).fit(data2, data2_y)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'max_depth': 5}"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf1.best_params_"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.799083269671505"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf1.best_score_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 学習曲線"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.learning_curve import learning_curve\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cv = KFold(data2.shape[0], n_folds=10, shuffle=True, random_state=1)\n",
"train_sizes, train_scores, test_scores = learning_curve(\n",
" clf1.best_estimator_, data2, data2_y, cv=cv, scoring='accuracy',\n",
" train_sizes=[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0], n_jobs=-1)\n",
"train_scores_mean = np.mean(train_scores, axis=1)\n",
"test_scores_mean = np.mean(test_scores, axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x10a0a4f90>"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nlizRn/70p979JbXUoghloogBcoCOQANgBdC9QpmWnBxQ7wtsCbCt2v1Uw4zvTsuNIiG+QN+xB4YO\n9buTfzAjITynAAAW8ElEQVQzs8rbro1tlPHX9eTryJEjetttt2mHDh20SZMm2qRJE42KivJ27VTc\n+V900UXlXi8impOTU62yn3/+ubZo0aLcusmTJwdMFAUFBXrPPfdo586dtXPnzvrkk0+qqurbb7+t\nffr08fua7t276wcffOCdP3bsmIqI5uXleRNFcXFxufIJCQmalJTknRo1aqSff/653+1HukDf39pK\nFCHrelLVYmA8sBD4DnhbVdeIyO0icrun2I+BlSKyAngGGBWq+oSzcD8iqKYiOb6hEyfyQHp6uWVT\n0tO5fMKEOt1GIBW7d5566inWr1/PsmXLOHjwIB9//LHvD66QSEtLY9++fRw7dsy7bNu2bQHLJyQk\n8Pvf/56cnBzef/99ZsyYwUcffUT79u3Ztm0bJSUllV7TunVrtmzZUm77MTExtGzZ0rvM97No3749\nL730Evv37/dOR44coX///jWM9swU0kMDVHU+ML/Cstk+z58Hng9lHYypibIjkx569lmiCwspiYtj\n2IQJ1TrqqTa2UVWHDx8mPj6epk2bsm/fPh555JFaf4+KOnToQJ8+fZg2bRqPPfYYX331FfPmzeOq\nq/wf9Z6VlUXXrl1JT0+nSZMmREdHEx0dTd++fUlLS+P+++/nkUceISoqiuXLlzNw4EBGjx7N9OnT\nueKKK0hNTWXKlCmMGjWKqCj/v3V/+ctf8tBDD9GrVy969OjBwYMHWbRoET/5yU9C+VG4lh1DFgYi\n4TyDmoj0+AaNGFHjnXptbMOfii2KX//614wZM4bU1FTatGnD3Xffzfvvvx/wtRVfH2gA+lRl33jj\nDcaNG0dKSgp9+/blhhtu8NsyANiwYQPjx48nPz+f5ORk7rjjDgYPHgzAP//5TyZOnEj79u0REW68\n8UYGDhzIrbfeSl5eHoMGDaKwsJBhw4bxrM/BABXrds0113D48GFGjRrF1q1badq0KUOHDrVEcZrs\nEh5hINJ3pKcSCfGF8wl3keiGG26gR48eTJ06tb6rckYI9Ql3liiMwRJFTX311VckJyfTqVMnFi5c\nyI9+9CO++OILevXqVd9VOyNE8pnZxpgzxPfff8+PfvQj9u7dS7t27XjxxRctSbiItSjCQCR0zdRE\nJMRnLQoTySL66rHGGGMin7UojMFaFCayWYvCGGNMvbJEEQbcfk9pt8dnjNtZojDGGBOUJYowEO5H\nBNWU2+Mz1bNlyxaioqIoLS0Fgt9ytWLZ6nriiSf4xS9+cdp1NQ5LFMZEiLlz59KnTx8SExNp3bo1\nw4cP57PPPqvvatXYBx98wE033VTj7WRnZ9OuXbtyyyZPnszLL79c422f6SxRhAG39+FHenxZi7PI\nvCWTjHEZZN6SSdbirDrfxowZM7jrrrt48MEH2b17N9u3b+eOO+4IeB2nQNdZMpGhuLi4vqtQXm1c\nqzzUE3Y/iogWCfEF+o7NWzRP069OV6bhndKvTtd5i6p+G9OabuPAgQOakJCg77zzTsAyU6dO1euu\nu07Hjh2rTZo00Tlz5mhubq5eeeWV2qxZM+3SpYu+/PLL3vJffvmlnn/++dqkSRNt2bKl3n333arq\n3Ofhxhtv1JSUFE1KStILLrjAeyMjX2+99Vale0fMmDFDr7rqKifmefO0d+/e2qRJE23Xrp1OmzbN\nW67s/hFlNyjyveVqcXGx3nPPPZqamqqdO3fW5557rlzZV155Rbt3766JiYnauXNnnT17tqqqHj58\nWOPi4jQqKkoTEhI0MTFR8/LydOrUqeXui/Hee+9pjx49NCkpSTMyMnTNmjXedR06dNDf//73+oMf\n/ECbNm2qN9xwgxYWFvr9vDds2KCDBg3Spk2bampqqt5www3edatWrdIhQ4Zos2bNtGXLlvrb3/5W\nVVULCwv1zjvv1NatW2vr1q3117/+tfemU2X3FvG9rW1paak+8cQTmp6erikpKXr99dfrvn37/NYn\n0PeXcL9xUW1Obk8Upv4F+o4NHTe03A6+bMq8peo3HarpNubPn68xMTF+7/xWZurUqRobG6vvvfee\nqjo7/IsvvljvuOMOLSoq0hUrVmjz5s31o48+UlXV/v376+uvv66qzs2OvvzyS1VVffHFF/XKK6/U\nY8eOaWlpqS5fvlwPHTpU6f2OHj2qiYmJumHDBu+yPn366Ntvv62qqtnZ2bpq1SpVVf3222+1ZcuW\n+o9//ENVKycK3xskvfDCC9qtWzfdsWOH7tu3TzMyMjQqKspbNisrSzdt2qSqqh9//LE2atRIly9f\n7n3Ptm3blqvntGnTvIli3bp12rhxY/3Xv/6lxcXF+rvf/U67dOmiJ06cUFXnplD9+vXTnTt36r59\n+7R79+764osv+v28R40a5U0ARUVF+tlnn6mq6qFDh7RVq1Y6Y8YMLSoq0oKCAu9n+9BDD+mAAQM0\nPz9f8/PzdeDAgfrQQw+pqpMoYmJi9P7779fjx4/rsWPH9JlnntEBAwZobm6uHj9+XG+//XYdPXq0\n3/qEOlFY15MxQRRpkd/lCzctRB6RKk2LNi/yu43C0sIq1WHv3r2kpqYGvPdCmYEDB3rvAZGfn8/S\npUuZPn06DRo0oFevXvz85z/nz3/+MwANGjRgw4YN7Nmzh0aNGtG3b1/v8r1797JhwwZEhPPOO4/E\nxMRK7xUfH8/VV1/Nm2++CTiXDl+3bp33/QcPHsw555wDQM+ePRk1ahQff/zxKWP9v//7P+666y7a\ntGlDcnIyU6ZMKXci2fDhw+nUqRMAgwYNYujQoXz66acAfk8481329ttvM3LkSC677DKio6O59957\nOXbsGEuXLvWWmThxIq1atSI5OZkrr7ySFStW+K1ngwYN2LJlC7m5uTRo0ICBAwcCMG/ePFq3bs1d\nd91FgwYNSEhI8H62c+fO5eGHHyY1NZXU1FSmTp1abhA/KiqKRx55hNjYWOLi4pg9ezaPPfYYrVu3\nJjY2lqlTp/LOO++c9sB+TViiCAOR3od/KpEcX0Np6Hd5ZudMdKpWaRraaajfbcRFxVWpDikpKezZ\ns+eUO4i2bdt6n+fl5dGsWTMaN27sXda+fXtyc3MBmDNnDuvXr6d79+707duXrCxnzOSmm24iMzOT\nUaNG0aZNGyZNmkRxcTGffvopiYmJJCYm0rNnTwDGjBnjTRRz587l2muvJS7OienLL7/kkksuoUWL\nFiQlJTF79mz27t17ylh37txZbkC6ffv25dbPnz+f/v37k5KSQnJyMh988EGVtlv2mfhuT0Ro166d\n9zMBaNWqlfd5fHw8hw8f9rut3/3ud6gqffv25dxzz+XVV18FYPv27XTu3Dng+3fo0KFcbHl5ed75\n5s2b06BBA+/8li1buPbaa0lOTiY5OZkePXoQExPDrl27qhRvbbJEYUwQE8dMJP3r8rcxTV+ezoTR\nVb+NaU23MWDAABo2bMi7774bsEzFGwu1bt2affv2ldvRbdu2zZtMunTpwty5c8nPz2fSpEn8+Mc/\n5tixY8TExPDwww+zevVqli5dyrx58/jzn//MxRdfTEFBAQUFBaxcuRKAIUOGkJ+fzzfffMNbb73F\nmDFjvO81ZswYrrnmGnbs2MGBAwf45S9/WaVfwmlpaeVuo+r7vKioiOuuu4777ruP3bt3s3//foYP\nH+5tNQS66VKZNm3asHXrVu+8qrJ9+3batGkT8DMNpGXLlrz00kvk5uYye/ZsfvWrX5GTk0P79u3Z\ntGmT39f4u51r69atA75f+/btWbBgQbnbuR49epS0tLSgcYaCJYow4PbzDCI5vhGXj2DmHTPJ3JrJ\n4M2DydyayczxMxlxedXvVlfTbTRt2pRHH32UO+64g/fee4+jR49y4sQJ5s+fz6RJk4DK3S7t2rVj\n4MCBTJ48maKiIr799lteeeUVxo4dC8Drr79Ofn6+d/siQlRUFEuWLGHlypWUlJSQmJhIbGws0dHR\nfusVGxvLT37yE+69917279/P5Zdf7l13+PBhkpOTadCgAcuWLWPu3Lmn3JEDXH/99cyaNYvc3Fz2\n79/Pk08+6V13/Phxjh8/7u2Gmz9/PosWnezWa9myJXv37uXQoUN+t/2Tn/yErKwsPvroI06cOMFT\nTz1FXFyct9uoIn9dWWX++te/smPHDgCSkpIQEaKjoxk5ciQ7d+5k5syZFBUVUVBQwLJlywAYPXo0\njz32GHv27GHPnj08+uijQQ8L/uUvf8mUKVO8yTI/Pz/gUW4hVxsDHaGesMFsE2KR8B174403tE+f\nPtq4cWNt1aqVjhw5Uj///HNVdQZtb7rppnLld+zYoSNHjtRmzZppenq69wghVdWxY8dqixYtNCEh\nQc8991zvIPibb76pXbt21caNG2vLli31zjvvDDqI/umnn6qI6Pjx48stf+edd7RDhw6amJioI0eO\n1AkTJnjrt3nz5nID1L6D2cXFxXrXXXdpSkqKdu7cWZ9//vlyZZ9//nlt2bKlJiUl6U033aSjR4/2\nDgirqt56662akpKiycnJmpeXV+lzeffdd7VHjx7atGlTzcjI0O+++867rmPHjvrhhx965/19pmXu\nu+8+bdOmjSYkJGh6enq5I8pWrVqll112mSYnJ2urVq10+vTpquoc9TRx4kRNS0vTtLQ0vfPOO8sd\n9dSuXbty71FaWqozZszQrl27amJioqanp+sDDzzgtz6Bvr/U0mC2XT02DETC/RpqIhLis6vHmkhm\nV481xhhTr6xFYQzWojCRzVoUxhhj6pUlijAQyecZVIXb4zPG7SxRGGOMCcrGKIzBxihMZAv1GEVM\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1075c5910>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"plt.xlabel(\"Training examples\")\n",
"plt.ylabel(\"Score\")\n",
"plt.grid()\n",
"plt.plot(train_sizes, train_scores_mean, 'o-', color=\"r\", label=\"Training score\")\n",
"plt.plot(train_sizes, test_scores_mean, 'o-', color=\"g\", label=\"Cross-validation score\")\n",
"plt.ylim((0.4, 1.))\n",
"plt.legend(loc=\"lower right\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"学習曲線をみると, \n",
"\n",
"+ 訓練スコアが低い \n",
"+ 訓練スコアと交差検証スコアの差が小さい \n",
"\n",
"ことから,**ハイバイアス**な状態であると分かります.\n",
"\n",
"そこで,性能改善のために, \n",
"\n",
"+ 柔軟性の高いモデルに変更する \n",
"+ 特徴量を追加する \n",
"\n",
"を検討してみます."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## モデルの変更"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"モデルをより柔軟性の高い,アンサンブル学習(ブースティング)を利用したGradientBoostingClassifierに変更してみます."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.ensemble import GradientBoostingClassifier"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cv = KFold(data2.shape[0], n_folds=10, shuffle=True, random_state=1)\n",
"clf2 = GridSearchCV(GradientBoostingClassifier(n_estimators=100, random_state=1),\n",
" [{'max_leaf_nodes': [3, 5, 7, 9],\n",
" 'min_samples_leaf': [9, 13, 17, 21],\n",
" 'learning_rate': [0.3, 0.4, 0.5]}],\n",
" cv=cv, scoring='accuracy', n_jobs=-1).fit(data2, data2_y)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'learning_rate': 0.4, 'max_leaf_nodes': 5, 'min_samples_leaf': 17}"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf2.best_params_"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.82352941176470584"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf2.best_score_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"| グリッドサーチ+交差検証 | モデル変更\n",
"| -: |-------------: \n",
"|0.799| 0.824"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 特徴量の追加,変更"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"欠損率が高く利用を見送っていた**cabin**の情報を利用してみます. \n",
"cabinは文字+数値という形なので,文字と数値に分離して利用します."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data3 = data2.copy(deep=True)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import re\n",
"data3['cabin'] = data['cabin']\n",
"data3.loc[data3['cabin'].isnull(), 'cabin'] = 'unknown'\n",
"\n",
"cabin_room = [re.sub('^[^\\d]+(\\d+).*$', '\\\\1', c) for c in data3['cabin']]\n",
"data3['cabin_room'] = [int(c) if c.isdigit() else 0 for c in cabin_room]\n",
"\n",
"data3['cabin'] = [re.sub('^([A-Z]).*$', '\\\\1', c) for c in data3['cabin']]\n",
"\n",
"vec = DV()\n",
"data3 = pd.DataFrame(vec.fit_transform(data3.T.to_dict().values()).toarray(),\n",
" columns=vec.get_feature_names(), index=data3.index)\n",
"del data3['cabin=unknown']"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cv = KFold(data3.shape[0], n_folds=10, shuffle=True, random_state=1)\n",
"clf3 = GridSearchCV(GradientBoostingClassifier(n_estimators=100, random_state=1),\n",
" [{'max_leaf_nodes': [3, 5, 7, 9],\n",
" 'min_samples_leaf': [5, 9, 13, 17],\n",
" 'learning_rate': [0.1, 0.2, 0.3, 0.4]}],\n",
" cv=cv, scoring='accuracy', n_jobs=-1).fit(data3, data2_y)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'learning_rate': 0.3, 'max_leaf_nodes': 5, 'min_samples_leaf': 9}"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf3.best_params_"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.82887700534759357"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf3.best_score_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"| グリッドサーチ+交差検証 | モデル変更 | cabin利用 \n",
"| -: |-------------: | -: \n",
"|0.799| 0.824 | 0.829 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"単純に中央値で補間していた年齢の欠損値を,その他の特徴量を使って予測してみます."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'max_depth': 3}"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data4 = data3.copy(deep=True)\n",
"title = [re.split('\\.|,', n)[1].strip() for n in data['name']]\n",
"data4['immature'] = [1 if t in ['Master', 'Mlle', 'Miss'] else 0 for t in title]\n",
"data4 = data4[['sibsp', 'parch', 'pclass=1', 'pclass=2', 'fare', 'immature']]\n",
"cv = KFold(data4[data['age'].notnull()].shape[0], n_folds=10, shuffle=True,\n",
" random_state=1)\n",
"from sklearn.tree import DecisionTreeRegressor\n",
"clf_age = GridSearchCV(DecisionTreeRegressor(random_state=1),\n",
" [{'max_depth': [2, 3, 4]}],\n",
" cv=cv,\n",
" n_jobs=-1).fit(data4[data['age'].notnull()],\n",
" data['age'][data['age'].notnull()])\n",
"clf_age.best_params_"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data3.loc[data['age'].isnull(), 'age'] = clf_age.predict(data4[data['age'].isnull()])"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cv = KFold(data3.shape[0], n_folds=10, shuffle=True, random_state=1)\n",
"clf4 = GridSearchCV(GradientBoostingClassifier(n_estimators=100, random_state=1),\n",
" [{'max_leaf_nodes': [5, 7, 9, 11],\n",
" 'min_samples_leaf': [13, 17, 21, 25],\n",
" 'learning_rate': [0.1, 0.2, 0.3, 0.4]}],\n",
" cv=cv, scoring='accuracy', n_jobs=-1).fit(data3, data2_y)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'learning_rate': 0.2, 'max_leaf_nodes': 7, 'min_samples_leaf': 17}"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf4.best_params_"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.8304048892284186"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf4.best_score_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"| グリッドサーチ+交差検証 | モデル変更 | cabin利用 | age予測 \n",
"| -: |-------------: | -: | -: \n",
"|0.799| 0.824 | 0.829 | 0.830 "
]
}
],
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment