Skip to content

Instantly share code, notes, and snippets.

@vals
Created November 24, 2012 10:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vals/4139119 to your computer and use it in GitHub Desktop.
Save vals/4139119 to your computer and use it in GitHub Desktop.
Confounding factors and PLS
{
"metadata": {
"name": "Confounding factors"
},
"nbformat": 3,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"source": [
"Looking at confounding factors"
]
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"# import sys",
"# sys.setdefaultencoding('latin-1')",
"import pandas as pd"
],
"language": "python",
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"f = pd.ExcelFile(\"Documents/StudyDesignExercise_ClinicalData_Students.xls\")"
],
"language": "python",
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"f.sheet_names"
],
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 4,
"text": [
"[u'clinical data', u'explanations']"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"df = f.parse(\"clinical data\")"
],
"language": "python",
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"figsize(10,10)",
"df.corr()[\"stad\"].plot(kind='barh');"
],
"language": "python",
"outputs": [
{
"ename": "UnicodeEncodeError",
"evalue": "'ascii' codec can't encode character u'\\xe5' in position 0: ordinal not in range(128)",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mUnicodeEncodeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/Users/valentinesvensson/<ipython-input-6-5a68580749aa>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcorr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"stad\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'barh'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/Users/valentinesvensson/.virtualenvs/devel/lib/python2.7/site-packages/pandas/tools/plotting.pyc\u001b[0m in \u001b[0;36mplot_series\u001b[0;34m(series, label, kind, use_index, rot, xticks, yticks, xlim, ylim, ax, style, grid, logy, **kwds)\u001b[0m\n\u001b[1;32m 596\u001b[0m legend=False, grid=grid, label=label, **kwds)\n\u001b[1;32m 597\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 598\u001b[0;31m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgenerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 599\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 600\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/valentinesvensson/.virtualenvs/devel/lib/python2.7/site-packages/pandas/tools/plotting.pyc\u001b[0m in \u001b[0;36mgenerate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 197\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setup_subplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_plot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 199\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_post_plot_logic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 200\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_adorn_subplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 201\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/valentinesvensson/.virtualenvs/devel/lib/python2.7/site-packages/pandas/tools/plotting.pyc\u001b[0m in \u001b[0;36m_post_plot_logic\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 439\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_post_plot_logic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 440\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0max\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 441\u001b[0;31m \u001b[0mstr_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_stringify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 442\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'bar'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 443\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_xlim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max_pos\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m0.25\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max_pos\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/valentinesvensson/.virtualenvs/devel/lib/python2.7/site-packages/pandas/tools/plotting.pyc\u001b[0m in \u001b[0;36m_stringify\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 671\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m'|'\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 672\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 673\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 674\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 675\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mUnicodeEncodeError\u001b[0m: 'ascii' codec can't encode character u'\\xe5' in position 0: ordinal not in range(128)"
]
},
{
"output_type": "display_data",
"png": "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\nEgBAgrAEAJAgLAEAJAhLAAAJwhIAQIKwBACQICwBACRodwINyPNyVKtZ0WV0pDwvF10C0CG0OwEA\nOp52JwAAdTINBw0olbqiWh0puoxpJc/LMTo6XHQZAONmGg4akGVZRBjnE+PeAEw9puEAAOokLAEA\nJAhLAAAJwhIAQIKwBACQICwBACQISwAACcISAEBCMizt27cvli9fHgsXLozLL788HnnkkYiIGB4e\njhUrVsS8efNi5cqVcfDgwUkpFgBgsiV38B4aGoqhoaFYsmRJHDp0KK688srYtm1bPPHEE3H++efH\n/fffH5s3b46RkZHYtGnTyRe2gzcdQLuTidPuBJiKUrllQu1O1q5dG3fddVfcddddsWPHjuju7o6h\noaHo6+uL1157bdwvCgAwlTQlLO3duzc++9nPxp///Of4xCc+ESMjJ36artVq0dXVNfb+eF4UAGAq\nSeWWGeO5wKFDh+KLX/xi/PjHP448z0+5+Ilmoqfq7+8fe7uvry/6+vrGVzFME50wDWfaDGhHlUol\nKpXKuM4965OlDz/8MG666aZYtWpV3H333RERMX/+/KhUKjF79uwYHByM5cuXm4ajI534QaHdx7nv\nZaD9pXJL8rfharVabNiwIRYsWDAWlCIi1qxZEwMDAxERMTAwEGvXrm1iuQAAU0fyydKLL74Y1157\nbVxxxRVjU20//OEP4+qrr45169bFm2++GT09PbF169aYNWvWyRf2ZIkO4MkSQHto2m/DNetFoV0I\nSwDtoe5pOACATicsAQAkCEsAAAnCEgBAgrAEAJAgLAEAJIyr3Qlwenlejmr19O1+2kWel4suAaBQ\n9lkCADqefZYAAOpkGg4aUCp1RbU6UnQZLZPn5RgdHS66DIBCmYaDBrR/uxPfx0BnMA0HAFAnYQkA\nIEFYAgBIEJYAABKEJQCABGEJACBBWAIASBCWAAAS7OANDWj3Rrqa6ALYwRsAwA7eAAD1EpYAABKE\nJdpWqdQVWZa19CiVuor+YwLQYtYs0bayLIuIVo9B4xygHVizBABQJ2EJACBBWAIASBCWAAAShCUA\ngARhCQAgQVgCAEgQlgAAEoQl2laelyMia+lx4jUAaGd28AYAOp4dvAEA6iQsAQAkzCi6ABpTKnVF\ntTpSdBkdK8/LMTo6XHQZALSQNUvTXJZlEeHvuTjGOUA7sGYJAKBOwhIAQIKwBACQICwBACQISwAA\n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\nJQCAhP8H1mOWbc0VhhkAAAAASUVORK5CYII=\n"
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df.columns"
],
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 7,
"text": [
"Index([u'ordnr', u'\\xe5lder', u'dis1', u'dis2', u'dis3', u'dis4', u'sym1', u'sym1dur', u'dis5', u'sym5dur', u'didat', u'opdat', u'tutb', u'fmet', u'stad', u'rectyp', u'recdat', u'beh 2', u'd-beh2', u'Hist', u'diff', u't-l\\xe4ngd', u't-bredd', u't-tjock', u'k\\xe4rl-inv', u'status', u'dd \\xe5r', u'dd m\\xe5n ', u'dd dag', u'r\\xf6ker', u'tumType1', u'tumType2', u'tumType3'])"
]
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df"
],
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 8,
"text": [
"<class 'pandas.core.frame.DataFrame'>",
"Int64Index: 36 entries, 0 to 35",
"Data columns:",
"ordnr 36 non-null values",
"?lder 36 non-null values",
"dis1 36 non-null values",
"dis2 36 non-null values",
"dis3 36 non-null values",
"dis4 36 non-null values",
"sym1 36 non-null values",
"sym1dur 36 non-null values",
"dis5 36 non-null values",
"sym5dur 36 non-null values",
"didat 36 non-null values",
"opdat 36 non-null values",
"tutb 36 non-null values",
"fmet 36 non-null values",
"stad 36 non-null values",
"rectyp 36 non-null values",
"recdat 13 non-null values",
"beh 2 13 non-null values",
"d-beh2 9 non-null values",
"Hist 35 non-null values",
"diff 34 non-null values",
"t-l?ngd 34 non-null values",
"t-bredd 34 non-null values",
"t-tjock 35 non-null values",
"k?rl-inv 35 non-null values",
"status 36 non-null values",
"dd ?r 13 non-null values",
"dd m?n 13 non-null values",
"dd dag 13 non-null values",
"r?ker 34 non-null values",
"tumType1 33 non-null values",
"tumType2 33 non-null values",
"tumType3 23 non-null values",
"dtypes: float64(32), object(1)"
]
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ls Documents/*.xls"
],
"language": "python",
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Documents/2012-11-12_Omics dataset_449 ID.xls Documents/applicationFormValentineSvensson.xls",
"Documents/StudyDesignExercise_ClinicalData_Students.xls"
]
}
],
"prompt_number": 10
},
{
"cell_type": "heading",
"level": 2,
"source": [
"PLS"
]
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"from sklearn.pls import PLSRegression",
"from sklearn import cross_validation"
],
"language": "python",
"outputs": [],
"prompt_number": 244
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"f = pd.ExcelFile(\"Documents/2012-11-12_Omics dataset_449 ID.xls\")"
],
"language": "python",
"outputs": [],
"prompt_number": 223
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"df = f.parse(f.sheet_names[0])"
],
"language": "python",
"outputs": [],
"prompt_number": 224
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"hpv = [float('nonHPV' not in col_name) for col_name in df.columns]"
],
"language": "python",
"outputs": [],
"prompt_number": 225
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"relapse = [float('nonRelapse' not in col_name) for col_name in df.columns]"
],
"language": "python",
"outputs": [],
"prompt_number": 226
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df2 = pd.DataFrame([hpv, relapse], index=[\"HPV\", \"Relapse\"], columns=df.columns)"
],
"language": "python",
"outputs": [],
"prompt_number": 227
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df = df.append(df2)"
],
"language": "python",
"outputs": [],
"prompt_number": 228
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"target = df.ix[-2:]"
],
"language": "python",
"outputs": [],
"prompt_number": 230
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"data = df.ix[:-2]"
],
"language": "python",
"outputs": [],
"prompt_number": 231
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"X = data.T",
"Y = target.T"
],
"language": "python",
"outputs": [],
"prompt_number": 232
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"X_train, X_test, Y_train, Y_test = cross_validation.train_test_split(X, Y)"
],
"language": "python",
"outputs": [],
"prompt_number": 233
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"pls2 = PLSRegression(n_components=2)"
],
"language": "python",
"outputs": [],
"prompt_number": 245
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pls2.fit(X_train, Y_train)"
],
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 246,
"text": [
"PLSRegression(copy=True, max_iter=500, n_components=2, scale=True, tol=1e-06)"
]
}
],
"prompt_number": 246
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"X_pls, Y_pls = pls2.transform(X, Y)"
],
"language": "python",
"outputs": [],
"prompt_number": 247
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"Y_pls"
],
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 248,
"text": [
"array([[ 3.87735391, 8.44147826],",
" [ 3.87735391, 8.44147826],",
" [ 17.92377799, -1.47822444],",
" [ 17.92377799, -1.47822444],",
" [ 3.87735391, 8.44147826],",
" [ 3.87735391, 8.44147826],",
" [ 3.87735391, 8.44147826],",
" [-15.11449317, -0.5057161 ],",
" [ -1.06806909, -10.4254188 ],",
" [-15.11449317, -0.5057161 ],",
" [-15.11449317, -0.5057161 ],",
" [-15.11449317, -0.5057161 ],",
" [ -1.06806909, -10.4254188 ],",
" [ -1.06806909, -10.4254188 ]])"
]
}
],
"prompt_number": 248
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"X_pls"
],
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 249,
"text": [
"array([[ 0.11827649, 6.35090689],",
" [ -0.3142797 , 8.40740947],",
" [ 22.45780932, -2.09921132],",
" [ 3.45489257, -4.82599562],",
" [ 29.52045354, -2.25420876],",
" [ 0.56461518, -1.68047929],",
" [ 0.96285378, 9.62900281],",
" [ -0.97531616, 2.63701078],",
" [ -1.90602294, -6.60929509],",
" [ -0.50624108, -3.64971444],",
" [-16.30081856, -2.42334866],",
" [ -7.55465695, -0.99086077],",
" [ 0.05726215, -10.07561849],",
" [ 2.52539882, -6.01635893]])"
]
}
],
"prompt_number": 249
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.scatter(*zip(*X_pls));"
],
"language": "python",
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 250
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.scatter(*zip(*Y_pls));"
],
"language": "python",
"outputs": [
{
"output_type": "display_data",
"png": "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\n3LjR7TgX1dTUJI/HI0nyeDxqampyOVH7kvW5WVtbqwMHDmj8+PExrWfMV8a2pyPn3q9cuVJ9+/bV\nAw880O5xEn2efUdyXui6665TXV3dJa8RcDtnW7rzuoX2Mq9cuVILFizQ008/LUlatmyZFi9erE2b\nNnVbtovpSdd27N27V6mpqTpx4oRCoZD8fr8mTpzodqxLchwnadc5WZ+bP/zwg2bOnKm1a9e2eT1S\nR9Yz7kV/qXPvX3/9dW3fvl0ffPBBdCwtLU11dXXR+8eOHVNaWlq8o7WQyGsE4imWnG6sZ3Mdzfzo\no4926h+rRLtw3erq6lr8zyiZpKamSpIGDx6sGTNmqLKyMmmL3uPxqLGxUUOHDlVDQ4OGDBnidqQ2\nNc+VLM/Nn3/+WTNnztScOXM0ffp0SbGtZ7du3VRUVOj5559XeXm5+vXrFx0vKirS5s2bFYlEVFNT\no+rqao0bN647o7XL9JBrBJrnTOb1bGhoiN4uKytTIBBwMU1LY8aMUXV1tWpraxWJRLRlyxYVFRW5\nHauVs2fP6vTp05KkM2fOaOfOnUm1jhcqKipSaWmpJKm0tDRaWMkm2Z6bxhjNnz9fOTk5euKJJ6Lj\nMa1ngt4wbpPP5zPDhg1r8/TElStXmszMTJOdnW0qKiq6M1Yrb7/9tvF6vaZfv37G4/GYO+64wxhj\nzFtvvWVyc3NNfn6+GT16tHn33XeTMqcxybWezc2ZM8cEAgEzatQoc/fdd5vGxka3I7Wwfft2k5WV\nZTIzM82qVavcjtOmo0ePmry8PJOXl2dyc3OTKuesWbNMamqqSUlJMV6v17z66qvm5MmTZtKkSUl1\neuWFOTdt2pR0z82PPvrIOI5j8vLyWpzyGct6XvRn3QAAej4+YQoALEfRA4DlKHoAsBxFDwCWo+gB\nwHIUPQBY7v8Bf5K3kvLSwvAAAAAASUVORK5CYII=\n"
}
],
"prompt_number": 251
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"from sklearn.decomposition import PCA"
],
"language": "python",
"outputs": [],
"prompt_number": 179
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"c = PCA(n_components=2)"
],
"language": "python",
"outputs": [],
"prompt_number": 213
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"pca = c.fit(X)"
],
"language": "python",
"outputs": [],
"prompt_number": 214
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"X_pca = pca.transform(X)"
],
"language": "python",
"outputs": [],
"prompt_number": 215
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"figsize(6, 3)",
"plt.scatter(*zip(*X_pca));"
],
"language": "python",
"outputs": [
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAADFCAYAAACmXhJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFnVJREFUeJzt3XlQVFe+B/BvtzSBFo3KQ2DAbRAjO0SQJaCNijES0SCO\nxnKpCM9U3vhGE+NoYpkwmShxlCTEGKdCXGJiJr7JPIVxkALUTlyHoMa4lDs4uABPEQUaWZr7/kiC\nMSpjd9/u2334fqqs6r7S9/xObvrL8dx77lVJkiSBiIgcmlrpAoiIyHIMcyIiATDMiYgEwDAnIhIA\nw5yISAAMcyIiAVgc5llZWQgKCkJISAimT5+O5uZmOeoiIiITWBTmFRUVyM3NxZEjR3D8+HEYjUZ8\n+eWXctVGRESPyMmSD/fs2RMajQYGgwHdunWDwWCAj4+PXLUREdEjsijM+/Tpg4ULF6J///5wdXXF\n008/jTFjxtzzMyqVyqICiYi6KlMW6Fs0zXLhwgW8//77qKiowNWrV9HQ0IAtW7Y8sCBR/7z55puK\n18D+sX9drW9doX+msijMy8rKEBcXB3d3dzg5OSE1NRUHDhywZJdERGQGi8J86NChOHToEJqamiBJ\nEkpKShAYGChXbURE9IgsCvOwsDDMmjULkZGRCA0NBQDMnTtXlsIchU6nU7oEq2L/HJfIfQPE75+p\nVJI5kzOmNKBSmTX/Q0TUlZmanXa9AvT8+fOIiRmDPn18ERc3FuXl5UqXRERkl+x2ZN7U1IRf/zoY\nNTW/RXv7ZKjVW+Ht/QnOn/8eLi4uVqiUiMh+CDMyP3nyJBob3dDe/gqAAWhv/z1u39bgzJkzSpdG\nRGR37DbMe/bsiba2/wNg+HFLA9rarqNHjx5KlkVEZJfsNsz9/f0xYcJYdO8+GsAf0b37aKSmpmDQ\noEFKl0ZEZHfsds4cANrb2/H555/j1KnTCA4OxPTp06FW2+3vHyIi2ZianXYd5kREXZUwJ0CJiOjR\nMcyJiATAMCciEgDDnIhIAAxzIiIBMMyJiATAMCciEgDDnIhIABaHeV1dHdLS0hAQEIDAwEAcOnRI\njrqIiMgETpbuYP78+Rg/fjy++uortLW1obGxUY66iIjIBBYt57916xYiIiJw8eLFhzfA5fxERCYz\nNTstGpmXl5fDw8MDL7zwAo4dO4Zhw4YhJycHWq32np/LzMzseK3T6fjsPiKiX9Dr9dDr9WZ/3qKR\neVlZGWJjY3HgwAFERUVhwYIF6NmzJ9566627DXBkTkRkMpveaMvX1xe+vr6IiooCAKSlpeHIkSOW\n7JKIiMxgUZh7eXmhX79+OHv2LACgpKQEQUFBshRGRESPzuL7mR87dgwZGRloaWmBn58fNm7ciMcf\nf/xuA5xmISIyGR9OQUQkAD6cgoioC2KYExEJgGFORCQAi5fzEymhtbUVW7ZsQWVlJaKjozF27Fil\nSyJSFE+AksMxGo0YMyYF335rQFNTLFxctmLZspewZMmrSpdGJBtezULCKy4uRmrqIjQ0lOGHf1xe\nhkYzBPX1N/HYY48pXR6RLHg1Cwmvrq4OKtUg3J0l9IFK5QSDwaBkWUSKYpiTw4mLi4Mk7QfwNwDV\ncHJ6DU88EYRevXopXRqRYhjm5HB8fHxQVJQHP78/onv3IMTFHUdR0TaoVCqlSyNSDOfMiYjsEOfM\niYi6IIY5EZEAGOZERAJgmBMRCYBhTkQkAIvD3Gg0IiIiAhMmTJCjHiIiMoPFYZ6Tk4PAwEBe40tE\npCCLwvzy5csoKChARkYGryUnIlKQRbfAffnll7Fq1Srcvn2705/LzMzseK3T6aDT6SxplohIOHq9\nHnq93uzPm70CdMeOHdi5cyfWrl0LvV6P7Oxs/P3vf7+/Aa4AJSIymc1WgB44cAD5+fkYNGgQnn/+\neezevRuzZs0yd3dERGQBWe7N8vXXX2P16tUcmRMRyUSxe7PwahYiIuXwrolERHaId00kIuqCGOZE\nRAJgmBMRCYBhTkQkAIY5EZEAGOZERAJgmBMRCYBhTkQkAIY5EZEAGOZERAJgmBMRCYBhTkQkAIY5\nEZEAGOZERAKwKMwrKyuRmJiIoKAgBAcH44MPPpCrLiIiMoFF9zOvqqpCVVUVwsPD0dDQgGHDhmH7\n9u0ICAi42wDvZ05EZDKb3s/cy8sL4eHhAAA3NzcEBATg6tWrluzSbNXV1Zgx4z8RFTUG8+f/HgaD\nQZE6iIiUINuThioqKjBy5EicPHkSbm5udxuwwcjcYDAgMDASV68mo7V1DFxc1iMurgklJfl8nB0R\nOSRTs9NJjkYbGhqQlpaGnJyce4L8J5mZmR2vdToddDqdHM12OHjwIG7e7IXW1lUAgDt3RmH/fk/U\n1NTA09NT1raIiKxBr9dDr9eb/XmLR+atra149tln8cwzz2DBggX3N2CDkfnu3bsxadJi1NeXAlAB\nuANnZy9cvnwOHh4eVm2biMgabDpnLkkS0tPTERgY+MAgt5WnnnoK3t5GODu/COCvcHVNxbhx4xjk\nRNRlWDQy37dvH0aMGIHQ0NCOuemsrCyMGzfubgM2uprl5s2bWLbsbZw+XY74+GF4/fVFcHZ2tnq7\nRETWYGp2ynYC9KEN8NJEIiKT2XSahYiI7APDnIhIAAxzIiIBMMyJiATAMCciEgDDnIhIALIs57eG\n48ePY/PmL6BWqzBnzmw88cQTSpdERGS37PI689LSUiQmJsNgeAkqVSu02k9w8OBuhISEWKlKIiL7\nIsSiobFjU1FcPA7A3B/3sRpTppzE1q0brVAhEZH9EWLRUH29AYB3x3tJ8sLt243KFUREZOfsMsxn\nz54MrXYJgH8C2A+tNhOzZ09WuiwiIrtllydAX3wxAwaDATk5GVCr1ViyZDGmTZuqdFlERHbLLufM\niYi6OiHmzOWyY8cO/OY3LyA9/bc4c+aM0uUQEVmNMCNzSZKwadNm5OZ+ie7dXREbG4Ls7I0wGJZC\npaqGm9uHOHLkAAYPHmz1WoiILGXzkXlhYSGGDh0Kf39/rFy50tLdme3Pf87FvHkrcPDgiygpScbb\nb78Lg2EpgBchSW+goeEF5OZuUKw+IiJrsugEqNFoxLx581BSUgIfHx9ERUUhJSUFAQEBctX3yN57\nLxcGw8cARgIAJKkagB7Aiz++d0Nz8y2b10VEZAsWjcxLS0sxePBgDBw4EBqNBtOmTUNeXp5ctZlE\nrVYBaPvZllZ06/Y1gF0AtkCrXYMZM6YpUhsRkbVZFOZXrlxBv379Ot77+vriypUrFhdljtdf/29o\ntekAPgPwPrp3/xCvvDILoaF/QGzsZ/jHP/4HkZGRitT2k+bmZpSVleHEiRNob29XtBYiEotF0yw/\nPcT538nMzOx4rdPpoNPpLGn2gWbNmgmtVov167eie3dXLF1ahIiICPzpT7I3ZZarV6/iqaeScOOG\nGu3t9YiJCUVBwVd86DQRAQD0ej30er3Zn7foapZDhw4hMzMThYWFAICsrCyo1WosXrz4bgO8zhwA\nkJz8GxQVDUFb29sAWuHqmoK33krCq6++onRpRGSHbHo1S2RkJM6dO4eKigq0tLRg69atSElJsWSX\nwjp16gza2lJ/fKdBU9MEHDt2WtGaiEgcFoW5k5MTPvzwQzz99NMIDAzE1KlTrXYly6VLlzB9ejpG\njJiAlSuzYTQardKOtYSGBkGj+QsACcAdaLXb8OSTQUqXRUSCcIhFQ9evX0dAwJOorX0B7e0R0GpX\nY/bsKHz00XsyVflwTU1N2Lt3L4xGIxISEuDm5mbWfqqrq5GQMA7XrjXAaGzEqFHx2L79Czg52eXt\ncYhIYULcz/yXNm3ahHnz/oHGxr/+uOU6nJz6obm5EWq19e5IcPPmTQwfnojqaleoVM7o0eMaSkv1\n+NWvfmXW/lpbW3HmzBm4uLjAz8/vkU8gE1HXI+S9WX7o0M+DzzYh+MYby/Gvf8Wgvv4Abt/+GtXV\nU7Bgwetm70+j0SA4OBiDBw9mkBORrBwizJ999lm4uBxEt25/AJAHrXYS0tPnWnVUDgBnzlSgpSUR\nP/3yaGvT4cKFf1m1TSIiczhEmHt4eODw4X1IS7uE+PiPsWzZRKxd+67V2x05Mgqurp8AMABogYvL\nx4iPV3bhERHRgzjEnLlS2tra8Pzzc5CXtw0qlRojRyYiL+8vcHV1Vbo0IhKckCdAlVZXVwej0Qh3\nd3elSyGiLoJhTkQkACGvZiEios4xzImIBCB8mDvasn8iInMIG+YlJSXw8OgPjcYZAQFROH/+vNIl\nERFZjZAnQCsrKxEQ8CQaG7cCGAGVag3698/FxYsnrL7QiIhIDjwBCqCsrAzdusUCGAXACZL0Mqqr\na1BTU6N0aUREViFkmPft2xdG42kATT9uKUd7+x306tVLybKIiKxGyDCPi4tDcnIc3Nxi4Oo6F1pt\nAt59dzVcXFyULo2IyCrMnjNftGgRduzYAWdnZ/j5+WHjxo14/PHH729AoUVDkiShoKAAly5dQmRk\nJIYPH27zGoiIzGWzFaDFxcUYPXo01Go1lixZAgB45513LC6IiIhseAI0KSmp48qQ6OhoXL582dxd\nERGRhWSZM9+wYQPGjx8vx66IiMgMnT6AMikpCVVVVfdtX7FiBSZMmAAAWL58OZydnTF9+vSH7icz\nM7PjtU6ng06nM69aIiJB6fV66PV6sz9v0aKhTZs2ITc3F7t27XrolSKcMycic7W0tECj0XTJxyza\nbM68sLAQq1atQl5eHi/5IyJZVVdXY/jwRLi6dodW2wvr129UuiS7Z/bI3N/fHy0tLejTpw8AIDY2\nFh999NH9DXBkTkQmio8fh3/+MxRtbVkAzkKrHYPdu/8X0dHRSpdmM8I/nKKpqQmbN29GTU0NdDod\nEhISZNs3EdkHZ2ctWlurAfT48f18rFjRHwsXLlS2MBsyNTs7PQFqb5qbmxETMxrnz/fGnTthcHF5\nHjk5byEjY47SpRGRjHr39kJNTRmARABGaDRH4eXFhX+dcaiR+RdffIG5cz9BY+MuACoAJ+HmNhL1\n9ddl2T8R2YedO3ciLW0WVKrxUKlOIzy8N/bs2QEnJ4caf1pE6JF5XV0d2tv98EOQA4Afmppuo729\nnbe2JRLIM888g6NH92Pfvn1wd09FcnJylwpyczjUyPz06dMYNiwBBsPnAELh7Pwm4uOrsGtXviz7\nJyKyF0Lfz3zo0KHYtm0L+vd/BW5uYUhKuoW//W2z0mURESnOoUbmRERdhdAjcyIiejCGORGRABjm\nREQCYJgTEQmAYU5EJACHvgq/trYWGzZswK1bt5GcPB4xMTFKl0REpAiHvTSxtrYWISHRuH49Fq2t\nA+DikostW9bhueeek70tIiJb6zKXJm7YsAHXr8eipWUzJOmPaGr6AgsWLFO6LCIiRThsmN+6dRut\nrQN+tmUgGhpuK1YPEZGSLA7z7OxsqNVq1NbWylHPI0tOHg8Xl1wAuwFcgKvrfEyalGLTGoiI7IVF\nYV5ZWYni4mIMGDDg3/+wzGJiYrBlyzr07/87uLuPwvTpA7B27Wqb10FEZA8sOgE6ZcoULFu2DBMn\nTsThw4c7HiF3TwNmngCtqKjAvHmLceHCJcTHR+G997Lg5uZmbqlERA7FZvczz8vLg6+vL0JDQ83d\nxUPdunUL0dGJuHEjA0bj71Be/hHOnZuKPXt2dMmndBMR/TudhnlSUhKqqqru2758+XJkZWWhqKio\nY1tnv0EyMzM7Xut0Ouh0uk6L2rt3L5qafg2jcSkAoLl5OA4e/A/U1tbC3d29088SETkivV4PvV5v\n9ufNmmY5ceIERo8eDa1WCwC4fPkyfHx8UFpair59+97bgBnTLEVFRUhLewP19Qfxw1OF6qHReOH6\n9Wvo2bOnqeUSETkcU7NTlkVDgwYNknXOvLm5GRER8bh4MRDNzSOh1W7C5MlDsXnzx5aWSkTkEBR5\nBqjc89iPPfYYDh3ahaysVTh79muMGDEF8+b9l6xtEBGJxGGX8xMRiazLLOcnIqK7GOZERAJgmBMR\nCYBhTkQkAIY5EZEAGOZERAJgmBMRCYBhTkQkAIY5EZEAGOZERAJgmBMRCYBhTkQkAIY5EZEAGOZE\nRAJgmBMRCcCiMF+zZg0CAgIQHByMxYsXy1WTQ7HkmX2OgP1zXCL3DRC/f6YyO8z37NmD/Px8fP/9\n9zhx4gReffVVOetyGKL/D8X+OS6R+waI3z9TmR3m69atw2uvvQaNRgMA8PDwkK0oIiIyjdlhfu7c\nOXzzzTeIiYmBTqdDWVmZnHUREZEJOn0GaFJSEqqqqu7bvnz5cixduhSjRo1CTk4Ovv32W0ydOhUX\nL168vwGZH/ZMRNRVmPIMUKfO/rK4uPihf7du3TqkpqYCAKKioqBWq3Hjxg24u7ubXQwREZnH7GmW\nSZMmYffu3QCAs2fPoqWl5b4gJyIi2+h0mqUzra2tmDNnDr777js4OzsjOzsbOp1O5vKIiOhRmD0y\n12g0+Oyzz3D8+HEcPnz4oUGemZkJX19fREREICIiAoWFheY2aVcKCwsxdOhQ+Pv7Y+XKlUqXI7uB\nAwciNDQUERERGD58uNLlWGzOnDnw9PRESEhIx7ba2lokJSVhyJAhGDt2LOrq6hSs0DIP6p8o373K\nykokJiYiKCgIwcHB+OCDDwCIc/we1j+Tj59kZZmZmVJ2dra1m7GptrY2yc/PTyovL5daWlqksLAw\n6dSpU0qXJauBAwdKN27cULoM2XzzzTfSkSNHpODg4I5tixYtklauXClJkiS988470uLFi5Uqz2IP\n6p8o371r165JR48elSRJkurr66UhQ4ZIp06dEub4Pax/ph4/myznlwQ7CVpaWorBgwdj4MCB0Gg0\nmDZtGvLy8pQuS3YiHbeEhAT07t37nm35+fmYPXs2AGD27NnYvn27EqXJ4kH9A8Q4hl5eXggPDwcA\nuLm5ISAgAFeuXBHm+D2sf4Bpx88mYb5mzRqEhYUhPT3dYf8p9HNXrlxBv379Ot77+vp2/McXhUql\nwpgxYxAZGYnc3Fyly7GK6upqeHp6AgA8PT1RXV2tcEXyE+27V1FRgaNHjyI6OlrI4/dT/2JiYgCY\ndvxkCfOkpCSEhITc9yc/Px8vvfQSysvL8d1338Hb2xsLFy6Uo0lFdYVr5/fv34+jR49i586dWLt2\nLfbu3at0SValUqmEO66iffcaGhowefJk5OTkoEePHvf8nQjHr6GhAWlpacjJyYGbm5vJx6/T68wf\nVWfXo/9cRkYGJkyYIEeTivLx8UFlZWXH+8rKSvj6+ipYkfy8vb0B/HCbhueeew6lpaVISEhQuCp5\neXp6oqqqCl5eXrh27Rr69u2rdEmy+nl/HP2719raismTJ2PmzJmYNGkSALGO30/9mzFjRkf/TD1+\nVp9muXbtWsfrbdu23XO23VFFRkbi3LlzqKioQEtLC7Zu3YqUlBSly5KNwWBAfX09AKCxsRFFRUVC\nHLdfSklJwaeffgoA+PTTTzu+RKIQ5bsnSRLS09MRGBiIBQsWdGwX5fg9rH8mHz/5z83ea+bMmVJI\nSIgUGhoqTZw4UaqqqrJ2kzZRUFAgDRkyRPLz85NWrFihdDmyunjxohQWFiaFhYVJQUFBQvRv2rRp\nkre3t6TRaCRfX19pw4YN0o0bN6TRo0dL/v7+UlJSknTz5k2lyzTbL/u3fv16Yb57e/fulVQqlRQW\nFiaFh4dL4eHh0s6dO4U5fg/qX0FBgcnHz+xFQ0REZD/4pCEiIgEwzImIBMAwJyISAMOciEgADHMi\nIgEwzImIBPD/X3qgvW+5WwIAAAAASUVORK5CYII=\n"
}
],
"prompt_number": 216
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"X_pca"
],
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 217,
"text": [
"array([[ -3.4519618 , 7.29618135],",
" [ -2.07475174, 0.24985322],",
" [ 8.63379025, 5.00436532],",
" [ -3.02223719, -2.60580164],",
" [ 19.42008982, -2.39404469],",
" [ 1.15382046, -0.20295546],",
" [ -2.11714148, -1.47598674],",
" [ -0.53565268, -0.61362201],",
" [ -3.20060611, -0.49733293],",
" [ -2.76229288, -3.60710861],",
" [ -3.55070827, -4.08702164],",
" [ -2.4732668 , 1.93064939],",
" [ -3.58804495, 0.82873843],",
" [ -2.43103664, 0.174086 ]])"
]
}
],
"prompt_number": 217
},
{
"cell_type": "code",
"collapsed": true,
"input": [],
"language": "python",
"outputs": []
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment