Created
October 31, 2013 06:09
-
-
Save sergeyk/7244969 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"%load_ext autoreload\n", | |
"%autoreload 2\n", | |
"import re\n", | |
"import aphrodite.results\n", | |
"import pandas as pd\n", | |
"\n", | |
"import vislab\n", | |
"import vislab.datasets\n", | |
"import vislab.results" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 1 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"c = vislab.util.get_mongodb_client()['predict']['ava_style_aesth_oct29']\n", | |
"if c.find({'features': 'noise'}).count() > 0:\n", | |
" c.remove({'features': 'noise'})\n", | |
"pd.DataFrame([x for x in c.find()])" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>_id</th>\n", | |
" <th>data</th>\n", | |
" <th>features</th>\n", | |
" <th>num_test</th>\n", | |
" <th>num_train</th>\n", | |
" <th>num_val</th>\n", | |
" <th>quadratic</th>\n", | |
" <th>results_name</th>\n", | |
" <th>score_test</th>\n", | |
" <th>score_val</th>\n", | |
" <th>task</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0 </th>\n", | |
" <td> 526f86549622958641aaee6f</td>\n", | |
" <td> ava_style_rating_std_bin</td>\n", | |
" <td> [lab_hist]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8984</td>\n", | |
" <td> 2286</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_bin_features_['lab_h...</td>\n", | |
" <td> 0.535583</td>\n", | |
" <td> 0.551982</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1 </th>\n", | |
" <td> 526f86689622958641aaee70</td>\n", | |
" <td> ava_style_rating_std_cn_bin</td>\n", | |
" <td> [lab_hist]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9170</td>\n", | |
" <td> 2100</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_cn_bin_features_['la...</td>\n", | |
" <td> 0.543307</td>\n", | |
" <td> 0.569578</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2 </th>\n", | |
" <td> 526f868b9622958641aaee71</td>\n", | |
" <td> ava_style_rating_mean_bin</td>\n", | |
" <td> [lab_hist]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9060</td>\n", | |
" <td> 2210</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_bin_features_['lab_...</td>\n", | |
" <td> 0.543319</td>\n", | |
" <td> 0.583865</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3 </th>\n", | |
" <td> 526f873a9622958641aaee72</td>\n", | |
" <td> ava_style_rating_mean_cn_bin</td>\n", | |
" <td> [lab_hist]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8998</td>\n", | |
" <td> 2272</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_cn_bin_features_['l...</td>\n", | |
" <td> 0.549347</td>\n", | |
" <td> 0.548444</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4 </th>\n", | |
" <td> 526f87f19622958641aaee73</td>\n", | |
" <td> ava_style_rating_std_bin</td>\n", | |
" <td> [gbvs_saliency]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8984</td>\n", | |
" <td> 2286</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_bin_features_['gbvs_...</td>\n", | |
" <td> 0.511687</td>\n", | |
" <td> 0.542105</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5 </th>\n", | |
" <td> 526f8d349622958641aaee75</td>\n", | |
" <td> ava_style_rating_std_cn_bin</td>\n", | |
" <td> [decaf_fc6]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9170</td>\n", | |
" <td> 2100</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_cn_bin_features_['de...</td>\n", | |
" <td> 0.563672</td>\n", | |
" <td> 0.601905</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6 </th>\n", | |
" <td> 526f8d499622958641aaee76</td>\n", | |
" <td> ava_style_rating_std_bin</td>\n", | |
" <td> [decaf_fc6]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8984</td>\n", | |
" <td> 2286</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_bin_features_['decaf...</td>\n", | |
" <td> 0.554665</td>\n", | |
" <td> 0.566054</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7 </th>\n", | |
" <td> 526f8df79622958641aaee77</td>\n", | |
" <td> ava_style_rating_mean_cn_bin</td>\n", | |
" <td> [decaf_fc6]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8998</td>\n", | |
" <td> 2272</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_cn_bin_features_['d...</td>\n", | |
" <td> 0.621670</td>\n", | |
" <td> 0.626320</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8 </th>\n", | |
" <td> 526f92cb9622958641aaee78</td>\n", | |
" <td> ava_style_rating_std_cn_bin</td>\n", | |
" <td> [decaf_fc6_flatten]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9170</td>\n", | |
" <td> 2100</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_cn_bin_features_['de...</td>\n", | |
" <td> 0.542578</td>\n", | |
" <td> 0.671279</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9 </th>\n", | |
" <td> 526f93819622958641aaee79</td>\n", | |
" <td> ava_style_rating_mean_bin</td>\n", | |
" <td> [decaf_fc6_flatten]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9060</td>\n", | |
" <td> 2210</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_bin_features_['deca...</td>\n", | |
" <td> 0.586433</td>\n", | |
" <td> 0.673303</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td> 527014449622958641aaee7a</td>\n", | |
" <td> ava_style_rating_mean_bin</td>\n", | |
" <td> [gbvs_saliency]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9060</td>\n", | |
" <td> 2210</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_bin_features_['gbvs...</td>\n", | |
" <td> 0.508035</td>\n", | |
" <td> 0.551410</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td> 5270145a9622958641aaee7b</td>\n", | |
" <td> ava_style_rating_std_cn_bin</td>\n", | |
" <td> [gbvs_saliency]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9170</td>\n", | |
" <td> 2100</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_cn_bin_features_['gb...</td>\n", | |
" <td> 0.526254</td>\n", | |
" <td> 0.546367</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td> 527014989622958641aaee7c</td>\n", | |
" <td> ava_style_rating_mean_cn_bin</td>\n", | |
" <td> [gbvs_saliency]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8998</td>\n", | |
" <td> 2272</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_cn_bin_features_['g...</td>\n", | |
" <td> 0.507942</td>\n", | |
" <td> 0.522546</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td> 52701bdb9622958641aaee7d</td>\n", | |
" <td> ava_style_rating_mean_bin</td>\n", | |
" <td> [decaf_fc6]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9060</td>\n", | |
" <td> 2210</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_bin_features_['deca...</td>\n", | |
" <td> 0.630831</td>\n", | |
" <td> 0.612217</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td> 527020209622958641aaee7e</td>\n", | |
" <td> ava_style_rating_std_bin</td>\n", | |
" <td> [decaf_fc6_flatten]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8984</td>\n", | |
" <td> 2286</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_bin_features_['decaf...</td>\n", | |
" <td> 0.535350</td>\n", | |
" <td> 0.587204</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td> 527022309622958641aaee7f</td>\n", | |
" <td> ava_style_rating_mean_cn_bin</td>\n", | |
" <td> [decaf_fc6_flatten]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8998</td>\n", | |
" <td> 2272</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_cn_bin_features_['d...</td>\n", | |
" <td> 0.585735</td>\n", | |
" <td> 0.593034</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td> 52702b579622958641aaee80</td>\n", | |
" <td> ava_style_rating_std_bin</td>\n", | |
" <td> [gist_256]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8984</td>\n", | |
" <td> 2286</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_bin_features_['gist_...</td>\n", | |
" <td> 0.526603</td>\n", | |
" <td> 0.566054</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td> 52702b5e9622958641aaee81</td>\n", | |
" <td> ava_style_rating_mean_bin</td>\n", | |
" <td> [gist_256]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9060</td>\n", | |
" <td> 2210</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_bin_features_['gist...</td>\n", | |
" <td> 0.523324</td>\n", | |
" <td> 0.535294</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td> 52702baa9622958641aaee82</td>\n", | |
" <td> ava_style_rating_mean_cn_bin</td>\n", | |
" <td> [gist_256]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8998</td>\n", | |
" <td> 2272</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_cn_bin_features_['g...</td>\n", | |
" <td> 0.534917</td>\n", | |
" <td> 0.573504</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td> 52702bb19622958641aaee83</td>\n", | |
" <td> ava_style_rating_std_cn_bin</td>\n", | |
" <td> [gist_256]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9170</td>\n", | |
" <td> 2100</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_cn_bin_features_['gi...</td>\n", | |
" <td> 0.533203</td>\n", | |
" <td> 0.536667</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td> 52702cab9622958641aaee84</td>\n", | |
" <td> ava_style_rating_std_bin</td>\n", | |
" <td> [mc_bit]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8984</td>\n", | |
" <td> 2286</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_bin_features_['mc_bi...</td>\n", | |
" <td> 0.530448</td>\n", | |
" <td> 0.580318</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td> 52702d2c9622958641aaee85</td>\n", | |
" <td> ava_style_rating_std_cn_bin</td>\n", | |
" <td> [mc_bit]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9170</td>\n", | |
" <td> 2100</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_std_cn_bin_features_['mc...</td>\n", | |
" <td> 0.565200</td>\n", | |
" <td> 0.570881</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td> 52702e439622958641aaee86</td>\n", | |
" <td> ava_style_rating_mean_bin</td>\n", | |
" <td> [mc_bit]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 9060</td>\n", | |
" <td> 2210</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_bin_features_['mc_b...</td>\n", | |
" <td> 0.627473</td>\n", | |
" <td> 0.725733</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23</th>\n", | |
" <td> 52702e479622958641aaee87</td>\n", | |
" <td> ava_style_rating_mean_cn_bin</td>\n", | |
" <td> [mc_bit]</td>\n", | |
" <td> 2809</td>\n", | |
" <td> 8998</td>\n", | |
" <td> 2272</td>\n", | |
" <td> False</td>\n", | |
" <td> data_ava_style_rating_mean_cn_bin_features_['m...</td>\n", | |
" <td> 0.620927</td>\n", | |
" <td> 0.653404</td>\n", | |
" <td> clf</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 3, | |
"text": [ | |
" _id data \\\n", | |
"0 526f86549622958641aaee6f ava_style_rating_std_bin \n", | |
"1 526f86689622958641aaee70 ava_style_rating_std_cn_bin \n", | |
"2 526f868b9622958641aaee71 ava_style_rating_mean_bin \n", | |
"3 526f873a9622958641aaee72 ava_style_rating_mean_cn_bin \n", | |
"4 526f87f19622958641aaee73 ava_style_rating_std_bin \n", | |
"5 526f8d349622958641aaee75 ava_style_rating_std_cn_bin \n", | |
"6 526f8d499622958641aaee76 ava_style_rating_std_bin \n", | |
"7 526f8df79622958641aaee77 ava_style_rating_mean_cn_bin \n", | |
"8 526f92cb9622958641aaee78 ava_style_rating_std_cn_bin \n", | |
"9 526f93819622958641aaee79 ava_style_rating_mean_bin \n", | |
"10 527014449622958641aaee7a ava_style_rating_mean_bin \n", | |
"11 5270145a9622958641aaee7b ava_style_rating_std_cn_bin \n", | |
"12 527014989622958641aaee7c ava_style_rating_mean_cn_bin \n", | |
"13 52701bdb9622958641aaee7d ava_style_rating_mean_bin \n", | |
"14 527020209622958641aaee7e ava_style_rating_std_bin \n", | |
"15 527022309622958641aaee7f ava_style_rating_mean_cn_bin \n", | |
"16 52702b579622958641aaee80 ava_style_rating_std_bin \n", | |
"17 52702b5e9622958641aaee81 ava_style_rating_mean_bin \n", | |
"18 52702baa9622958641aaee82 ava_style_rating_mean_cn_bin \n", | |
"19 52702bb19622958641aaee83 ava_style_rating_std_cn_bin \n", | |
"20 52702cab9622958641aaee84 ava_style_rating_std_bin \n", | |
"21 52702d2c9622958641aaee85 ava_style_rating_std_cn_bin \n", | |
"22 52702e439622958641aaee86 ava_style_rating_mean_bin \n", | |
"23 52702e479622958641aaee87 ava_style_rating_mean_cn_bin \n", | |
"\n", | |
" features num_test num_train num_val quadratic \\\n", | |
"0 [lab_hist] 2809 8984 2286 False \n", | |
"1 [lab_hist] 2809 9170 2100 False \n", | |
"2 [lab_hist] 2809 9060 2210 False \n", | |
"3 [lab_hist] 2809 8998 2272 False \n", | |
"4 [gbvs_saliency] 2809 8984 2286 False \n", | |
"5 [decaf_fc6] 2809 9170 2100 False \n", | |
"6 [decaf_fc6] 2809 8984 2286 False \n", | |
"7 [decaf_fc6] 2809 8998 2272 False \n", | |
"8 [decaf_fc6_flatten] 2809 9170 2100 False \n", | |
"9 [decaf_fc6_flatten] 2809 9060 2210 False \n", | |
"10 [gbvs_saliency] 2809 9060 2210 False \n", | |
"11 [gbvs_saliency] 2809 9170 2100 False \n", | |
"12 [gbvs_saliency] 2809 8998 2272 False \n", | |
"13 [decaf_fc6] 2809 9060 2210 False \n", | |
"14 [decaf_fc6_flatten] 2809 8984 2286 False \n", | |
"15 [decaf_fc6_flatten] 2809 8998 2272 False \n", | |
"16 [gist_256] 2809 8984 2286 False \n", | |
"17 [gist_256] 2809 9060 2210 False \n", | |
"18 [gist_256] 2809 8998 2272 False \n", | |
"19 [gist_256] 2809 9170 2100 False \n", | |
"20 [mc_bit] 2809 8984 2286 False \n", | |
"21 [mc_bit] 2809 9170 2100 False \n", | |
"22 [mc_bit] 2809 9060 2210 False \n", | |
"23 [mc_bit] 2809 8998 2272 False \n", | |
"\n", | |
" results_name score_test score_val \\\n", | |
"0 data_ava_style_rating_std_bin_features_['lab_h... 0.535583 0.551982 \n", | |
"1 data_ava_style_rating_std_cn_bin_features_['la... 0.543307 0.569578 \n", | |
"2 data_ava_style_rating_mean_bin_features_['lab_... 0.543319 0.583865 \n", | |
"3 data_ava_style_rating_mean_cn_bin_features_['l... 0.549347 0.548444 \n", | |
"4 data_ava_style_rating_std_bin_features_['gbvs_... 0.511687 0.542105 \n", | |
"5 data_ava_style_rating_std_cn_bin_features_['de... 0.563672 0.601905 \n", | |
"6 data_ava_style_rating_std_bin_features_['decaf... 0.554665 0.566054 \n", | |
"7 data_ava_style_rating_mean_cn_bin_features_['d... 0.621670 0.626320 \n", | |
"8 data_ava_style_rating_std_cn_bin_features_['de... 0.542578 0.671279 \n", | |
"9 data_ava_style_rating_mean_bin_features_['deca... 0.586433 0.673303 \n", | |
"10 data_ava_style_rating_mean_bin_features_['gbvs... 0.508035 0.551410 \n", | |
"11 data_ava_style_rating_std_cn_bin_features_['gb... 0.526254 0.546367 \n", | |
"12 data_ava_style_rating_mean_cn_bin_features_['g... 0.507942 0.522546 \n", | |
"13 data_ava_style_rating_mean_bin_features_['deca... 0.630831 0.612217 \n", | |
"14 data_ava_style_rating_std_bin_features_['decaf... 0.535350 0.587204 \n", | |
"15 data_ava_style_rating_mean_cn_bin_features_['d... 0.585735 0.593034 \n", | |
"16 data_ava_style_rating_std_bin_features_['gist_... 0.526603 0.566054 \n", | |
"17 data_ava_style_rating_mean_bin_features_['gist... 0.523324 0.535294 \n", | |
"18 data_ava_style_rating_mean_cn_bin_features_['g... 0.534917 0.573504 \n", | |
"19 data_ava_style_rating_std_cn_bin_features_['gi... 0.533203 0.536667 \n", | |
"20 data_ava_style_rating_std_bin_features_['mc_bi... 0.530448 0.580318 \n", | |
"21 data_ava_style_rating_std_cn_bin_features_['mc... 0.565200 0.570881 \n", | |
"22 data_ava_style_rating_mean_bin_features_['mc_b... 0.627473 0.725733 \n", | |
"23 data_ava_style_rating_mean_cn_bin_features_['m... 0.620927 0.653404 \n", | |
"\n", | |
" task \n", | |
"0 clf \n", | |
"1 clf \n", | |
"2 clf \n", | |
"3 clf \n", | |
"4 clf \n", | |
"5 clf \n", | |
"6 clf \n", | |
"7 clf \n", | |
"8 clf \n", | |
"9 clf \n", | |
"10 clf \n", | |
"11 clf \n", | |
"12 clf \n", | |
"13 clf \n", | |
"14 clf \n", | |
"15 clf \n", | |
"16 clf \n", | |
"17 clf \n", | |
"18 clf \n", | |
"19 clf \n", | |
"20 clf \n", | |
"21 clf \n", | |
"22 clf \n", | |
"23 clf " | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"results_df, preds_panel = aphrodite.results.load_pred_results(\n", | |
" 'ava_style_aesth_oct29', '/Users/sergeyk/work/aphrodite/data/results2', multiclass=False, force=False)\n", | |
"pred_prefix = 'ava_style'\n", | |
"print preds_panel.minor_axis\n", | |
"preds_panel" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Results in collection ava_style_aesth_oct29: 24\n", | |
"Index([u'decaf_fc6 False vw', u'decaf_fc6_flatten False vw', u'gbvs_saliency False vw', u'gist_256 False vw', u'lab_hist False vw', u'mc_bit False vw', u'label', u'split'], dtype='object')" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"\n" | |
] | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 4, | |
"text": [ | |
"<class 'pandas.core.panel.Panel'>\n", | |
"Dimensions: 4 (items) x 14079 (major_axis) x 8 (minor_axis)\n", | |
"Items axis: clf ava_style_rating_mean_bin to clf ava_style_rating_std_cn_bin\n", | |
"Major_axis axis: 1187 to 97009\n", | |
"Minor_axis axis: decaf_fc6 False vw to split" | |
] | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"label_df = vislab.datasets.ava.get_ratings_df()\n", | |
"label_df.iloc[:5]" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>rating_mean</th>\n", | |
" <th>rating_std</th>\n", | |
" <th>rating_mean_bin</th>\n", | |
" <th>rating_std_bin</th>\n", | |
" <th>rating_mean_cn_bin</th>\n", | |
" <th>rating_std_cn_bin</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>image_id</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>953619</th>\n", | |
" <td> 5.6371</td>\n", | |
" <td> 1.4218</td>\n", | |
" <td> True</td>\n", | |
" <td> False</td>\n", | |
" <td> False</td>\n", | |
" <td> True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>953958</th>\n", | |
" <td> 4.6984</td>\n", | |
" <td> 1.9851</td>\n", | |
" <td> False</td>\n", | |
" <td> True</td>\n", | |
" <td> False</td>\n", | |
" <td> True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>954184</th>\n", | |
" <td> 5.6746</td>\n", | |
" <td> 1.1043</td>\n", | |
" <td> True</td>\n", | |
" <td> False</td>\n", | |
" <td> False</td>\n", | |
" <td> False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>954113</th>\n", | |
" <td> 5.7734</td>\n", | |
" <td> 1.2822</td>\n", | |
" <td> True</td>\n", | |
" <td> False</td>\n", | |
" <td> True</td>\n", | |
" <td> False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>953980</th>\n", | |
" <td> 5.2093</td>\n", | |
" <td> 1.1592</td>\n", | |
" <td> False</td>\n", | |
" <td> False</td>\n", | |
" <td> False</td>\n", | |
" <td> False</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 72, | |
"text": [ | |
" rating_mean rating_std rating_mean_bin rating_std_bin \\\n", | |
"image_id \n", | |
"953619 5.6371 1.4218 True False \n", | |
"953958 4.6984 1.9851 False True \n", | |
"954184 5.6746 1.1043 True False \n", | |
"954113 5.7734 1.2822 True False \n", | |
"953980 5.2093 1.1592 False False \n", | |
"\n", | |
" rating_mean_cn_bin rating_std_cn_bin \n", | |
"image_id \n", | |
"953619 False True \n", | |
"953958 False True \n", | |
"954184 False False \n", | |
"954113 True False \n", | |
"953980 False False " | |
] | |
} | |
], | |
"prompt_number": 72 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"task_name = 'clf ava_style_rating_mean_bin'\n", | |
"\n", | |
"task_names = preds_panel.items\n", | |
"task_metrics = {}\n", | |
"for task_name in task_names:\n", | |
" feature_names = [x for x in pred_df.columns if x not in ['label', 'split']]\n", | |
" feat_metrics = {}\n", | |
" for feature_name in ['decaf_fc6 False vw']:\n", | |
" pred_df = preds_panel[task_name]\n", | |
" pdf = pred_df[[feature_name, 'label']]\n", | |
" pdf.columns = ['pred', 'label']\n", | |
" feat_metrics[feature_name] = vislab.results.binary_metrics(\n", | |
" pdf, task_name + ' ' + feature_name, balanced=True,\n", | |
" with_plot=False, with_print=True)\n", | |
" task_metrics[task_name] = feat_metrics\n", | |
" \n", | |
"acc_df = pd.DataFrame([\n", | |
" pd.Series(\n", | |
" [\n", | |
" task_metrics[task_name][key]['accuracy']\n", | |
" for key in sorted(task_metrics[task_name].keys())\n", | |
" ],\n", | |
" sorted(task_metrics[task_name].keys()),\n", | |
" name=task_name\n", | |
" )\n", | |
" for task_name in task_names\n", | |
"])" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"------------------------------------------------------------\n", | |
"Classification metrics on clf ava_style_rating_mean_bin decaf_fc6 False vw balanced\n", | |
"ap_sklearn: 0.749332653558\n", | |
"mcc: 0.373853224848\n", | |
"ap: 0.750063251379\n", | |
" precision recall f1-score support\n", | |
"False 0.682217 0.699623 0.690810 6898\n", | |
"True 0.691758 0.674108 0.682819 6898\n", | |
"accuracy: 0.686865758191\n", | |
"\n", | |
"------------------------------------------------------------" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"\n", | |
"Classification metrics on clf ava_style_rating_mean_cn_bin decaf_fc6 False vw balanced\n", | |
"ap_sklearn: 0.738634082998\n", | |
"mcc: 0.372589142843\n", | |
"ap: 0.739336809623\n", | |
" precision recall f1-score support\n", | |
"False 0.682766 0.695820 0.689231 7009\n", | |
"True 0.689891 0.676701 0.683232 7009\n", | |
"accuracy: 0.686260522186\n", | |
"\n", | |
"------------------------------------------------------------" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"\n", | |
"Classification metrics on clf ava_style_rating_std_bin decaf_fc6 False vw balanced\n", | |
"ap_sklearn: 0.6857188387\n", | |
"mcc: 0.29916576895\n", | |
"ap: 0.68664803659\n", | |
" precision recall f1-score support\n", | |
"False 0.650276 0.647271 0.648770 6926\n", | |
"True 0.648893 0.651891 0.650389 6926\n", | |
"accuracy: 0.649581287901\n", | |
"\n", | |
"------------------------------------------------------------" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"\n", | |
"Classification metrics on clf ava_style_rating_std_cn_bin decaf_fc6 False vw balanced\n", | |
"ap_sklearn: 0.705684665427\n", | |
"mcc: 0.330833943459\n", | |
"ap: 0.706907113426\n", | |
" precision recall f1-score support\n", | |
"False 0.664987 0.666718 0.665851 6532\n", | |
"True 0.665848 0.664115 0.664980 6532\n", | |
"accuracy: 0.665416411513\n", | |
"\n" | |
] | |
} | |
], | |
"prompt_number": 71 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"acc_df" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>decaf_fc6 False vw</th>\n", | |
" <th>decaf_fc6_flatten False vw</th>\n", | |
" <th>gbvs_saliency False vw</th>\n", | |
" <th>gist_256 False vw</th>\n", | |
" <th>lab_hist False vw</th>\n", | |
" <th>mc_bit False vw</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>clf ava_style_rating_mean_bin</th>\n", | |
" <td> 0.686068</td>\n", | |
" <td> 0.779211</td>\n", | |
" <td> 0.538344</td>\n", | |
" <td> 0.556828</td>\n", | |
" <td> 0.572847</td>\n", | |
" <td> 0.842491</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>clf ava_style_rating_mean_cn_bin</th>\n", | |
" <td> 0.686760</td>\n", | |
" <td> 0.788700</td>\n", | |
" <td> 0.545370</td>\n", | |
" <td> 0.557426</td>\n", | |
" <td> 0.572692</td>\n", | |
" <td> 0.840990</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>clf ava_style_rating_std_bin</th>\n", | |
" <td> 0.649509</td>\n", | |
" <td> 0.772596</td>\n", | |
" <td> 0.543171</td>\n", | |
" <td> 0.554433</td>\n", | |
" <td> 0.570604</td>\n", | |
" <td> 0.778155</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>clf ava_style_rating_std_cn_bin</th>\n", | |
" <td> 0.664421</td>\n", | |
" <td> 0.777021</td>\n", | |
" <td> 0.545086</td>\n", | |
" <td> 0.553582</td>\n", | |
" <td> 0.577848</td>\n", | |
" <td> 0.818279</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 69, | |
"text": [ | |
" decaf_fc6 False vw \\\n", | |
"clf ava_style_rating_mean_bin 0.686068 \n", | |
"clf ava_style_rating_mean_cn_bin 0.686760 \n", | |
"clf ava_style_rating_std_bin 0.649509 \n", | |
"clf ava_style_rating_std_cn_bin 0.664421 \n", | |
"\n", | |
" decaf_fc6_flatten False vw \\\n", | |
"clf ava_style_rating_mean_bin 0.779211 \n", | |
"clf ava_style_rating_mean_cn_bin 0.788700 \n", | |
"clf ava_style_rating_std_bin 0.772596 \n", | |
"clf ava_style_rating_std_cn_bin 0.777021 \n", | |
"\n", | |
" gbvs_saliency False vw gist_256 False vw \\\n", | |
"clf ava_style_rating_mean_bin 0.538344 0.556828 \n", | |
"clf ava_style_rating_mean_cn_bin 0.545370 0.557426 \n", | |
"clf ava_style_rating_std_bin 0.543171 0.554433 \n", | |
"clf ava_style_rating_std_cn_bin 0.545086 0.553582 \n", | |
"\n", | |
" lab_hist False vw mc_bit False vw \n", | |
"clf ava_style_rating_mean_bin 0.572847 0.842491 \n", | |
"clf ava_style_rating_mean_cn_bin 0.572692 0.840990 \n", | |
"clf ava_style_rating_std_bin 0.570604 0.778155 \n", | |
"clf ava_style_rating_std_cn_bin 0.577848 0.818279 " | |
] | |
} | |
], | |
"prompt_number": 69 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"fig = vislab.results_viz.plot_df_bar(acc_df)\n", | |
"# TODO: why are these all so similar?" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nZ/OIRXKemzdv2u8U16tXj6SkJMaMGUPu3LmJjIzkwIEDWK1WjEYjbdu25fTp06xZsyabRy2S89jO\nSe7u7uTPn58333yTn376ia5du1KpUiX27NkDQLdu3TAajVpTXOQezGYzBoOBl156idatW7Nq1SoK\nFy7MxYsX+fPPP3Fzc8PT05OIiAjeffddQM9Ly4PTJ0X+EbPZbL8ItomJiWHUqFF89dVXtGvXjkqV\nKnHq1ClSU1PJkycPAwcO5IMPPsjGUYvkLLbyvly5cmEwGEhISAAgJSWF7du3s3btWnr06IHFYuGr\nr77C2dmZUqVK0aBBAz766KPsHLpIjhEdHc2qVauA2xe+x44dIyUlhfz58xMcHMz//d//UbhwYV56\n6SWOHz/Ozp07Afjggw+Iiori0qVL2Tl8kRzBarXa+2/YenLkypWLVatW8fnnn7Nv3z7ef/998ufP\nz+HDh4HbMXT16lUmTpyYbeOWx49TZGRkZHYPQh4PH3/8MT/88AMNGzYkNjaWyZMnky9fPsqXL4/Z\nbGb79u0EBARQqVIlPvvsM55//nkKFSpElSpV2Lx5M5UqVaJgwYLZfRgi2S4kJIT4+Hjq1KlD48aN\nWbZsGYmJibRo0YILFy6wfft26tati5+fHyNHjqRjx464ubnh7+9PUFAQXl5e2X0IItlu9uzZbNu2\nDU9PT3r27MmCBQv46quveO6556hWrRq//fYbly5d4o033mD9+vX8+eefVK9enYCAAF5++WV7Ca6I\no/rjjz9o27YtlStXpkiRInz++eds3boVNzc3goKCOHXqFNu2baNDhw5ER0dz5swZSpYsSf78+fH3\n92f37t00atQouw9DHhNKOuW+rFYrBoMBT09PBg8eTJEiRYiMjOTmzZusX7+edevW0b9/f9auXUts\nbCxt2rRh+/btbN++naCgIHLlykXr1q2VcIrDM5lMGI1G6tWrx7vvvsupU6d45ZVXCAkJYfny5Wza\ntIn+/fvz1VdfYTAYaNGiBfPnz+fSpUsEBQXh7u6Ol5eXPSZFHJHFYsFgMFChQgVWrFjBnj17qFGj\nBnPnzuX06dN8//33BAUFUahQIb766iteffVVLBYLBw8epGrVquTLl09xJALkzZuX33//nd27d/P7\n77+zcuVKihUrRu/evWnWrBklSpTgt99+w83NjUaNGvHFF1/w9NNPExAQQLly5ZRwyj+ipFPuy2Aw\nYDabKVKkCBcvXmTq1KmEh4czZMgQGjduTPfu3QkODqZ8+fKsW7cODw8PmjVrxrFjxwgODraXa9gu\nFEQcldFoxGw24+XlRXx8PN9//z3z5s2jZMmSBAUFMXz4cJo1a0aePHlYtmwZzz//PKGhoQQHB9s7\nCILW7hTHZEsSbc1L8ubNi9VqZenSpdSoUYNatWoRHBzM3Llzeeqpp2jRogW//vore/fuJSwsjJde\neomnnnrK/n6KI3FkZrMZo9FI9erVmTp1KpcvX2bJkiXUq1eP69evM3/+fPr168fZs2dZvXo1rVq1\nwmKxULFiRYoWLWqPR9v7iNyPPiXyQGwn56FDh+Li4sLVq1cB8PDwoH///kRFRfHcc8+RL18+Dh48\nSIkSJRgyZAguLi7299CXkjiS/9VK3hZL48aNIyEhgR07dgDw9NNP8+yzz3L8+HFeffVVatWqhbu7\nO4UKFcLNzU0dAsUhxcXFMXLkSC5cuJCuU6Ytjpo3b07NmjUxmUycOXMGgMaNG/PTTz9hNBoJDw+n\nR48ewO3n1BRHIrc5OTlhsVgoUqQIHTp0ICkpifj4eAAGDx7M7t272bZtGy+99BLu7u4cPXqUjh07\n8swzzwB/xaBtYkHkfpQFSDq2BX/vvGA2Go2YTCZcXV0JCwtj/vz5/PnnnwB4e3tToUIFDAYD/fr1\no2fPnvb9dIIXR2RbTNsmbTyljaXIyEjefPNN4uPjOX78OLt376Zw4cJ4eHjQt29f8ufPn24/EUdh\ni5k//viDuLg4vvvuO+CvOLAloAaDgdatW7NlyxYmT57M8ePH+eGHH3j55ZcBKF++PCVKlLC/n+JI\nHI3FYrnvTdBOnTrh4eHBunXr7JMKQUFB5M2blzJlyjBmzBh7sqm1OeVhGaz69Ai3k820d6vu9axL\n2p/Vq1cPV1dXGjduzMcff8zYsWMJDQ21b2uxWHRyF4eT9nN/8+ZNNm7cyLPPPounp2e67dLGUpky\nZXB3d+eZZ56hXLlyDBw40P57xZE4upSUFCZPnsyhQ4f48MMPKV269D3jYsyYMXz77bcEBAQQEBDA\n0KFDs2nEIjmD1WpNt9rA5cuX05WX29iu/37++WeGDRtGjRo1iI+PJyEhgR9++IH8+fNjMBj0DLRk\nmJ7pFOCvu78//fQTPXr0YP/+/VStWhV3d3f7NgaDwd4IpWTJknz00Ue0bt2a4cOHExQUlO799MUk\njsQ242L73P/www+0bduWLVu28OOPP9KsWTPc3Nzs26eNpYoVK5KcnMzEiRMJDg5Ot43iSByJ7R64\n7XO/ZMkS3njjDZydndm5cycuLi7Url07XVzYYq9w4cIUKFCAQYMG0aBBg3S/E3FEtnPIlStXCAsL\nY8KECXh6euLl5UXevHnt8WG7/itTpgy//vorzs7OdOnShREjRpA7d257DCmWJKM00+mg7jy5X758\nmdGjR3Px4kXatm3L9OnTqVatGh07drSXJtm2tf37wIEDVKxYEfjrgXR9KYkjsVqtWCwWe5XAzZs3\nmT17Nl9++SVffvklFStWJCQkhAYNGtCpU6d0N3Hg7gqDO5NXEUdgtVpZvnw5ZcuWpWzZssTHx1Os\nWDHatWtHz549qV27NlOnTmXPnj20adOGevXqpZvtvDOOdD4SR3VnLCxatIjFixdTr149vLy8WL58\nObVq1aJ79+733O/8+fMUKlTI/h4mkyldEzuRjFDdlgMym813XdjGxMSwePFiKlasSKNGjRg4cCBn\nz55l69atd90tNplMAFSsWNFevuHk5KQTvDgcg8GAk5MTcXFxREREcOvWLby8vEhOTrY3ZOjduzdr\n1qyxL6oNty+y014cmM1mXSiLQ7KdjywWC61ataJTp0506dIFk8nEkSNHuHjxInC7YZCnpyerVq3i\n5s2bGI1GLBZLujhKTk623wRSHImjSXsD9ODBg1y/fp34+Hh++eUXevbsSatWrahbty6HDh1i+/bt\n9n0g/SoFaVccUMIpj5KSTgdk+0KZOHEin3/+OTt37qRGjRr06NGDjRs3YrVaqVWrFmXKlGH79u3s\n3bsXuJ1sWq1We0fajRs3kpCQoJO7OLRp06bRrFkzbt26hZubG4GBgbz11lusW7cOi8VC/fr18fPz\nY+7cuVy6dMleKWCLw4iICL788ks9uykOxda0zhYHPj4+JCYmcu7cOVasWIGzszMdOnRg27ZtmEwm\nfHx8uHXrFmvXrmXp0qXA7cdCbPuPGDGCsLAwrly5kj0HJJLNjEYjx44do1mzZvTv35+LFy/So0cP\nKlSowMyZMwGoU6cOnp6eLF++nJSUFHtjO1ssHT16lDVr1tjfT+RR0ifKAdzZQfbQoUO8+OKL7N69\nG29vb1577TX+/PNPOnfuTL58+fj8888BeO2114iPj+fs2bOYzWacnZ0xGAz8+uuvBAYG8vvvv9/z\noXQRR2Eymdi9ezcLFizg448/xsnJiSJFihAYGEhSUpL94rhnz54UL16cfPny2W/SfPPNN9SuXZui\nRYvSuXNn3bwRh2JLFufNm8eAAQMwmUzMmjWLM2fO2BPH5557jpiYGPr27ctPP/3EwYMH6dWrV7oF\n6RctWkSdOnV46qmnmD17drqOzyKOJjIykqCgIJYvX46vry958uRh8ODBTJs2jRs3buDv70+5cuW4\ndu0a58+fB8DZ2Zlr167xwQcf0KFDB0qXLp3NRyFPKj3T+YS7s74fsJcsValShUGDBjF79myaNGnC\nkiVLWLJkCdOnT+eLL77Ax8eHM2fOULx4cQBiY2PtJYQTJ06kSJEi2XFIIjnGzZs3KVWqFN9//z3V\nq1fn2rVr5M2bl4SEBObOncuuXbuYNGlSupszV69epWXLlgQEBDB69Gjy5cuXjUcgkvWsVivXrl2j\nR48eJCQkEBERQWBgIABt27bF09OTadOmAXDmzBmmTZvGvn376Nu3L/Xq1QMgNTWVTz75hNjYWMaO\nHXtXh2iRJ9m9OsnGxsbSv39/pkyZgpeXF6mpqbi6umI2m+ncuTN58uRh2rRpXL9+HRcXF3vV2qxZ\ns5g2bRoRERG0bNkyOw5HHISKtZ9wTk5OmEwmBg8eTIkSJQgMDKRKlSp4eHgQEhJC8+bNSUxMxNPT\nky1bttCiRQs2bNjAyZMn8fHxsSeccLuT4HvvvUetWrWy8YhEso7tps29TvBms5lcuXLRtWtXZs+e\nTfXq1cmbNy+nTp3CarXy6quv8uKLL/LUU0/Z9zebzXh4eDB//nzdtBGHZSsvd3Z2Zvjw4QQEBLB7\n924KFizIlClTqFGjBj///DNLliyhY8eOjB492r6vrY+Aq6srvXr10k0bcRhxcXHMmTOHrl27Urhw\n4buWDvLx8WHXrl2cPHkSLy8vXF1dgds3Ovv06cO0adO4efMmbm5u9v1Onz6NxWJh06ZN9u1FMotm\nOp8wd34J7d27l379+hEUFISfnx8ffPAB27ZtIykpiYkTJzJ79mwAKlSogLOzM3v37r2rW5nWChRH\n8yDr1tqcPHmSli1b0rx5c5ydnZk7dy4ffvghnTp1yqrhiuRIf3fuOH/+vH2GpWXLlhw8eBCr1cqU\nKVOIiYnh22+/xcPDg6ioKPuMzL0qd0SedLbzT3R0NNOnT6dq1ar07Nkz3Ta267YpU6bwxRdfMGvW\nLPLnz8+AAQNo0aIF7dq10yMcku2UdD5B7nWC37hxI7GxsdSqVYvIyEguXLjA0qVL2b9/P5MmTcLP\nz4+dO3fSvHlzAgMDqVq1KnD3kioijuinn37ik08+oXr16vTv35/ChQvfc7u9e/eyfft2tm7dyr/+\n9S/8/f2zeKQiOce9lv65140bi8XC6dOn8fX1JSkpibFjx9K8eXNq1apFSkqKfW1bLUovAikpKUye\nPJlDhw7x4YcfUrp0aft1X9oYGTx4MBcvXmTXrl2EhIQwePBg+3voxo1kJyWdT4C0XyLx8fFMmDCB\npk2bUrt2bebNm8dnn32Gu7s7nTt3pnPnzvb99u3bxxdffEGVKlXsszKa1RRHlJF1a+9Fy5+Io0p7\nDrE9jxkZGUmuXLnuuf2tW7fYv38/48aNIzY2lm+//ZaiRYsCf5XS6pwkjubOc9KSJUuIiIigZs2a\nREdH0759ewYOHJhun7TXgjdu3ODWrVv28nNd20lO4BQZGRmZ3YOQh2O7sLV9kfzxxx8MGDCAGzdu\ncPDgQXbu3Em3bt2YOnUq8+bNo3HjxgD06NGDc+fO0aRJExo3bky1atUAfSmJY7pXgnjw4EEiIyNp\n2rQpHTt2xNfXl40bN5IrVy7Kly+fLk5s7eZttE6gODKDwUBqaioDBw5k1apVTJ48GRcXF+rWrXvP\nmzVnzpxh8uTJVKhQgdmzZ+Ph4ZHuvRRH4kisVivLly/HYDBQsGBB4uPjyZcvH6NGjWLEiBH06dMH\nq9XKoUOHyJs3L35+fvbKAtuMp8ViIVeuXLi6umIymey/E8lu+hQ+xmx3tL777juCg4Pp3bs3zzzz\nDHPnzmXw4MH8/PPPXLp0ib59+zJs2DA6depEzZo1uXbtGiEhIfb3sS2poi8lcUQZXbfW9vzzhg0b\n+PPPPxVH4lDMZjN3FkxFRUVx5MgRJk+ezNy5c5k8eTLnzp3DYDDctW2xYsWYNGkSH3zwAXA7rkQc\nkdlsxmAwYLFYaNWqFZ06daJLly6YTCb7qgMAzZs3x9PTk1WrVnHz5k2MRiMWi8W+v5OTE8nJyQD2\npe5EcgJdHT3GLl26xNtvv81//vMfIiIiuHLlCrGxsVy8eBFfX19CQ0MZOHAg7777Lp9++imBgYFM\nmjSJ+fPnU7hwYfvJXxfJ4kgyY93a2rVrs2nTJq1bKw7DYrFgtVrts/rx8fH23yUmJtK+fXvc3Nxo\n3749DRo0oH///sBfZYO2i2QXFxf7jRtbXIk4ErPZDPx1A9THx4fExETOnTvHihUrcHZ2pkOHxdit\n5QAAIABJREFUDmzbtg2TyYSPjw+3bt1i7dq19rWgjUajff8RI0YQFhZGYmJi9hyQyP+gbOMxZjab\nWb58OUWKFKFBgwa89957JCcn22dievbsyeHDh5k/fz7FixfnnXfe4YUXXsBqtdrviIk4ElspbVpG\no5GxY8fy6aefsmbNGi5dukS3bt0oVKgQLVu2ZOnSpcTFxeHn58eYMWNo2rQpTk5OxMbGEhoayvTp\n01m8eDH/+te/dANHnnjJycmkpKTYS9IvX77M66+/TpMmTRg6dCgJCQnkzp2brVu32vfp1q0bCxcu\nZN++fRiNRvv+tjjq1KkTcXFxanAiDsn2uZ83bx4DBgzAZDIxa9Yszpw5w5UrVwB47rnniImJoW/f\nvvz0008cPHiQXr160ahRI/v7LFq0iDp16vDUU08xe/Zs8ufPny3HI/K/qJFQDne/5yynT5/OjBkz\n2LlzJwAREREYjUY6deqEv78/+/fvJyAgwN5yXl0AxdHda93as2fP8tZbb9G8eXPCwsLw9PRk7dq1\n1KxZk379+tG6dWvq1KmT7n0++eQTAgMDtW6tOIwDBw6wePFievbsiZeXF1FRUZw4cYJKlSpRr149\nZsyYAcDQoUMJCgoiPDycBg0asHDhQv7v//6P4sWL89133wG3bwCNGDGC//znP4waNYqgoKDsPDSR\nbGG1Wrl27Ro9evQgISGBiIgIAgMDAWjbti2enp5MmzYN+Ksx1759++jbty/16tUDIDU1lU8++YTY\n2FjGjh2Lp6dnth2PyN/Rbfkcyla6lDbhvNf9gbfffhtvb2/Gjx8PwJtvvsnevXs5f/48AJUqVcLF\nxcVeUqiEUxzJnaW0e/fupXHjxuTOnRt3d3caNGhAbGwsly5donTp0vTr149cuXLh5+dHt27dcHJy\nYsKECekSTtt79uvXTwmnOITr168DULFiRSIiIrh27RoALi4ufPfddwQFBVG2bFm6devG7t27OXHi\nBBMnTmTHjh0EBQWRkJDA9OnT8fDw4MaNG2zatImAgAD8/PxYv369Ek5xWLZnMJ2dnRk+fDhVqlRh\n9+7dxMXFMWXKFFasWMHPP/9Mly5dOHnyJKNHj+bHH3+kXr169qZBrq6u9OrVi88//1wJp+RomunM\ngf5py/n169fTtWtXfvvtN7y8vIiNjaVkyZJZOWSRHEfr1opk3I4dO0hMTOTll1/m7Nmz/Pnnn/Tv\n35/33nuPZs2aERgYyDvvvEOnTp24efMmc+bMYcmSJaxcuRK4vfzQlStX6NWrFzVq1GDYsGEkJCTg\n6upK3rx5s/noRLLG31WtnT9/nlmzZjFt2jRatmzJwYMHsVqtTJkyhZiYGL799ls8PDyIioqyV61p\nvU15HCnpzKFSU1P58MMPuXLlCrNnz2bYsGEMHjz4f5bHvv/++7z22mu89NJL9p+plFYckdatFck4\n2/lj//79DBo0iBs3bpCQkMD69euJiooiMTGRyMhINm/eTO/evdmyZQseHh6cOXOGESNGEB4eTqlS\npdi5cyddu3YlPDycjh07ZvdhiWQp23Imaa/F7nVtZrFYOH36NL6+viQlJTF27FiaN29OrVq1SElJ\nwc3N7X/uK/K4UNKZA9xrncAxY8bw22+/sXjxYr799lvCw8PZs2cP3t7e9/zS0ReROLo77/z+8ccf\nhIeHYzAYcHZ2pnDhwgwYMICaNWuyZMkSqlSpAtxet7ZGjRp07do13fsp4RRHdGccJSYm0qBBA1xc\nXJgzZw5ly5YlNjaWQYMG0ahRI0JDQ2ndujWFChVi2rRpd52Lbt26ZZ+dEXEk/7Rq7datW+zfv59x\n48YRGxvLt99+S9GiRYHb13h3PnIl8rjRpzcbPaqW8/BX2d+dz7CJOAqtWyuScbY4Wr58OatWrcLJ\nyYmvvvqKihUrcuDAARITEylZsiR169blt99+IyYmhrFjx2IwGOwL0cNfy0Ao4RRHZTQaSU1NJTw8\nnOHDhzNmzBjGjh0L3LtHR3x8PDNnzqR69er8/vvv9oQTbl/j6ZwkjzunyMjIyOwehKNJTk7GYrHg\n4uJibznfoUMHJk6cyPnz56latSq7du3ixIkT9nbYBQsWpH///rRs2ZIiRYqQkpKCi4sLRqOR2NhY\n+vbty7PPPquHyMVhXbp0iXfffZe4uDi6devGhg0bMBqN1KhRg2LFipGcnMyXX37J+PHjefHFF7l5\n8yYdO3bk/fffx93d3T5Do4oBcTRplxKKjY3ljTfeYNeuXSQlJbFx40Zee+01kpKS2LBhA5UrV6Zg\nwYL4+/vzzTffkCdPHoKDg2nWrFm6i2JdIIujsS1Fl/YcMn78eKKjo+1VAiNGjCA0NBQPD4+7qgLy\n5s1rfxQEbndaVxzJk0Sf5ix24MABJkyYYF97KSoqisGDB1O/fn0WL17MtWvXGD16NP369WPt2rUs\nWLCACxcuEB0dTfXq1Rk6dCgAbm5umM1mIiMjCQ0NpVOnTvj4+GTnoYlkK61bK/LP2Gb1nZycuHLl\nCr///jsbN26kd+/eLF++nIsXL7Jy5UomT55MaGgoN2/eZPHixbz22musWrWK8ePHExoaan8/2+ym\niCN5VFVrLi4uODs7A7djyfZvkSeFks4sopbzIhn3d+XjhQsXZuTIkSxbtgyARo0aUaRIEdavX09M\nTAx58+Zl0aJFtGnTxr6P7U6zugCKI7LNoqxbt45WrVpx6tQpQkJCqFy5Mi+88AJPPfUUQ4YM4bff\nfiM2NpZhw4bh5ORE8eLFCQkJoUSJEkD65FXEUSQnJ5OSkmLvyXH58mVef/11mjRpwtChQ0lISCB3\n7txs3brVvk+3bt1YuHAh+/btw2g02vd3cnIiNjaWTp06ERcXp1iSJ5KSziywY8cONm3aBMDZs2c5\ndOgQPXv2ZPny5YSFheHn52f/UvL19eWNN95g4MCBBAUF8emnn7Jlyxa6dOnCkCFD8PX1JXfu3JQr\nV449e/bQsWNHlV/IE0/r1opkjgULFtC8eXNatGhBu3btyJcvH9u2bSMwMJBJkyZRtmxZjh8/zujR\no/Hx8WHgwIFMmjQJNzc3ewzqHCSORlVrIv+czhSZyHZCdnNzY8qUKTRq1IjmzZtTqlQp6tSpw7p1\n67h27RrDhg1j/PjxXL16lVy5ctGkSRNKlizJkSNHMJlMHD16lFdffZXXX3+dYcOGAfD0009rjTNx\nCLYOgAaDgTNnzvDhhx9y8+bNeyaMrq6u9O/fnxkzZnDx4kWqVKnCpEmTePHFF9Ntp4tkkdtCQ0Op\nUqUKly9ftv/M3d2dGTNmsGXLFkaOHEnr1q3p06cPkL5pnW7aiKNR1ZrIw9OSKZlALedFHi2tWyvy\ncGzno3stAWQymXB2dubHH3/kww8/ZPPmzbi7uwMwbtw4tm3bRuXKlRkyZEh2DF0kR9mxYweJiYm8\n/PLLnD17lj///JP+/fvz3nvv0axZMwIDA3nnnXfo1KkTN2/eZM6cOSxZsoSVK1cCcPnyZa5cuUKv\nXr2oUaMGw4YNIyEhAVdXV00iiEPQ7f5MoJbzIg/PbDbfVTobFRXFkSNHmDx5MnPnzmXy5MmcO3cO\ng8FwzzLbiRMnpks4QaW04lhs6/rZzkepqanpfgfYG5W8+uqr+Pv78/HHH9u3CQ8PZ+HChfaEU8tx\niaNS1ZrIo6GZzkck7exmbGwsXbt2xcXFhXLlyuHk5MSIESNYuHAhW7dupU+fPgQEBJCYmEi3bt0I\nCQlJ1wFQxBHZyvVsyWF8fDzFihUD4F//+hfVqlXjzTffBKBdu3YYDAYWLFhgn8FJ20Ew7XuqlFYc\nyfXr18mTJ4/99Zo1a/jkk0+oUKECNWvWtMeQje3cdfDgQWrVqsWRI0fSrQ94Z1yKOApVrYk8Wroa\nyyC1nBfJmMzsAKiEUxzJzJkziYiIIDk5GbhdDjhu3DhGjhxJ2bJlGTduHGvXrk23j5OTE2azmQoV\nKrBx48Z0CSdgj0sRR6OqNZFHS1dkGaSW8yIPTx0ARTLOZDIBULt2baKjo9m1axdwO77q169PTEwM\nU6ZMoV27dneVncNf559nnnkm6wYtkgOlvfEfGxtLw4YN+eyzz1i5ciUjRoygRIkSBAYGsmrVKi5c\nuABA69atSUhIYNOmTZQqVYrPPvss3Rqbuq4TuU1J5yOglvMi/4w6AIo8OrYL3LJly9K2bVtmzJjB\ntWvX8Pb2ZtSoUSxbtoy1a9fSt29frl27xpEjR4DbF9gWi8U+A7Np06Z0C9uLOApVrYlkPmU6j4Ba\nzos8OK1bK5Jxtota243LpUuX8tprr9GlSxf++OMPli9fjre3N6GhoVSrVo0CBQqwadMmmjdvzoED\nBzCZTDg5OWE0GtmxYweNGjXim2++wcvLKzsPSyRbqGpNJPM5RUZGRmb3IHI6s9lsb1RyZ5JoMpkw\nGo0UKlSISZMm0aFDB3LlykXp0qVxdnZm8eLFVKpUiaFDh1K4cOF0+yrhFEdia6qQkJDAmDFj+PLL\nL/nyyy/p168fZ8+e5fDhwwQGBlK6dGmGDBlChw4dyJMnD15eXuzZs4eyZcuSP39+9u/fz1tvvcU7\n77xjv5GTO3ducuXKlc1HKJK5zGYzqampuLi4YDQauXLlCm5ubgDExcWRkpLCyy+/jNVqZcmSJTRp\n0oSqVasSGRnJ2rVrmTdvHu+88w5t27bFaDSSkJBA3759Wbp0KVOnTqVt27a6WBaHtWDBAtq3b0+v\nXr3o0qULrq6urF69GqPRSFRUFGazmZkzZ3Ly5Enat29PYGAgTZs2xdnZ2X5+03WdyP+m7rV/w/af\nxvYlcuPGDXLnzm3/3Z1fLs2bN6dq1aoMHz4cuH3Hy2Kx2Euf1ElTHJE6AIpkXHJyMr/++isVK1ak\nVKlSXLx4kXfffZeaNWsycOBAtm/fTpcuXdi7dy8Abdq0oUaNGvTv35/k5GROnz5N2bJl0z1r9sUX\nX+Dj40PDhg2z67BEcpQ6derQqFEjBg0aBMCKFSt44403WLVqFVFRUZQvX55WrVpRuXJl+z66thN5\nMJrpvIfr16/j4uJiv2u1Zs0awsLC2L9/P5cvX6ZSpUrpLoJtM6FVq1alS5cuvP3223h4eGAwGOwz\npKDnNsUx2T73y5cv59SpU5QoUYJGjRpx7Ngx8ufPj7e3N0WKFCEhIYEtW7ZQoUIFXn75ZTZv3kyj\nRo3sCastzjQTI47Edv5wdXVl6dKlzJo1iyFDhuDt7U3r1q354YcfiI6OpkGDBhw9ehRPT098fX3x\n8vLik08+oWHDhnh5eVGoUCGMRiMmkwmr1YrRaKRatWqUKlUqm49QJGuoak0keynpvMPMmTNZtGgR\ntWvXJleuXOzYsYMRI0YwevRoUlNTmTx5MmXKlMHPz8++j9FoxGw2U7hwYZo2bUqZMmXSvadKLsTR\n2E7ucLsD4BtvvMGuXbtISkpi48aNvPbaayQlJbFhwwYqV65MwYIF8ff355tvviFPnjwEBwfTrFmz\ndDdqdNNGHI2tSsBgMHDr1i0uXLjA1KlT6dq1K3369MHb25uaNWsSHR3NyJEjsVgsNG/eHC8vL0qW\nLMlLL710V1JpNBoVS+JQ7mzYmJKSYq+WsVXS2H4XEBDAypUrOXHihL3T8wsvvECrVq3sr9WPQ+Th\nKOn8L9tdrjx58jBr1izKlStHyZIlWb16tb2xwrhx4+jQoQNvvfXWXfvbLg6KFCmS1UMXyTFsJ2Pb\n82Y7duxgz549BAcHExkZyYIFC9i0aRMpKSl069aN77//nnPnzhEVFUWePHno3LkzderUsb9f2uRV\nxNEYjUauXr3KwIED+fnnn3n77bfx9vbm8uXLFCpUiMKFC+Pp6clLL71ESkoK33zzDT4+PtSqVQuL\nxULBggWz+xBEso2q1kRyFiWd/2X7Enn66acxmUx89913NGrUiMuXL/Pee+9htVr5+uuvqVevHteu\nXePkyZMULFjQ3kHQ9pzMpk2bMBqN5MuXL9uORSS72E7g69atIywsDF9fX0JCQvD09KRx48aUKlWK\njh078tNPP1GrVi1efvll9u/fj9FoJCwsjAIFCgDpk1cRR3XixAneeOMNKlasSHh4OIULF6Z06dIs\nXrwYg8FAjRo17Ns+++yzFChQgDNnzhAcHKzYEYemqjWRnMehz0pqOS/y6GndWpFHIykpCYvFQu/e\nvTl16hS//PILSUlJvPPOO2zevJnBgwcTEhLCyZMnMRqN7N27l3z58il+xGGZTCYAateuTXR0NLt2\n7QLgwIED1K9fn5iYGKZMmUK7du3s5bJp2WYzn3nmmawbtIiDcL7/Jk8Ws9nMzZs3yZ07t30RYNus\npLu7O1WqVMHJyYl27dqxaNEixo4dS/fu3Wnfvj1bt27l6NGjvP/++7Rs2RKAhIQEPvzwQ2JjY/ns\ns8/UlEEcXmhoKNOnT7/nurWtW7cmKiqK1q1b06pVKyD9urW6WBb5S/Xq1cmfPz/NmzfnmWee4fTp\n02zevJlz586RkpLCwoULad++PX5+fsTExLBv3z5CQkKye9gi2cZWdVa2bFnatm3LjBkzqFGjBt7e\n3rz//vu8+uqrrF27lgIFCnDt2jXi4uIICAjAbDZjMBjsz3pu2rSJkiVLUqxYsew8HJEnikMtmaKW\n8yIZZ3t++V5JoslkwtnZmR9//JEPP/yQzZs34+7uDtx+Jnrbtm1UrlyZIUOGZMfQRXKMO5cSupMt\nvq5fv46bm5s91l577TUmTZpE8eLF7dveawkvEUdhiyVbHCxdupQvv/ySpUuX0rRpU7p06UL58uX5\n/PPP8ff3Jzw8nE2bNjFkyBDeffddQkJC7Nd1O3bsICIigvLlyzNu3DgtzyXyCDlE0ml7PsxgMDBm\nzBg2bdrEoUOHiIiIoEqVKkRFReHr60tYWBiDBg0iNDSUunXrsmHDBvr168fixYvx9fW1v5/JZMJg\nMGjpBnEoWrdW5NFIGy8bNmzAx8cHf3//e25769Ytbt26xWeffcbChQupW7cu48aNs59/FEfiiNJW\nrQHpqtZWr17N+vXrGTlyJPPmzeP7779n7NixXL9+nfbt2xMQEGCvWuvcuTOQvmptypQpqloTyQRP\nfNKZ9m7yrVu3WLp0Kd27d6d3797YeiidOXOGWbNmsXLlSgoWLMjYsWOpWLEiAMeOHbvrYXIRR3L9\n+nXy5Mljf71mzRo++eQTKlSoQM2aNXnzzTfTbW+LuYMHD1KrVi2OHDlC0aJF7b9PexNIxJGkTRA3\nb97MBx98QJEiRTCZTPTt25fatWvj7Ox8102cM2fOMHjwYN577710zYNEHJGq1kQeT09891q1nBd5\neOoAKPLoGAwGkpKScHV1Zdy4cYSFhTFw4EBGjx7NiRMn8Pf3x8fHJ118WK1WPD09adGiBUWLFsVi\nsaicVhySrcmPq6srS5cuZdasWQwZMgRvb29at27NDz/8QHR0NA0aNODo0aN4enri6+uLl5cXn3zy\nCQ0bNsTLy4tChQphNBoxmUxYrVaMRiPVqlXT7KZIJnvia3JOnDhBs2bNePrppxkyZAheXl689dZb\nnD17li1btqTb9t1332XUqFFcuHBBJUvi0NQBUCTjbHFgKyhKSEggNDSUvXv38umnn+Lk5ETlypVp\n1qwZ+fPnZ926dVy9etW+j625iU1qaipGo1HnJnE4tjU0DQYDt27dwt/fn40bN9KuXTvefvttqlev\nzujRozEajTRv3pxz587ZJw2CgoJYuHBhusek4HbTIT0mJZJ1nvgzl1rOi/xz9+oAeO3aNby9vRk1\nahTLli1j7dq19O3bl2vXrnHkyBHg9oWBxWJJ1wEwPj4+245DJDvZziNJSUkAXL16FR8fHzw8PDAa\njSxbtox+/foxZswYSpUqxZw5c1i/fj1wO+m0XRAvWLCArl27kpycnD0HIpLNnJycuHr1Kn369KFP\nnz4EBwczatQobt68aS+jLV68OMOGDSM0NJRdu3bx66+/Ardv/ugxKZHs98RnVmlbzi9cuJCZM2fy\nwgsvULt2bdq1a8fZs2fvajlfs2bN7B62SJbTurUiGWObnbSxWCzMmTOHdu3aAVCyZEmOHj3KunXr\nAHBzc+Pbb79l//79REdHExISQvXq1YHbCevOnTsJCQlh8+bNTJgwgQIFCmT5MYnkBKpaE3n8PdaN\nhNRyXiRj1AFQ5NFIew65fPkye/bsITAwELPZTJs2bfDz86Nv377s2bOHH3/8kRkzZnDu3DkGDRrE\nvn376N69O126dLG/17hx41izZg1Tp07VLI04vF27dvH++++zfPlyDh8+TEJCAuXLlycuLo7Zs2fj\n4+PDnj17mDhxoj3WvL29GTBgQHYPXUT+67FNOtVyXiRj1AFQ5NGLiopi2rRpvPDCC+TOnZvx48eT\nmprKnDlz2LJlCwEBAXh6ehIeHo7RaCQlJQUXF5d0XdZdXFw4f/48RYoUyeajEck5XnnlFZKTk3nm\n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\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x11c0a20d0>" | |
] | |
} | |
], | |
"prompt_number": 70 | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment