Skip to content

Instantly share code, notes, and snippets.

@jminas
Created June 10, 2016 18:28
Show Gist options
  • Save jminas/a19b110d8706919bfbb39fd7a24130fc to your computer and use it in GitHub Desktop.
Save jminas/a19b110d8706919bfbb39fd7a24130fc to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jenni/miniconda/lib/python2.7/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n",
" warnings.warn(self.msg_depr % (key, alt_key))\n"
]
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"import pandas as pd\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.ensemble import ExtraTreesClassifier\n",
"from sklearn.linear_model import LogisticRegressionCV\n",
"from sklearn.metrics import f1_score\n",
"from sklearn.cross_validation import (StratifiedKFold, StratifiedShuffleSplit, \n",
" permutation_test_score, cross_val_score)\n",
"from sklearn.pipeline import Pipeline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Index([u'subject', u'pfc_mean_pe', u'dog_wait', u'dog_nowait', u'age',\n",
" u'gender', u'ses', u'outliers_2mm', u'kid_coil', u'fsiq_raw'],\n",
" dtype='object')"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv('/home/jenni/Downloads/EF4_DoG_data.csv')\n",
"data.columns"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>subject</th>\n",
" <th>pfc_mean_pe</th>\n",
" <th>dog_wait</th>\n",
" <th>dog_nowait</th>\n",
" <th>age</th>\n",
" <th>gender</th>\n",
" <th>ses</th>\n",
" <th>outliers_2mm</th>\n",
" <th>kid_coil</th>\n",
" <th>fsiq_raw</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>EF_204</td>\n",
" <td>0.2685</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.76</td>\n",
" <td>0</td>\n",
" <td>-0.9072</td>\n",
" <td>9</td>\n",
" <td>1</td>\n",
" <td>117</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>EF_208</td>\n",
" <td>0.1597</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.45</td>\n",
" <td>0</td>\n",
" <td>-1.1040</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>171</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>EF_209</td>\n",
" <td>0.2785</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>5.79</td>\n",
" <td>0</td>\n",
" <td>0.1861</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>126</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>EF_210</td>\n",
" <td>0.5037</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.25</td>\n",
" <td>1</td>\n",
" <td>-0.0808</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>164</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>EF_211</td>\n",
" <td>0.0277</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.86</td>\n",
" <td>0</td>\n",
" <td>0.7945</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>184</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>EF_212</td>\n",
" <td>0.4724</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>6.41</td>\n",
" <td>0</td>\n",
" <td>0.6039</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>164</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>EF_213</td>\n",
" <td>0.0531</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.87</td>\n",
" <td>1</td>\n",
" <td>1.1964</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>147</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>EF_214</td>\n",
" <td>0.4327</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>6.78</td>\n",
" <td>0</td>\n",
" <td>0.4827</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" <td>161</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>EF_215</td>\n",
" <td>0.1924</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.38</td>\n",
" <td>0</td>\n",
" <td>0.8235</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>182</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>EF_216</td>\n",
" <td>-0.1093</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>4.67</td>\n",
" <td>1</td>\n",
" <td>1.1226</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>113</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>EF_217</td>\n",
" <td>0.0384</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.70</td>\n",
" <td>0</td>\n",
" <td>0.6624</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>EF_218</td>\n",
" <td>-0.1430</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.68</td>\n",
" <td>1</td>\n",
" <td>0.0190</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>183</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>EF_221</td>\n",
" <td>0.2772</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.55</td>\n",
" <td>1</td>\n",
" <td>-0.2193</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>183</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>EF_222</td>\n",
" <td>-0.1073</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.22</td>\n",
" <td>0</td>\n",
" <td>0.5336</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>159</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>EF_223</td>\n",
" <td>0.0144</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.71</td>\n",
" <td>0</td>\n",
" <td>2.1370</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>155</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>EF_224</td>\n",
" <td>0.3485</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.27</td>\n",
" <td>0</td>\n",
" <td>0.7456</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>175</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>EF_225</td>\n",
" <td>-0.0755</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.13</td>\n",
" <td>1</td>\n",
" <td>-0.3127</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>140</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>EF_228</td>\n",
" <td>0.2334</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>6.57</td>\n",
" <td>0</td>\n",
" <td>-0.8338</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>148</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>EF_231</td>\n",
" <td>0.2016</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.15</td>\n",
" <td>0</td>\n",
" <td>-0.8428</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>168</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>EF_232</td>\n",
" <td>0.3141</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.17</td>\n",
" <td>0</td>\n",
" <td>-1.0586</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>EF_233</td>\n",
" <td>0.0510</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.93</td>\n",
" <td>1</td>\n",
" <td>-1.3355</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>109</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>EF_236</td>\n",
" <td>-0.2425</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.89</td>\n",
" <td>0</td>\n",
" <td>-1.0173</td>\n",
" <td>14</td>\n",
" <td>0</td>\n",
" <td>174</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>EF_239</td>\n",
" <td>-0.0380</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>5.24</td>\n",
" <td>0</td>\n",
" <td>-3.6279</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>EF_240</td>\n",
" <td>-0.2283</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.79</td>\n",
" <td>1</td>\n",
" <td>-1.1265</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>EF_241</td>\n",
" <td>0.0299</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.92</td>\n",
" <td>0</td>\n",
" <td>0.8531</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>183</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>EF_242</td>\n",
" <td>0.5737</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>6.43</td>\n",
" <td>1</td>\n",
" <td>0.1030</td>\n",
" <td>14</td>\n",
" <td>0</td>\n",
" <td>151</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>EF_243</td>\n",
" <td>0.4390</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.30</td>\n",
" <td>1</td>\n",
" <td>1.5989</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>189</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>EF_244</td>\n",
" <td>0.2977</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.05</td>\n",
" <td>1</td>\n",
" <td>-0.1420</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>120</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>EF_246</td>\n",
" <td>0.1273</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.74</td>\n",
" <td>1</td>\n",
" <td>1.0167</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>165</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>EF_247</td>\n",
" <td>0.1466</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.52</td>\n",
" <td>0</td>\n",
" <td>0.2561</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>127</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>EF_248</td>\n",
" <td>-0.0889</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.73</td>\n",
" <td>1</td>\n",
" <td>1.0354</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>178</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>EF_249</td>\n",
" <td>0.5840</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>5.87</td>\n",
" <td>0</td>\n",
" <td>0.7945</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>151</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>EF_250</td>\n",
" <td>0.2831</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.96</td>\n",
" <td>0</td>\n",
" <td>0.1607</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>EF_253</td>\n",
" <td>0.1202</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.37</td>\n",
" <td>1</td>\n",
" <td>1.0650</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>204</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>EF_254</td>\n",
" <td>0.1764</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.56</td>\n",
" <td>1</td>\n",
" <td>-0.8563</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>EF_257</td>\n",
" <td>0.2037</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.77</td>\n",
" <td>1</td>\n",
" <td>-0.6698</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>EF_258</td>\n",
" <td>0.1237</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>6.75</td>\n",
" <td>1</td>\n",
" <td>-0.6698</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>EF_261</td>\n",
" <td>0.2293</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>5.31</td>\n",
" <td>1</td>\n",
" <td>-1.4225</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>EF_264</td>\n",
" <td>-0.1071</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.45</td>\n",
" <td>1</td>\n",
" <td>-0.5021</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>172</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>EF_265</td>\n",
" <td>0.2935</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>6.14</td>\n",
" <td>0</td>\n",
" <td>-0.9623</td>\n",
" <td>12</td>\n",
" <td>0</td>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>EF_267</td>\n",
" <td>0.1995</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.06</td>\n",
" <td>0</td>\n",
" <td>-1.3323</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>156</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>EF_268</td>\n",
" <td>0.0848</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>5.61</td>\n",
" <td>0</td>\n",
" <td>-0.5597</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>EF_269</td>\n",
" <td>0.4676</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.07</td>\n",
" <td>0</td>\n",
" <td>-0.2673</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>151</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" subject pfc_mean_pe dog_wait dog_nowait age gender ses \\\n",
"0 EF_204 0.2685 0 1 4.76 0 -0.9072 \n",
"1 EF_208 0.1597 0 1 7.45 0 -1.1040 \n",
"2 EF_209 0.2785 0 1 5.79 0 0.1861 \n",
"3 EF_210 0.5037 0 1 7.25 1 -0.0808 \n",
"4 EF_211 0.0277 0 1 7.86 0 0.7945 \n",
"5 EF_212 0.4724 0 1 6.41 0 0.6039 \n",
"6 EF_213 0.0531 1 0 6.87 1 1.1964 \n",
"7 EF_214 0.4327 0 1 6.78 0 0.4827 \n",
"8 EF_215 0.1924 1 0 6.38 0 0.8235 \n",
"9 EF_216 -0.1093 1 0 4.67 1 1.1226 \n",
"10 EF_217 0.0384 1 0 7.70 0 0.6624 \n",
"11 EF_218 -0.1430 1 0 7.68 1 0.0190 \n",
"12 EF_221 0.2772 0 1 7.55 1 -0.2193 \n",
"13 EF_222 -0.1073 1 0 6.22 0 0.5336 \n",
"14 EF_223 0.0144 1 0 6.71 0 2.1370 \n",
"15 EF_224 0.3485 1 0 6.27 0 0.7456 \n",
"16 EF_225 -0.0755 1 0 7.13 1 -0.3127 \n",
"17 EF_228 0.2334 0 1 6.57 0 -0.8338 \n",
"18 EF_231 0.2016 0 1 7.15 0 -0.8428 \n",
"19 EF_232 0.3141 0 1 4.17 0 -1.0586 \n",
"20 EF_233 0.0510 0 1 4.93 1 -1.3355 \n",
"21 EF_236 -0.2425 1 0 7.89 0 -1.0173 \n",
"22 EF_239 -0.0380 0 1 5.24 0 -3.6279 \n",
"23 EF_240 -0.2283 0 1 4.79 1 -1.1265 \n",
"24 EF_241 0.0299 1 0 6.92 0 0.8531 \n",
"25 EF_242 0.5737 0 1 6.43 1 0.1030 \n",
"26 EF_243 0.4390 0 1 7.30 1 1.5989 \n",
"27 EF_244 0.2977 0 1 4.05 1 -0.1420 \n",
"28 EF_246 0.1273 1 0 6.74 1 1.0167 \n",
"29 EF_247 0.1466 0 1 4.52 0 0.2561 \n",
"30 EF_248 -0.0889 1 0 6.73 1 1.0354 \n",
"31 EF_249 0.5840 0 1 5.87 0 0.7945 \n",
"32 EF_250 0.2831 1 0 7.96 0 0.1607 \n",
"33 EF_253 0.1202 1 0 7.37 1 1.0650 \n",
"34 EF_254 0.1764 0 1 4.56 1 -0.8563 \n",
"35 EF_257 0.2037 0 1 4.77 1 -0.6698 \n",
"36 EF_258 0.1237 0 1 6.75 1 -0.6698 \n",
"37 EF_261 0.2293 0 1 5.31 1 -1.4225 \n",
"38 EF_264 -0.1071 0 1 7.45 1 -0.5021 \n",
"39 EF_265 0.2935 0 1 6.14 0 -0.9623 \n",
"40 EF_267 0.1995 1 0 6.06 0 -1.3323 \n",
"41 EF_268 0.0848 0 1 5.61 0 -0.5597 \n",
"42 EF_269 0.4676 0 1 7.07 0 -0.2673 \n",
"\n",
" outliers_2mm kid_coil fsiq_raw \n",
"0 9 1 117 \n",
"1 2 1 171 \n",
"2 4 0 126 \n",
"3 2 1 164 \n",
"4 1 1 184 \n",
"5 3 0 164 \n",
"6 0 0 147 \n",
"7 11 0 161 \n",
"8 0 0 182 \n",
"9 3 0 113 \n",
"10 2 0 173 \n",
"11 2 0 183 \n",
"12 0 0 183 \n",
"13 1 0 159 \n",
"14 0 0 155 \n",
"15 0 0 175 \n",
"16 0 0 140 \n",
"17 3 0 148 \n",
"18 0 0 168 \n",
"19 9 0 91 \n",
"20 1 0 109 \n",
"21 14 0 174 \n",
"22 2 0 106 \n",
"23 0 0 63 \n",
"24 2 0 183 \n",
"25 14 0 151 \n",
"26 0 0 189 \n",
"27 6 0 120 \n",
"28 5 0 165 \n",
"29 4 0 127 \n",
"30 6 0 178 \n",
"31 8 0 151 \n",
"32 0 0 176 \n",
"33 6 0 204 \n",
"34 17 0 95 \n",
"35 1 0 91 \n",
"36 0 0 114 \n",
"37 2 0 100 \n",
"38 3 0 172 \n",
"39 12 0 102 \n",
"40 0 0 156 \n",
"41 0 0 123 \n",
"42 7 0 151 "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>subject</th>\n",
" <th>pfc_mean_pe</th>\n",
" <th>dog_wait</th>\n",
" <th>dog_nowait</th>\n",
" <th>age</th>\n",
" <th>gender</th>\n",
" <th>ses</th>\n",
" <th>outliers_2mm</th>\n",
" <th>kid_coil</th>\n",
" <th>fsiq_raw</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>EF_204</td>\n",
" <td>0.2685</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.76</td>\n",
" <td>0</td>\n",
" <td>-0.9072</td>\n",
" <td>9</td>\n",
" <td>1</td>\n",
" <td>117</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>EF_208</td>\n",
" <td>0.1597</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.45</td>\n",
" <td>0</td>\n",
" <td>-1.1040</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>171</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>EF_209</td>\n",
" <td>0.2785</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>5.79</td>\n",
" <td>0</td>\n",
" <td>0.1861</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>126</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>EF_210</td>\n",
" <td>0.5037</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.25</td>\n",
" <td>1</td>\n",
" <td>-0.0808</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>164</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>EF_211</td>\n",
" <td>0.0277</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>7.86</td>\n",
" <td>0</td>\n",
" <td>0.7945</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>184</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" subject pfc_mean_pe dog_wait dog_nowait age gender ses \\\n",
"0 EF_204 0.2685 0 1 4.76 0 -0.9072 \n",
"1 EF_208 0.1597 0 1 7.45 0 -1.1040 \n",
"2 EF_209 0.2785 0 1 5.79 0 0.1861 \n",
"3 EF_210 0.5037 0 1 7.25 1 -0.0808 \n",
"4 EF_211 0.0277 0 1 7.86 0 0.7945 \n",
"\n",
" outliers_2mm kid_coil fsiq_raw \n",
"0 9 1 117 \n",
"1 2 1 171 \n",
"2 4 0 126 \n",
"3 2 1 164 \n",
"4 1 1 184 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Index([u'subject', u'pfc_mean_pe', u'dog_wait', u'dog_nowait', u'age',\n",
" u'gender', u'ses', u'outliers_2mm', u'kid_coil', u'fsiq_raw'],\n",
" dtype='object')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.keys()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"all_features = [ u'pfc_mean_pe', u'age', u'gender', u'ses', u'outliers_2mm', u'kid_coil', u'fsiq_raw']\n",
"brain_features = [ u'pfc_mean_pe']\n",
"behav_features = [ u'age', u'gender', u'ses', u'fsiq_raw']\n",
"data_all = data[all_features].values\n",
"data_brain = data[brain_features].values\n",
"data_behav = data[behav_features].values\n",
"target = data['dog_wait'].values\n",
"models = [data_all, data_brain, data_behav]\n",
"names = ['data_all', 'data_brain', 'data_behav']"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimizing for accuracy in data_all\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.62 s.d.=0.05\n",
"\tEvaluating precision: mean=0.63 s.d.=0.03\n",
"\tEvaluating recall: mean=0.62 s.d.=0.12\n",
"Optimizing for f1 in data_all\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.62 s.d.=0.05\n",
"\tEvaluating precision: mean=0.63 s.d.=0.03\n",
"\tEvaluating recall: mean=0.62 s.d.=0.12\n",
"Optimizing for precision in data_all\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.62 s.d.=0.05\n",
"\tEvaluating precision: mean=0.63 s.d.=0.03\n",
"\tEvaluating recall: mean=0.62 s.d.=0.12\n",
"Optimizing for recall in data_all\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.62 s.d.=0.05\n",
"\tEvaluating precision: mean=0.63 s.d.=0.03\n",
"\tEvaluating recall: mean=0.62 s.d.=0.12\n",
"Optimizing for accuracy in data_brain\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.58 s.d.=0.08\n",
"\tEvaluating precision: mean=0.68 s.d.=0.08\n",
"\tEvaluating recall: mean=0.56 s.d.=0.19\n",
"Optimizing for f1 in data_brain\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.58 s.d.=0.08\n",
"\tEvaluating precision: mean=0.68 s.d.=0.08\n",
"\tEvaluating recall: mean=0.56 s.d.=0.19\n",
"Optimizing for precision in data_brain\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.58 s.d.=0.08\n",
"\tEvaluating precision: mean=0.68 s.d.=0.08\n",
"\tEvaluating recall: mean=0.56 s.d.=0.19\n",
"Optimizing for recall in data_brain\n",
"\tEvaluating accuracy: mean=0.72 s.d.=0.01\n",
"\tEvaluating f1: mean=0.58 s.d.=0.08\n",
"\tEvaluating precision: mean=0.68 s.d.=0.08\n",
"\tEvaluating recall: mean=0.56 s.d.=0.19\n",
"Optimizing for accuracy in data_behav\n",
"\tEvaluating accuracy: mean=0.63 s.d.=0.08\n",
"\tEvaluating f1: mean=0.51 s.d.=0.06\n",
"\tEvaluating precision: mean=0.53 s.d.=0.13\n",
"\tEvaluating recall: mean=0.50 s.d.=0.00\n",
"Optimizing for f1 in data_behav\n",
"\tEvaluating accuracy: mean=0.63 s.d.=0.08\n",
"\tEvaluating f1: mean=0.51 s.d.=0.06\n",
"\tEvaluating precision: mean=0.53 s.d.=0.13\n",
"\tEvaluating recall: mean=0.50 s.d.=0.00\n",
"Optimizing for precision in data_behav\n",
"\tEvaluating accuracy: mean=0.63 s.d.=0.08\n",
"\tEvaluating f1: mean=0.51 s.d.=0.06\n",
"\tEvaluating precision: mean=0.53 s.d.=0.13\n",
"\tEvaluating recall: mean=0.50 s.d.=0.00\n",
"Optimizing for recall in data_behav\n",
"\tEvaluating accuracy: mean=0.63 s.d.=0.08\n",
"\tEvaluating f1: mean=0.51 s.d.=0.06\n",
"\tEvaluating precision: mean=0.53 s.d.=0.13\n",
"\tEvaluating recall: mean=0.50 s.d.=0.00\n"
]
}
],
"source": [
"cv = StratifiedKFold(target, n_folds=2) \n",
"\n",
"# Optimize classifier for specific metric\n",
"for name, ds in zip(names, models):\n",
" for scoring in ['accuracy', 'f1', 'precision', 'recall']:\n",
" clf = Pipeline([('scaler', StandardScaler()), ('model', LogisticRegressionCV(cv=5, scoring=scoring))])\n",
" print('Optimizing for %s in %s' % (scoring, name))\n",
" \n",
" for scoring2 in ['accuracy', 'f1', 'precision', 'recall']:\n",
" scores = cross_val_score(clf, ds, target, cv=cv, scoring=scoring2)\n",
" print \"\\tEvaluating %s: mean=%.2f s.d.=%.2f\" % (scoring2, scores.mean(), scores.std())\n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Classification score for data_all 0.72 (pvalue : 0.167)\n",
"Classification score for data_brain 0.72 (pvalue : 0.167)\n",
"Classification score for data_behav 0.63 (pvalue : 0.333)\n"
]
}
],
"source": [
"for name, ds in zip(names, models):\n",
" ##=====PERMUTATION TEST SCORE===========This will tell us if the accuracy scores are significant\n",
" clf = Pipeline([('scaler', StandardScaler()), \n",
" ('model', LogisticRegressionCV(cv=5, scoring='accuracy'))])\n",
" score, permutation_scores, pvalue = permutation_test_score(clf, ds, target, \n",
" cv=cv, scoring=\"accuracy\", \n",
" n_permutations=5000, n_jobs=4) #<--run in interactive qsub with 8jobs\n",
"\n",
" print(\"Classification score for %s %.2f (pvalue : %.3f)\" % (name, score, pvalue))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "ValueError",
"evalue": "need more than 2 values to unpack",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-24-9598fcc5c8fb>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mds\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnames\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmodels\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;33m(\u001b[0m\u001b[0max1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0max2\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0max3\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_context\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'poster'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_style\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'white'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mph1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhist\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpermutation_scores\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m32\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0.6\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0.6\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0.6\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0.3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mValueError\u001b[0m: need more than 2 values to unpack"
]
},
{
"data": {
"image/png": "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\ntAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f39022b4650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for name, ds in zip(names, models):\n",
" (ax1, ax2, ax3) = plt.subplots(3)\n",
" sns.set_context('poster')\n",
" sns.set_style('white')\n",
" ph1 = plt.hist(permutation_scores, 32, color=(0.6, 0.6, 0.6), alpha=0.3)\n",
" ph2 = plt.axvline(score, color='r')\n",
" ph3 = plt.axvline(0.5, linestyle='--', color='k')\n",
" plt.legend(['Data', 'Chance', 'Null distribution'], \n",
" bbox_to_anchor=(0., 1.02, 1., .102), loc=3,\n",
" ncol=3, mode=\"expand\", borderaxespad=0.)\n",
" plt.xlabel('Accuracy = %.2f (p = %.3f)' % (score, pvalue))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Rough order of importance"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'Gender_0F', u'KBITraw']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'Gender_0F', u'KBITraw']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'Gender_0F', u'KBITraw']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'KBITraw', u'Gender_0F']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'Gender_0F', u'KBITraw']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'Gender_0F', u'KBITraw']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'KBITraw', u'Gender_0F']\n",
"[u'L_SLFp_FA', u'AgeMos', u'WordIDraw', u'LangDelay_0No', u'KBITraw', u'Gender_0F']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'KBITraw', u'Gender_0F']\n",
"[u'AgeMos', u'L_SLFp_FA', u'WordIDraw', u'LangDelay_0No', u'Gender_0F', u'KBITraw']\n"
]
}
],
"source": [
"import numpy as np\n",
"\n",
"clf = Pipeline([('scaler', StandardScaler()),\n",
" ('model', LogisticRegressionCV(cv=5, scoring=scoring))])\n",
"for train, test in StratifiedKFold(target, 10):\n",
" clf.fit(data1[train], target[train])\n",
" print np.array(features)[np.argsort(np.abs(clf.steps[-1][1].coef_))][0].tolist()[::-1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
}
],
"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.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment