Skip to content

Instantly share code, notes, and snippets.

@thiagolcks
Created May 8, 2018 19:07
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 thiagolcks/8e1ed11c47bd074f04a4957fb48ae340 to your computer and use it in GitHub Desktop.
Save thiagolcks/8e1ed11c47bd074f04a4957fb48ae340 to your computer and use it in GitHub Desktop.
Questão 1 - Classificação
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Human Activity Recognition Using Smartphones"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:54.003798Z",
"start_time": "2018-05-08T18:07:50.012603Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"# load the libraries\n",
"import itertools\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import pandas as pd\n",
"from sklearn import svm\n",
"from sklearn.naive_bayes import GaussianNB, BernoulliNB\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.neural_network import MLPClassifier\n",
"from sklearn.metrics import accuracy_score, confusion_matrix, precision_score, recall_score\n",
"from sklearn.feature_selection import VarianceThreshold\n",
"\n",
"from xgboost import XGBClassifier\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1 - Preparando os Dados"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-17T19:49:26.061482Z",
"start_time": "2018-04-17T19:49:26.055307Z"
}
},
"source": [
"### 1.1 - Carregando e Analisando os Dados"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:56.507160Z",
"start_time": "2018-05-08T18:07:54.006400Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"X_train = pd.read_table(\"../data/UCI-HAR/train/X_train.txt\", sep='\\s+', header=None)\n",
"y_train = pd.read_table(\"../data/UCI-HAR/train/y_train.txt\", header=None, dtype='category')\n",
"\n",
"X_test = pd.read_table(\"../data/UCI-HAR/test/X_test.txt\", sep='\\s+', header=None)\n",
"y_test = pd.read_table(\"../data/UCI-HAR/test/y_test.txt\", header=None, dtype='category')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:56.522442Z",
"start_time": "2018-05-08T18:07:56.509540Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"labels = sorted(y_train[0].unique())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Após carregar os dados vamos conferir a sua estrutura:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:56.536372Z",
"start_time": "2018-05-08T18:07:56.526042Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(7352, 561)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train.shape"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:56.597327Z",
"start_time": "2018-05-08T18:07:56.539365Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>...</th>\n",
" <th>551</th>\n",
" <th>552</th>\n",
" <th>553</th>\n",
" <th>554</th>\n",
" <th>555</th>\n",
" <th>556</th>\n",
" <th>557</th>\n",
" <th>558</th>\n",
" <th>559</th>\n",
" <th>560</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.288585</td>\n",
" <td>-0.020294</td>\n",
" <td>-0.132905</td>\n",
" <td>-0.995279</td>\n",
" <td>-0.983111</td>\n",
" <td>-0.913526</td>\n",
" <td>-0.995112</td>\n",
" <td>-0.983185</td>\n",
" <td>-0.923527</td>\n",
" <td>-0.934724</td>\n",
" <td>...</td>\n",
" <td>-0.074323</td>\n",
" <td>-0.298676</td>\n",
" <td>-0.710304</td>\n",
" <td>-0.112754</td>\n",
" <td>0.030400</td>\n",
" <td>-0.464761</td>\n",
" <td>-0.018446</td>\n",
" <td>-0.841247</td>\n",
" <td>0.179941</td>\n",
" <td>-0.058627</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.278419</td>\n",
" <td>-0.016411</td>\n",
" <td>-0.123520</td>\n",
" <td>-0.998245</td>\n",
" <td>-0.975300</td>\n",
" <td>-0.960322</td>\n",
" <td>-0.998807</td>\n",
" <td>-0.974914</td>\n",
" <td>-0.957686</td>\n",
" <td>-0.943068</td>\n",
" <td>...</td>\n",
" <td>0.158075</td>\n",
" <td>-0.595051</td>\n",
" <td>-0.861499</td>\n",
" <td>0.053477</td>\n",
" <td>-0.007435</td>\n",
" <td>-0.732626</td>\n",
" <td>0.703511</td>\n",
" <td>-0.844788</td>\n",
" <td>0.180289</td>\n",
" <td>-0.054317</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.279653</td>\n",
" <td>-0.019467</td>\n",
" <td>-0.113462</td>\n",
" <td>-0.995380</td>\n",
" <td>-0.967187</td>\n",
" <td>-0.978944</td>\n",
" <td>-0.996520</td>\n",
" <td>-0.963668</td>\n",
" <td>-0.977469</td>\n",
" <td>-0.938692</td>\n",
" <td>...</td>\n",
" <td>0.414503</td>\n",
" <td>-0.390748</td>\n",
" <td>-0.760104</td>\n",
" <td>-0.118559</td>\n",
" <td>0.177899</td>\n",
" <td>0.100699</td>\n",
" <td>0.808529</td>\n",
" <td>-0.848933</td>\n",
" <td>0.180637</td>\n",
" <td>-0.049118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.279174</td>\n",
" <td>-0.026201</td>\n",
" <td>-0.123283</td>\n",
" <td>-0.996091</td>\n",
" <td>-0.983403</td>\n",
" <td>-0.990675</td>\n",
" <td>-0.997099</td>\n",
" <td>-0.982750</td>\n",
" <td>-0.989302</td>\n",
" <td>-0.938692</td>\n",
" <td>...</td>\n",
" <td>0.404573</td>\n",
" <td>-0.117290</td>\n",
" <td>-0.482845</td>\n",
" <td>-0.036788</td>\n",
" <td>-0.012892</td>\n",
" <td>0.640011</td>\n",
" <td>-0.485366</td>\n",
" <td>-0.848649</td>\n",
" <td>0.181935</td>\n",
" <td>-0.047663</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.276629</td>\n",
" <td>-0.016570</td>\n",
" <td>-0.115362</td>\n",
" <td>-0.998139</td>\n",
" <td>-0.980817</td>\n",
" <td>-0.990482</td>\n",
" <td>-0.998321</td>\n",
" <td>-0.979672</td>\n",
" <td>-0.990441</td>\n",
" <td>-0.942469</td>\n",
" <td>...</td>\n",
" <td>0.087753</td>\n",
" <td>-0.351471</td>\n",
" <td>-0.699205</td>\n",
" <td>0.123320</td>\n",
" <td>0.122542</td>\n",
" <td>0.693578</td>\n",
" <td>-0.615971</td>\n",
" <td>-0.847865</td>\n",
" <td>0.185151</td>\n",
" <td>-0.043892</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 561 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5 6 \\\n",
"0 0.288585 -0.020294 -0.132905 -0.995279 -0.983111 -0.913526 -0.995112 \n",
"1 0.278419 -0.016411 -0.123520 -0.998245 -0.975300 -0.960322 -0.998807 \n",
"2 0.279653 -0.019467 -0.113462 -0.995380 -0.967187 -0.978944 -0.996520 \n",
"3 0.279174 -0.026201 -0.123283 -0.996091 -0.983403 -0.990675 -0.997099 \n",
"4 0.276629 -0.016570 -0.115362 -0.998139 -0.980817 -0.990482 -0.998321 \n",
"\n",
" 7 8 9 ... 551 552 553 \\\n",
"0 -0.983185 -0.923527 -0.934724 ... -0.074323 -0.298676 -0.710304 \n",
"1 -0.974914 -0.957686 -0.943068 ... 0.158075 -0.595051 -0.861499 \n",
"2 -0.963668 -0.977469 -0.938692 ... 0.414503 -0.390748 -0.760104 \n",
"3 -0.982750 -0.989302 -0.938692 ... 0.404573 -0.117290 -0.482845 \n",
"4 -0.979672 -0.990441 -0.942469 ... 0.087753 -0.351471 -0.699205 \n",
"\n",
" 554 555 556 557 558 559 560 \n",
"0 -0.112754 0.030400 -0.464761 -0.018446 -0.841247 0.179941 -0.058627 \n",
"1 0.053477 -0.007435 -0.732626 0.703511 -0.844788 0.180289 -0.054317 \n",
"2 -0.118559 0.177899 0.100699 0.808529 -0.848933 0.180637 -0.049118 \n",
"3 -0.036788 -0.012892 0.640011 -0.485366 -0.848649 0.181935 -0.047663 \n",
"4 0.123320 0.122542 0.693578 -0.615971 -0.847865 0.185151 -0.043892 \n",
"\n",
"[5 rows x 561 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.141736Z",
"start_time": "2018-05-08T18:07:56.602920Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>...</th>\n",
" <th>551</th>\n",
" <th>552</th>\n",
" <th>553</th>\n",
" <th>554</th>\n",
" <th>555</th>\n",
" <th>556</th>\n",
" <th>557</th>\n",
" <th>558</th>\n",
" <th>559</th>\n",
" <th>560</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>...</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" <td>7352.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.274488</td>\n",
" <td>-0.017695</td>\n",
" <td>-0.109141</td>\n",
" <td>-0.605438</td>\n",
" <td>-0.510938</td>\n",
" <td>-0.604754</td>\n",
" <td>-0.630512</td>\n",
" <td>-0.526907</td>\n",
" <td>-0.606150</td>\n",
" <td>-0.468604</td>\n",
" <td>...</td>\n",
" <td>0.125293</td>\n",
" <td>-0.307009</td>\n",
" <td>-0.625294</td>\n",
" <td>0.008684</td>\n",
" <td>0.002186</td>\n",
" <td>0.008726</td>\n",
" <td>-0.005981</td>\n",
" <td>-0.489547</td>\n",
" <td>0.058593</td>\n",
" <td>-0.056515</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.070261</td>\n",
" <td>0.040811</td>\n",
" <td>0.056635</td>\n",
" <td>0.448734</td>\n",
" <td>0.502645</td>\n",
" <td>0.418687</td>\n",
" <td>0.424073</td>\n",
" <td>0.485942</td>\n",
" <td>0.414122</td>\n",
" <td>0.544547</td>\n",
" <td>...</td>\n",
" <td>0.250994</td>\n",
" <td>0.321011</td>\n",
" <td>0.307584</td>\n",
" <td>0.336787</td>\n",
" <td>0.448306</td>\n",
" <td>0.608303</td>\n",
" <td>0.477975</td>\n",
" <td>0.511807</td>\n",
" <td>0.297480</td>\n",
" <td>0.279122</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-0.999873</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>...</td>\n",
" <td>-1.000000</td>\n",
" <td>-0.995357</td>\n",
" <td>-0.999765</td>\n",
" <td>-0.976580</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.262975</td>\n",
" <td>-0.024863</td>\n",
" <td>-0.120993</td>\n",
" <td>-0.992754</td>\n",
" <td>-0.978129</td>\n",
" <td>-0.980233</td>\n",
" <td>-0.993591</td>\n",
" <td>-0.978162</td>\n",
" <td>-0.980251</td>\n",
" <td>-0.936219</td>\n",
" <td>...</td>\n",
" <td>-0.023692</td>\n",
" <td>-0.542602</td>\n",
" <td>-0.845573</td>\n",
" <td>-0.121527</td>\n",
" <td>-0.289549</td>\n",
" <td>-0.482273</td>\n",
" <td>-0.376341</td>\n",
" <td>-0.812065</td>\n",
" <td>-0.017885</td>\n",
" <td>-0.143414</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>0.277193</td>\n",
" <td>-0.017219</td>\n",
" <td>-0.108676</td>\n",
" <td>-0.946196</td>\n",
" <td>-0.851897</td>\n",
" <td>-0.859365</td>\n",
" <td>-0.950709</td>\n",
" <td>-0.857328</td>\n",
" <td>-0.857143</td>\n",
" <td>-0.881637</td>\n",
" <td>...</td>\n",
" <td>0.134000</td>\n",
" <td>-0.343685</td>\n",
" <td>-0.711692</td>\n",
" <td>0.009509</td>\n",
" <td>0.008943</td>\n",
" <td>0.008735</td>\n",
" <td>-0.000368</td>\n",
" <td>-0.709417</td>\n",
" <td>0.182071</td>\n",
" <td>0.003181</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.288461</td>\n",
" <td>-0.010783</td>\n",
" <td>-0.097794</td>\n",
" <td>-0.242813</td>\n",
" <td>-0.034231</td>\n",
" <td>-0.262415</td>\n",
" <td>-0.292680</td>\n",
" <td>-0.066701</td>\n",
" <td>-0.265671</td>\n",
" <td>-0.017129</td>\n",
" <td>...</td>\n",
" <td>0.289096</td>\n",
" <td>-0.126979</td>\n",
" <td>-0.503878</td>\n",
" <td>0.150865</td>\n",
" <td>0.292861</td>\n",
" <td>0.506187</td>\n",
" <td>0.359368</td>\n",
" <td>-0.509079</td>\n",
" <td>0.248353</td>\n",
" <td>0.107659</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.916238</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.967664</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>...</td>\n",
" <td>0.946700</td>\n",
" <td>0.989538</td>\n",
" <td>0.956845</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.998702</td>\n",
" <td>0.996078</td>\n",
" <td>1.000000</td>\n",
" <td>0.478157</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 561 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 \\\n",
"count 7352.000000 7352.000000 7352.000000 7352.000000 7352.000000 \n",
"mean 0.274488 -0.017695 -0.109141 -0.605438 -0.510938 \n",
"std 0.070261 0.040811 0.056635 0.448734 0.502645 \n",
"min -1.000000 -1.000000 -1.000000 -1.000000 -0.999873 \n",
"25% 0.262975 -0.024863 -0.120993 -0.992754 -0.978129 \n",
"50% 0.277193 -0.017219 -0.108676 -0.946196 -0.851897 \n",
"75% 0.288461 -0.010783 -0.097794 -0.242813 -0.034231 \n",
"max 1.000000 1.000000 1.000000 1.000000 0.916238 \n",
"\n",
" 5 6 7 8 9 \\\n",
"count 7352.000000 7352.000000 7352.000000 7352.000000 7352.000000 \n",
"mean -0.604754 -0.630512 -0.526907 -0.606150 -0.468604 \n",
"std 0.418687 0.424073 0.485942 0.414122 0.544547 \n",
"min -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 \n",
"25% -0.980233 -0.993591 -0.978162 -0.980251 -0.936219 \n",
"50% -0.859365 -0.950709 -0.857328 -0.857143 -0.881637 \n",
"75% -0.262415 -0.292680 -0.066701 -0.265671 -0.017129 \n",
"max 1.000000 1.000000 0.967664 1.000000 1.000000 \n",
"\n",
" ... 551 552 553 554 \\\n",
"count ... 7352.000000 7352.000000 7352.000000 7352.000000 \n",
"mean ... 0.125293 -0.307009 -0.625294 0.008684 \n",
"std ... 0.250994 0.321011 0.307584 0.336787 \n",
"min ... -1.000000 -0.995357 -0.999765 -0.976580 \n",
"25% ... -0.023692 -0.542602 -0.845573 -0.121527 \n",
"50% ... 0.134000 -0.343685 -0.711692 0.009509 \n",
"75% ... 0.289096 -0.126979 -0.503878 0.150865 \n",
"max ... 0.946700 0.989538 0.956845 1.000000 \n",
"\n",
" 555 556 557 558 559 \\\n",
"count 7352.000000 7352.000000 7352.000000 7352.000000 7352.000000 \n",
"mean 0.002186 0.008726 -0.005981 -0.489547 0.058593 \n",
"std 0.448306 0.608303 0.477975 0.511807 0.297480 \n",
"min -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 \n",
"25% -0.289549 -0.482273 -0.376341 -0.812065 -0.017885 \n",
"50% 0.008943 0.008735 -0.000368 -0.709417 0.182071 \n",
"75% 0.292861 0.506187 0.359368 -0.509079 0.248353 \n",
"max 1.000000 0.998702 0.996078 1.000000 0.478157 \n",
"\n",
" 560 \n",
"count 7352.000000 \n",
"mean -0.056515 \n",
"std 0.279122 \n",
"min -1.000000 \n",
"25% -0.143414 \n",
"50% 0.003181 \n",
"75% 0.107659 \n",
"max 1.000000 \n",
"\n",
"[8 rows x 561 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train.describe()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.149095Z",
"start_time": "2018-05-08T18:07:58.144029Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(7352, 1)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_train.shape"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.172988Z",
"start_time": "2018-05-08T18:07:58.153024Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0\n",
"0 5\n",
"1 5\n",
"2 5\n",
"3 5\n",
"4 5"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_train.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.200804Z",
"start_time": "2018-05-08T18:07:58.175887Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>7352</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>1407</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0\n",
"count 7352\n",
"unique 6\n",
"top 6\n",
"freq 1407"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_train.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Vamos conferir quais são as classes disponíveis:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.213041Z",
"start_time": "2018-05-08T18:07:58.204487Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"['1', '2', '3', '4', '5', '6']"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"labels"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-17T20:08:35.976687Z",
"start_time": "2018-04-17T20:08:35.969185Z"
}
},
"source": [
"Isso bate com a documentação que indica os seguintes labels para cada classe:\n",
" \n",
"- 1: WALKING\n",
"- 2: WALKING_UPSTAIRS\n",
"- 3: WALKING_DOWNSTAIRS\n",
"- 4: SITTING\n",
"- 5: STANDING\n",
"- 6: LAYING"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-17T20:10:49.923595Z",
"start_time": "2018-04-17T20:10:49.917327Z"
}
},
"source": [
"### 1.2 - Limpeza de Dados e Seleção de Features"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Primeiro vamos conferir se há algum valor Null no dataframe:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.235889Z",
"start_time": "2018-05-08T18:07:58.216625Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train.isnull().values.any()"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-17T20:15:44.964605Z",
"start_time": "2018-04-17T20:15:44.953723Z"
}
},
"source": [
"Não havendo valores nulos, e eu não sendo capaz de examinar cada uma das 561 features, não vejo nenhuma limpeza necessária, nem mesmo seleção manual de features. Vamos testar com o uso do VarianceThreshold."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.730777Z",
"start_time": "2018-05-08T18:07:58.241144Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(7352, 99)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sel = VarianceThreshold(.8 * (1 - .8))\n",
"fs_features = sel.fit(X_train).get_support(indices=True)\n",
"X_train_fs = X_train[fs_features]\n",
"X_test_fs = X_test[fs_features]\n",
"X_train_fs.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Foi uma grande redução, vamos ver se traz alguma melhoria nos algoritmos."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.3 - Normalização\n",
"\n",
"Como podemos ver, todos os valores estão na mesma escala, entre -1 e 1, então não vejo necessidade de nenhuma alteração."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.828158Z",
"start_time": "2018-05-08T18:07:58.737806Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Confere se há algum valor menor que 1\n",
"(X_train.min() < -1).any()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:58.906005Z",
"start_time": "2018-05-08T18:07:58.830971Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Confere se há algum valor maior que 1\n",
"(X_train.max() > 1).any()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.4 - Balanceamento\n",
"\n",
"Vamos começar vendo quantas entradas temos para cada classe:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:59.284600Z",
"start_time": "2018-05-08T18:07:58.908989Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10636f1d0>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y_train[0].value_counts().plot(kind='bar')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:59.302271Z",
"start_time": "2018-05-08T18:07:59.288477Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"421"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_train[0].value_counts()['6'] - y_train[0].value_counts()['3'] "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Há uma diferença de 421 entradas entre a classe com mais e a com menos entradas. Não creio que justifique o uso de qualquer técnica de balanceamento."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2 - Treinamento"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.0 - Helper Functions"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:59.316223Z",
"start_time": "2018-05-08T18:07:59.304751Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"def plot_confusion_matrix(cm, classes,\n",
" normalize=False,\n",
" title='Confusion matrix',\n",
" cmap=plt.cm.Blues):\n",
" \"\"\"\n",
" This function prints and plots the confusion matrix.\n",
" Normalization can be applied by setting `normalize=True`.\n",
" \"\"\"\n",
" if normalize:\n",
" cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
" print(\"Normalized confusion matrix\")\n",
" else:\n",
" print('Confusion matrix, without normalization')\n",
"\n",
" plt.figure()\n",
" plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
" plt.title(title)\n",
" plt.colorbar()\n",
" tick_marks = np.arange(len(classes))\n",
" plt.xticks(tick_marks, classes, rotation=45)\n",
" plt.yticks(tick_marks, classes)\n",
"\n",
" fmt = '.2f' if normalize else 'd'\n",
" thresh = cm.max() / 2.\n",
" for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
" plt.text(j, i, format(cm[i, j], fmt),\n",
" horizontalalignment=\"center\",\n",
" color=\"white\" if cm[i, j] > thresh else \"black\")\n",
"\n",
" plt.tight_layout()\n",
" plt.ylabel('True label')\n",
" plt.xlabel('Predicted label')\n",
" plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:59.326662Z",
"start_time": "2018-05-08T18:07:59.319428Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"def report(y_real, y_pred):\n",
" print(\"{} Erros de {} entradas\".format((y_real != y_pred).sum(), y_real.shape))\n",
" print(\"Acurácia: {}\".format(accuracy_score(y_real, y_pred)))\n",
" print(\"Precisão:\")\n",
" print(precision_score(y_real, y_pred, average=None))\n",
" print(\"Sensibilidade:\")\n",
" print(recall_score(y_real, y_pred, average=None))\n",
" plot_confusion_matrix(confusion_matrix(y_real, y_pred), labels)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:59.342576Z",
"start_time": "2018-05-08T18:07:59.334374Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"def full_report(y_train, y_train_pred, y_test, y_test_pred):\n",
" print(\"TRAIN DATASET\")\n",
" report(y_train, y_train_pred)\n",
" print(\"\")\n",
" print(\"TEST DATASET\")\n",
" report(y_test, y_test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:59.353348Z",
"start_time": "2018-05-08T18:07:59.347657Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"def resumed_report(y_train, y_train_pred, y_test, y_test_pred):\n",
" print(\"Acurácia: {}\".format(accuracy_score(y_train, y_train_pred)))\n",
" print(\"Acurácia: {}\".format(accuracy_score(y_test, y_test_pred)))"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-17T20:42:57.882639Z",
"start_time": "2018-04-17T20:42:57.876992Z"
}
},
"source": [
"### 2.1 - Naive Bayes"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:07:59.687908Z",
"start_time": "2018-05-08T18:07:59.358384Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"nb = BernoulliNB()\n",
"y_train_pred = nb.fit(X_train, y_train[0]).predict(X_train)\n",
"y_test_pred = nb.predict(X_test) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<B>Resultado</b>"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:00.407079Z",
"start_time": "2018-05-08T18:07:59.690439Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TRAIN DATASET\n",
"1025 Erros de (7352,) entradas\n",
"Acurácia: 0.860582154515778\n",
"Precisão:\n",
"[0.91168353 0.76415826 0.84090909 0.84210526 0.80230196 1. ]\n",
"Sensibilidade:\n",
"[0.80831974 0.91798695 0.78803245 0.77138414 0.86244541 0.99289268]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"TEST DATASET\n",
"442 Erros de (2947,) entradas\n",
"Acurácia: 0.8500169664065151\n",
"Precisão:\n",
"[0.75462185 0.83168317 0.85273973 0.88305489 0.80133556 1. ]\n",
"Sensibilidade:\n",
"[0.90524194 0.89171975 0.59285714 0.75356415 0.90225564 1. ]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"full_report(y_train[0], y_train_pred, y_test[0], y_test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:00.467676Z",
"start_time": "2018-05-08T18:08:00.409658Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"nb_score = nb.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-17T21:21:20.342197Z",
"start_time": "2018-04-17T21:21:20.327273Z"
}
},
"source": [
"Notas: A precisão da classe 4 e a sensibilidade das classes 3 e 6 estão baixas. E a classe 6, mesmo sendo a que contém maior quantidade de entradas está com uma sensibilidade bem baixa, o algoritmo está classificando 40% delas como classe 4."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Agora testando com a seleção de features:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:00.627554Z",
"start_time": "2018-05-08T18:08:00.470385Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0.7702748557855447"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nb = BernoulliNB()\n",
"y_train_pred = nb.fit(X_train_fs, y_train[0]).predict(X_train_fs)\n",
"y_test_pred = nb.predict(X_test_fs)\n",
"nb.score(X_test_fs, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ok, pelo visto os features removidos tinham a sua importância. Vamos ver se esse padrão se repete com os outros algoritmos."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.2 - Ensemble - Random Forest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Para o RandomForest eu vou explorar o número de estimadores:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:01.674838Z",
"start_time": "2018-05-08T18:08:00.631843Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9990478781284005, 0.9107567017305734)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# n_estimators=10 is the default\n",
"rf = RandomForestClassifier(random_state=0, n_jobs=-1)\n",
"rf.fit(X_train, y_train[0])\n",
"rf.score(X_train, y_train), rf.score(X_test, y_test)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:03.401104Z",
"start_time": "2018-05-08T18:08:01.678296Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9998639825897715, 0.9148286392941974)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf = RandomForestClassifier(random_state=0, n_jobs=-1, n_estimators=20)\n",
"rf.fit(X_train, y_train[0])\n",
"rf.score(X_train, y_train), rf.score(X_test, y_test)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:06.157732Z",
"start_time": "2018-05-08T18:08:03.405717Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(1.0, 0.9185612487275195)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf = RandomForestClassifier(random_state=0, n_jobs=-1, n_estimators=40)\n",
"rf.fit(X_train, y_train[0])\n",
"rf.score(X_train, y_train), rf.score(X_test, y_test)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:11.048872Z",
"start_time": "2018-05-08T18:08:06.162221Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(1.0, 0.9216152019002375)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf = RandomForestClassifier(random_state=0, n_jobs=-1, n_estimators=80)\n",
"rf.fit(X_train, y_train[0])\n",
"rf.score(X_train, y_train), rf.score(X_test, y_test)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:23.272972Z",
"start_time": "2018-05-08T18:08:11.051497Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(1.0, 0.9263657957244655)"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf = RandomForestClassifier(random_state=0, n_jobs=-1, n_estimators=160)\n",
"rf.fit(X_train, y_train[0])\n",
"rf.score(X_train, y_train), rf.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Mesmo dobrando a quantidade de estimadores, 0.92 continua sendo o melhor resultado para o dataset de validação."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:24.426764Z",
"start_time": "2018-05-08T18:08:23.276243Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TRAIN DATASET\n",
"0 Erros de (7352,) entradas\n",
"Acurácia: 1.0\n",
"Precisão:\n",
"[1. 1. 1. 1. 1. 1.]\n",
"Sensibilidade:\n",
"[1. 1. 1. 1. 1. 1.]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"TEST DATASET\n",
"217 Erros de (2947,) entradas\n",
"Acurácia: 0.9263657957244655\n",
"Precisão:\n",
"[0.88970588 0.90063425 0.95675676 0.90927835 0.9070632 1. ]\n",
"Sensibilidade:\n",
"[0.97580645 0.9044586 0.84285714 0.89816701 0.91729323 1. ]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAUsAAAEmCAYAAADr3bIaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4FOXax/HvnYRQpCpISUB6VYFQFUVERZBmQ5qKFXvXc+y9c14RxHKsqHgAsSEgTRQVpRdRioCCkgSkCdLB5X7/mElYINmdwO7Obrg/XHNld2Z25pdsuPPMszPPiKpijDEmtCS/AxhjTCKwYmmMMR5YsTTGGA+sWBpjjAdWLI0xxgMrlsYY44EVy6OIiBQXkTEiskVERh3BdvqKyKRIZvOLiJwuIr/4ncPEP7HzLOOPiPQB7gTqA1uBBcBTqjrtCLd7GXALcKqq/nPEQeOciChQR1VX+J3FJD5rWcYZEbkTeBF4GqgIVANeAbpHYPMnAMuOhkLphYik+J3BJBBVtSlOJqAMsA3oEWKdojjFNNudXgSKusvaAZnAXcA6YA1wpbvsMWAPsNfdx9XAo8CwoG1XBxRIcZ9fAfyG07pdCfQNmj8t6HWnArOBLe7XU4OWTQWeAL53tzMJKJ/P95aT/19B+c8HzgOWAZuA+4PWbwlMBza76w4BUt1l37rfy3b3++0ZtP1/A2uB93Pmua+p5e4jw31eBdgAtPP7d8Mm/ydrWcaXU4BiwKch1nkAaA00ARrjFIwHg5ZXwim6aTgF8WURKaeqj+C0VkeqaklVfStUEBE5BhgMdFLVUjgFcUEe6x0LjHPXPQ54ARgnIscFrdYHuBI4HkgF7g6x60o4P4M04GHgDeBSoBlwOvCwiNR01w0AdwDlcX52ZwE3AqhqW3edxu73OzJo+8fitLL7B+9YVX/FKaQfiEgJ4B1gqKpODZHXHCWsWMaX44ANGvowuS/wuKquU9X1OC3Gy4KW73WX71XVL3BaVfUOM88+4EQRKa6qa1R1UR7rdAaWq+r7qvqPqg4HlgJdg9Z5R1WXqepO4EOcQp+fvTj9s3uBETiFcJCqbnX3vwg4GUBV56rqDHe/q4D/Amd4+J4eUdXdbp4DqOobwHJgJlAZ54+TMVYs48xGoHyYvrQqwO9Bz3935+Vu46BiuwMoWdAgqrod59D1emCNiIwTkfoe8uRkSgt6vrYAeTaqasB9nFPM/gxavjPn9SJSV0TGishaEfkbp+VcPsS2Adar6q4w67wBnAi8pKq7w6xrjhJWLOPLdGAXTj9dfrJxDiFzVHPnHY7tQImg55WCF6rqRFU9B6eFtRSniITLk5Mp6zAzFcSrOLnqqGpp4H5Awrwm5OkfIlISpx/4LeBRt5vBGCuW8URVt+D0070sIueLSAkRKSIinUTkeXe14cCDIlJBRMq76w87zF0uANqKSDURKQPcl7NARCqKSDe373I3zuF8II9tfAHUFZE+IpIiIj2BhsDYw8xUEKWAv4Ftbqv3hoOW/wnUPORVoQ0C5qrqNTh9sa8dcUpTKFixjDOq+gLOOZYPAuuB1cDNwGfuKk8Cc4CFwE/APHfe4exrMjDS3dZcDixwSTifqmfjfEJ8Bu6HJwdtYyPQxV13I84n2V1UdcPhZCqgu3E+PNqK0+odedDyR4F3RWSziFwSbmMi0h3oiNP1AM77kCEifSOW2CQsOyndGGM8sJalMcZ4YMXSGGM8sGJpjDEeWLE0xhgP4mogAUktqVI8Pk9ra1L7eL8jJJxwJzyaxPH776vYsGFDRN/S5NInqP5zyEVU+dKd6yeqasdIZiiI+CqWxY+laJtQlw375/vRt/gdIU+BffF7NkNKsh24FBZtWjWP+Db1n50UrRf2jK5cuxa8HO7qrKiKq2JpjDmaCEji/EG1YmmM8YcAkjidNVYsjTH+sZalMcaEI5CU7HcIz6xYGmP8Y4fhxhgThmCH4cYYE55Yy9IYYzyxlqUxxnhgLUtjjAnHTko3xpjwEuyk9MQp63lIShKmv9Sbjx917rrarnE6PwzuxYyXejNlwMXUrFzmgPUvaFObnV/cSkad2A+KsWvXLk4/tRWtmjWhWeMTeeKxR2KeIZRXhgymZcbJtGh6Ei+/NMjvOLkmTZzAyY3q0ah+bQY8/6zfcQ5g2SJAkrxP4TYlskpEfhKRBSIyx513rIhMFpHl7tdy7nwRkcEiskJEFopIRrjtJ3SxvLl7E35ZvSn3+eCbz+TKARNpfctwRk79hXt7tchdVrJ4EW7s3phZS9fmtamoK1q0KOMnTWHm3AXMmDOfyZMmMmvmDF+yHGzxop8Z+vabTJ02g+mz5zPhi3GsWLHc71gEAgFuv/UmRo8Zz/yFixk1YjhLFi/2OxZg2SJDIDnZ++TNmaraRFVzRv64F5iiqnWAKe5zgE5AHXfqj3On0JAStlimHVeSji2q887ERbnzVKF0iVQASh9TlDWbtucue+Sy1rzw0Vx27fnnkG3FgohQsqRzu+y9e/eyd+/euDkE+WXpElq0bEWJEiVISUnhtNPbMmb0Z+FfGGWzZ82iVq3a1KhZk9TUVHr07MXYMaP9jgVYtojIOc8yQi3LfHQH3nUfv8v+20x3B95TxwygrIhUDrWhhC2WA65rywNvT2Nf0BBlNw6awqePdWPFe1fRp319/vPhXAAa16xAeoVSjJ+1yqe0jkAgQKvmTTkhrSJnnXU2LVu28jVPjgaNTuT7ad+xceNGduzYwcSJ48nKXO13LLKzs0hPr5r7PC0tnaysWNyOPDzLFiEi3icoLyJzgqb+B21NgUkiMjdoWUVVXQPgfs3pg0vDuXNqjkx3Xr6iVixF5G0RWSciP0d6251aVmfd5h3MX7H+gPm3nN+ECx75nNqXv837kxfzXP/TEYHn+5/Ov9/4LtIxCiw5OZmZc+azfOVq5syZzaKfI/6jOSz16zfgjrvuoXvnc7mg63mcdNLJpKT4/9lfXncelThpjVu2SJCCtiw3qGrzoOn1gzbYRlUzcA6xbxKRtqF3foiQg8NGs2U5FOcezBF3SsMqdGldk6XvXMF7/+5Iu5PT+eTRrpxUswKzf/kTgI++XUbrBpUpVTyVhiccx6TnLmLpO1fQsn4lPnq4iy8f8uQoW7Ysp7c9g8mTJviW4WD9rryaaTPmMHHKVMqVO5Zatev4HYm0tHQyg1q4WVmZVKlSxcdE+1m2CClYyzIkVc12v64DPgVaAn/mHF67X9e5q2cCVYNeng5kh9p+1Iqlqn4LbAq74mF4eOgP1L78bepfOZTLn5vA1IWZ9Hh8LKVLpFI7rSwA7ZtW45fVm/h7xx6q9n6D+lcOpf6VQ5m1dC0XPz6WecvXhdlLZK1fv57NmzcDsHPnTr7+agp169WPaYZQ1q9zfh6r//iDz0d/ysWX9PI5ETRv0YIVK5azauVK9uzZw6iRI+jcpZvfsQDLFjER6rMUkWNEpFTOY6AD8DPwOdDPXa0fkNN5+zlwufupeGtgS87hen58P9Zy+xac/oVi5Q57O4F9yk2DpzD8gfPYt0/ZvG031734ZYRSHrm1a9Zw7dVXsC8QYN++fVx4cQ/O69zF71i5+vbqwaZNGylSpAgvvPgS5cod/nsRKSkpKQwcNISunc8lEAjQ74qraNiokd+xAMsWER5bjB5VBD51uxtSgP+p6gQRmQ18KCJXA38APdz1vwDOA1YAO4Arw8bNq38jUkSkOjBWVU/0sn5SmWoar/fg2WT34CkwuwdP4dGmVXPmzp0T0Y7PpDJVtegpd3hef9fEu+YGnRIUc763LI0xR7G4/OApb1YsjTE+Saxrw6N56tBwYDpQT0Qy3T4DY4xxCM5tJbxOPotay1JVe0dr28aYwiCxWpZ2GG6M8Y/1WRpjjAfWsjTGGA+sZWmMMWGI9VkaY4w31rI0xpjw4nM0pLxZsTTG+MK5BY8VS2OMCU0ESbJiaYwxYVnL0hhjPLBiaYwxHlixNMaYcIS874QTp6xYGmN8IYi1LA/XSTUrMGnEDX7HyFONmz72O0Kefh1ykd8RjDlsViyNMcYDK5bGGOOBFUtjjAnHPuAxxpjwBCEpyUYdMsaYsOww3BhjvEicWmnF0hjjE7GWpTHGeGLF0hhjPLBiaYwxYdjljsYY41Xi1EoS5ySnfOzatYuOZ55K+zbNaNuqMc8//RgA3039inNOb8lZpzWn27ntWPnriphlShKY/OBZvH9zGwBevrol0x4/l6mPnMPAfs1ISd7/G3Jq3Qp8+dDZfPPoOXx69xkxyxhs2S+/cEqLprlT5fJleHnwi75kOdikiRM4uVE9GtWvzYDnn/U7zgEs2xFyP+DxOvkt4VuWRYsW5eMxkzimZEn27t1Lt3PbcdY5Hfn3nTczdPjH1K3XgHfeeI2B/3mGwa++FZNM155Vh+VrtlKqeBEAPpn5Bze9NQuAV69pSd/TavDuN79RungRnu3TlN6DvyNr007Klyoak3wHq1uvHtNnzwcgEAhQp0Y6Xbtf4EuWYIFAgNtvvYlx4yeTlp7Oaa1b0KVLNxo0bOh3NMsWIfFQBL1K+JaliHBMyZIA7N27l3/27s39S7Rt61YAtv69hUqVKsckT+WyxTn7pMp8MG1l7rwpP6/NfTx/1V9ULlccgAtbVmXc/CyyNu0EYMPW3THJGMrUr6ZQs2Ytqp1wgt9RmD1rFrVq1aZGzZqkpqbSo2cvxo4Z7XcswLJFiiSJ58lvCd+yBOcvaYczWrHyt1+58prryWjekv976b/0vbgbxYoXp2SpUnzx5bSYZHmiZ2Oe+HghJYsVOWRZSrJwcetqPDTiRwBqVixFkWThk7vO4JhiKbw5ZTmjZvwRk5z5+WjUCC6+pJevGXJkZ2eRnl4193laWjqzZs30MdF+li0yrGUJiEhVEflaRJaIyCIRuS1a+0pOTmbKtDnMX7yS+fPmsGTxz7z+8iA++Ohz5i9ZSa++/Xjk/nuitftc55xUmQ1bd7Pwj815Ln+2T1NmLNvAzBUbAKd4nnxCOS59aRq9B33HHZ0bUPP4klHPmZ89e/YwbuwYLrioh28ZgqnqIfPi5T+XZTtyBemvjIf80WxZ/gPcparzRKQUMFdEJqvq4mjtsEzZspx6Wlu+mjyRRT//REbzlgB0v7AHvS/qEq3d5mpR+zg6NK7MWSdWomiRZEoWT2HIVS24+e3Z3NWlAceVKso9w6bnrp/91042bdvDjj0BduwJMGP5BhpVLcNv67ZFPWteJk0YT5MmGVSsWNGX/R8sLS2dzMzVuc+zsjKpUqWKj4n2s2yREekiKCLJwBwgS1W7iEgNYARwLDAPuExV94hIUeA9oBmwEeipqqtCbTtqLUtVXaOq89zHW4ElQFqk97Nhw3q2bHZacjt37uS7qV9Rp159tv69hV9XLAPg26+nULdu/Ujv+hBPf/ozGf/+ghb3j+f6N2by/dL13Pz2bPqcVp12jSpxwxszCf6jP3FBNq1qlyc5SSiemkxGjWNZvmZr1HPmZ9SHI+jRMz4OwQGat2jBihXLWbVyJXv27GHUyBF07tLN71iAZYuUKLQsb8OpNTmeAwaqah3gL+Bqd/7VwF+qWhsY6K4XUkz6LEWkOtAUOKTjRET6A/0B0qtWK/C2161dw63XX01gX4B9+/bR7YKL6dCxM/8Z/CpXX9aTpKQkypQtx4tDXj+yb+IIPN83g8xNOxh7b3sAvpiXxQvjlrB87Va+XrSWrx8+h32qfDBtJUuz//Yl444dO/h6ymQGv/yaL/vPS0pKCgMHDaFr53MJBAL0u+IqGjZq5HcswLJFTAQbliKSDnQGngLuFKfCtgf6uKu8CzwKvAp0dx8DfAQMERHRvPowcrYfYllEiEhJ4BvgKVX9JNS6jZs200nfzIhqnsPV+O74/DQxnu/BkxwHn2CayGjTqjlz586J6BtatGIdTes7yPP6Kwd2nquqzfNbLiIfAc8ApYC7gSuAGW7rERGpCoxX1RNF5Gego6pmust+BVqp6ob8th/VU4dEpAjwMfBBuEJpjDnKFPyk9PIiMido6p+7KZEuwDpVnXvgHg6hHpblKWqH4W4T+C1giaq+EK39GGMSkwAF/HxnQ4iWZRugm4icBxQDSgMvAmVFJEVV/wHSgWx3/UygKpApIilAGWBTqJ1Hs2XZBrgMaC8iC9zpvCjuzxiTUISkJO9TKKp6n6qmq2p1oBfwlar2Bb4GLnZX6wfk9Kd97j7HXf5VqP5KiGLLUlWnkVCXyRtjYi0G50/+GxghIk8C83GOdnG/vi8iK3BalGFPAykUV/AYYxKQFPgw3BNVnQpMdR//BrTMY51dQIGuvrBiaYzxhUDYw+t4YsXSGOObOLiK0TMrlsYY38TDNd9eWbE0xvgjSn2W0WLF0hjjC+c8y8SpllYsjTE+iY+h17yyYmmM8U0C1UorlsYYn4idOmSMMWFZn6UxxniUQLXSiqUxxj/WsjTGGA8SqFbGV7FMEqFoSnzeynzBgPi8h8k5L37nd4R8fXVnW78jmHgm1rI0xpiwDmPwX19ZsTTG+MROSjfGGE8SqFZasTTG+MROSjfGmPDspHRjjPHIiqUxxniQQLXSiqUxxj/WsjTGmHBspHRjjAlP7DxLY4zxJoFqpRVLY4x/khKoWsbnqBUFkJm5mq6dzqJVxomc0vxkXnt5MAAP3f8vWjZtRJuWTbm010Vs2bzZt4yBQIBzTm/JZT3PP2D+A/fcTq20Y2OSITVZePOyJrx7RQbDrmrG1W1OcDJ0qstH/VsytF8GQ/tlUOf4Yw54XYNKJfnu7tM5s275mOQ82KSJEzi5UT0a1a/NgOef9SVDfizbkRPxPvkt4VuWKckpPPn0ABo3zWDr1q2ceVpL2rU/mzPbn80jjz9NSkoKjzx4Ly/851kee9KfX5o3Xn2JOvXqs3Xr37nzFsyfy5YtW2KWYU9AuWXEQnbu3UdykvBan8bM+G0TAC9P/Y2vl2045DVJAjeeUZOZK/+KWc5ggUCA22+9iXHjJ5OWns5prVvQpUs3GjRs6EseyxZZIpCcQFfwJHzLslLlyjRumgFAqVKlqFuvPmuys2h/dgdSUpy/BS1atiY7K8uXfNlZmUyZNJ4+l12ZOy8QCPDEQ/fx0ONPxzTLzr37AEhJElKSBQ2z/sUZaXy9bD1/7dgT/XB5mD1rFrVq1aZGzZqkpqbSo2cvxo4Z7UuWg1m2yBARz5Pf8i2WIlI61BTLkF798fsqFv64gGYtWh0wf9h773B2h46+ZHr4vrt58PFnSEra/6N++/VX6NCpMxUrVY5pliSBof0yGHfzKcxetZnFa7YC0L9tdd67IoNb29ekSLLzS1m+ZCpn1D2OzxasiWnGYNnZWaSnV819npaWTpZPf/QOZtkio7Achi8CFOcSzhw5zxWoFmrDIlIM+BYo6u7nI1V95IjShrBt2zYu73MJzzz/AqVL76/l/3neORS/pFefaO06X5MnjKN8hQo0bpLBD999A8DaNdmMGf0Jn4ydHPM8+xSueHceJYsm88wFjahZvgSvfbuKjdv3UCRZ+Pe5dbm0VVXe+eEPbm9fi1emrmRfuOZnFKkeuvN4aGGAZYsEwTl9KFHkWyxVtWp+yzzaDbRX1W0iUgSYJiLjVXXGEW73EHv37qVfnx706Nmbrt0vyJ0/fNh7TBo/js/GTfbll2XWzOlMGj+OKZMmsnv3LrZu/Zt2rZuSWrQopzR1+o927tjBKU0bMH3+kpjl2rY7wPw/NtOqxrEMn50JwN6AMu6ntfRpmQ5A/UqleLxbAwDKFC/CqTWPJbBP+XbFxpjlTEtLJzNzde7zrKxMqlSpErP9h2LZIiOBuiy9fcAjIr2Amqr6tIikAxVVdW6o16jz522b+7SIO0W8naKq3HLDtdSt14Cbbr0jd/6XkyYwaOAAxk74ihIlSkR6t5488MiTPPDIkwD88N03vDpkIO+P/OyAdWqlHRuTQlm2eBH+2bePbbsDpKYk0fyEcgybtZrjjkll43anT7JtneP4bf12AC5+fdb+76NTXX74dVNMCyVA8xYtWLFiOatWrqRKWhqjRo5g6Pv/i2mG/Fi2CIiTvkivwhZLERmCU+jaAk8DO4DXgBYeXpsMzAVqAy+r6sw81ukP9AdIrxryyD5PM6Z/z8jhw2jY6CROb90MgIcefYJ777mD3bt3c0FXp6+yectWDBz8SoG3X1gcVzKVh86rR5I457ZN+WU9P/y6iZd6nkzZEkUQYPm6bTw/abnfUXOlpKQwcNAQunY+l0AgQL8rrqJho0Z+xwIsW6QkUK1E8urfOGAFkXmqmiEi81W1qTvvR1Vt7HknImWBT4FbVPXn/NZrmtFcv552SD2NC7v2BvyOkKcL/xvxXo2IsRuWFR5tWjVn7tw5ES1t5ao31DMfet/z+p9e03yuqjaPZIaC8HLq0F4RScI9hBaR44B9BdmJqm4GpgL+fCRtjIlLifRpuJdi+TLwMVBBRB4DpgHPhXuRiFRwW5SISHHgbGDpEWQ1xhQykTrPUkSKicgsEflRRBa5tQoRqSEiM0VkuYiMFJFUd35R9/kKd3n1cFnD9lmq6nsiMhen2AH0CHUoHaQy8K7bb5kEfKiqYz28zhhzFIjwFTx5nn0D3AkMVNURIvIacDXwqvv1L1Wt7X6A/RzQM9QOvF7umAzsxTkU93TVj6ouBJp63L4x5igUqVIZ4uyb9kDOSdbvAo/iFMvu7mOAj4AhIiIa4kOcsIVPRB4AhgNVgHTgfyJyXwG/F2OMOUQBD8PLi8icoKn/QdtKFpEFwDpgMvArsFlV/3FXyQTS3MdpwGoAd/kW4LhQWb20LC8FmqnqDjfQUzinAz3j4bXGGJMnocAnpW8I9Wm4qgaAJkFn3zTIa7Wg3ee3LE9eDql/58CimgL85uF1xhiTvwK0Kgty8nrQ2TetgbIiklO/0oFs93EmUNWJISlAGWBTqO2GGkhjoIi8gHMS+iIReVNE3gB+AvwbHNIYU2hE6tShfM6+WQJ8DVzsrtYPyBl+6XP3Oe7yr0L1V0Low/CcT7wXAeOC5sfvWdDGmIQSwcsd8zz7RkQWAyNE5ElgPvCWu/5bwPsisgKnRdkr3A5CDaTxVn7LjDHmSB1Gn2W+8jv7RlV/A1rmMX8X0KMg+/BybXgt4CmgIVAsaGd1C7IjY4w5WCINpOHlA56hwDs4fwg6AR8CI6KYyRhzFBCBZBHPk9+8FMsSqjoRQFV/VdUHgTOjG8sYczRIpGvDvZxnuVuctvKvInI9kAUcH91YxpijQSIdhnsplncAJYFbcfouywBXRTOUMebokEC10tNAGjkDTG4FLotuHGPM0UIQkhKoWuZbLEXkU0Jc/qOqF0YlkTHm6BAnfZFehWpZDolZCleSQLHU5Fjv1pN4zRXPo5GnXT3c7wj5WjjoIr8j5Om4kql+R4ipQtFnqapTYhnEGHP08TTeY5zwOp6lMcZElFBIWpbGGBNthe6+4eDcs0JVd0czjDHm6BHh20pEnZeR0luKyE/Acvd5YxF5KerJjDGFnnMfe2+T37z0rw4GugAbAVT1R+xyR2NMBBS2yx2TVPX3gzpiA1HKY4w5SjhDtMVBFfTIS7FcLSItAXUH1rwFWBbdWMaYo0FhO3XoBpxD8WrAn8CX7jxjjDkiCdSw9HRt+Do8DLlujDEFIVJIrg3P4d6k7JBrxFW1fx6rG2OMZwlUKz11GXwJTHGn73HGsozb8y0nTZzAyY3q0ah+bQY8/6zfcQ5g2UJLEuHrxzvyvzsOvN792Uub8ft/L859fkq9Cnz12Ln8+XZPujavGtOMrU+uy1mnZtDh9Bacd+YpAPz11yZ6X9CJ05o1pPcFndi8+a+YZspLPLyfXhSqU4dUdWTQ9C5wIc79eOJOIBDg9ltvYvSY8cxfuJhRI4azZPFiv2MBls2L6zrUZVn2lgPmNal+LGVKFDlgXubGHdz85kw+nvF7LOPlGjVmEpO+m80XX08H4OWBA2jTtj3T5i6mTdv2vDxwgC+5csTL+xmO4JyU7nXy2+F8GFUDOCHSQSJh9qxZ1KpVmxo1a5KamkqPnr0YO2Z0+BfGgGULrUq54nRoXIVh3/yWOy9JhEd7NeHRkQsOWHf1hu0sXr2ZfftC3uY5ZiaNH0OP3pcC0KP3pUz84nNf88TD++lJAVqVcVArPV3B85eIbHKnzcBk4P7oRyu47Ows0tP3H5alpaWTlZXlY6L9LFtoT/XN4NEPF7Av6D7315xdhwnzs/hzy66YZglFBPpc2JlO7VozbOibAGxYt46KlSoDULFSZTauX+9nxLh4P72SAvzzW8gPeNx77zTGue8OwD5VLdCfc/fczDlAlqp2OayUHuUVLV5GNbFs+evQuAob/t7Nj6v+ok195/ZOlcoWp3vLanR7Jr5GCvx0wlQqVa7ChvXr6H3BedSuU8/vSIfw+/30KpL3DY+FkMVSVVVEPlXVZkewj9uAJUDpI9iGJ2lp6WRmrs59npWVSZUqVaK9W08sW/5a1a1Ax6ZpnH1yZYoWSaZU8SJ8//R57N4bYM7zzt/XEqkpzH6+Cy3+NTZmufJSqbLzcylf4Xg6dunOgnmzKX/88fy5dg0VK1Xmz7VrOK5CBV8z+v1+FkQiFUsvfZazRCTjcDYuIulAZ+DNw3l9QTVv0YIVK5azauVK9uzZw6iRI+jcpVssdh2WZcvfE6N+5KQ7RtP07jFc++oPfLfkT2rd+DENb/uMpnePoendY9ix5x/fC+WO7dvZtnVr7uNvv/qSeg0acU7HLowaPgyAUcOH0aFTVz9j+v5+FoSIeJ78FuoePCmq+g9wGnCtiPwKbMdpPauqeimgLwL/AkpFImw4KSkpDBw0hK6dzyUQCNDviqto2KhRLHYdlmWLnKY1juW9W0+nzDGpnNs0jXsvPIk2938R9f2uX/8n11x6CQCBwD+cf1Evzjz7XJpkNOf6K/swYtg7pKVX5bWh/t5OI1Hez0Q7DJf8uiBFZJ6qZohIrbyWq+qvITcs0gU4T1VvFJF2wN159VmKSH+gP0DVatWaLfvVn9NBTOTZPXgKLl7vwdOmVXPmzp0T0dJWtf5Jesfr3j+lv+uMWnNVtXkkMxREqD5LgfCX6bauAAAUs0lEQVRFMYQ2QDcROQ8oBpQWkWGqemnwSqr6OvA6QLNmzePjXBBjTEwUlssdK4jInfktVNUXQm1YVe8D7gMIalleGuo1xpijR6IdhocqlslASYiDE5yMMYWQkFxIWpZrVPXxSOxEVacCUyOxLWNM4eDc3dHvFN6F7bM0xpioiJPLGL0KVSzPilkKY8xRKZE+4Mn3pHRV3RTLIMaYo0vOYXgkblgmIlVF5GsRWSIii0TkNnf+sSIyWUSWu1/LufNFRAaLyAoRWejlwptEugWGMaaQSXJHS/cyhfEPcJeqNgBaAzeJSEPgXmCKqtbBGZP3Xnf9TkAdd+oPvBo26+F9i8YYc+Qi1bJU1TWqOs99vBVnPIo0oDvwrrvau8D57uPuwHvqmAGUFZHKofZhxdIY4wvBKUBeJ6C8iMwJmvK8tY2IVAeaAjOBiqq6BpyCinOnB3AK6eqgl2W68/Ll5e6OxhgTeVLgoeM2hLvcUURKAh8Dt6vq3yG2n9eCkFcQWsvSGOMbKcAUdlsiRXAK5Qeq+ok7+8+cw2v36zp3fiYQfAOndCA71PatWBpjfCFAsojnKeS2nCbkW8CSgy7F/hzo5z7uB4wOmn+5+6l4a2BLzuF6fuww3BjjmwieZtkGuAz4SURybtp0P/As8KGIXA38AfRwl30BnAesAHYAV4bbgRVLY4xPIjeor6pOI/+j9UMusHFvj3NTQfZhxdIY44ucT8MThRVLY4xv4uF2EV5ZsTTG+CZxSqUVSxNFiwbH560bAGr0fNnvCHn6a+wdfkeInYKfZ+krK5bGGF9Yn6UxxnhkLUtjjPGgsAz+a4wxUeMchidOtbRiaYzxTQIdhVuxNMb4RRBrWRpjTHjWsjTGmDCsz9IYY7zwcLuIeGLF0hjjGyuWxhjjQSJ9wJNIVxt5MmniBE5uVI9G9Wsz4Pln/Y5zAMvmXSAQ4JzTW3JZz/MPmP/APbdTK+3YmOdJShKmD+nLx491B6Bdk6r8MKQPM17uy5T/u4SalcsAULVCKSY8dzHTh/Rl1quXcm6L6jHPCvH3fuZFcE5K9zr5rVAVy0AgwO233sToMeOZv3Axo0YMZ8nixX7HAixbQb3x6kvUqVf/gHkL5s9ly5YtvuS5+fym/LJ6U+7zwTefxZXPTaD1TR8w8uul3NunFQD/7t2Kj79dxik3f8Dlz3zBoJvbxzxrPL6f+YngfcOjn9XvAJE0e9YsatWqTY2aNUlNTaVHz16MHTM6/AtjwLJ5l52VyZRJ4+lz2f6R/gOBAE88dB8PPf50zPOklS9JxxY1eGfCz7nzFKV0iVQASh9TlDUbtx8yv0zQ/FiKt/czFCnAP78Vqj7L7Ows0tP337AtLS2dWbNm+phoP8vm3cP33c2Djz/D9q1bc+e9/fordOjUmYqVKsc8z4Dr2vHAW99R0i2CADcO/JJPnzifXbv/4e8dezjjjhEAPDVsBmOeupAbujWhRLEidL7v45jnjbf3Mz85h+GJIqotSxFZJSI/icgCEZkTzX0BOLfVOCRDtHfriWXzZvKEcZSvUIHGTTJy561dk82Y0Z9w9XUFumVKRHRqWYN1m3cwf8W6A+bfcmFTLnjoM2pf9ibvT17Ec/3bAnBJu3oMm7yI2pe9yQUPf8Zb93SM+Se+8fR+hlaQdqX/+WPRsjxTVTfEYD+kpaWTmbk693lWViZVqlSJxa7DsmzezJo5nUnjxzFl0kR2797F1q1/0651U1KLFuWUpg0B2LljB6c0bcD0+UuinueURlXo0romHVtWp2iRFEqXSOWTx7tTL/1YZv+yFoCPvlnG6CcvAKDfuSfS/QHnltUzl6yhWGoK5UsXZ/2WnVHPmiOe3s+QEuw8y0LVZ9m8RQtWrFjOqpUr2bNnD6NGjqBzl25+xwIsm1cPPPIk8xb/xuyflvHaW+9zWtt2LP39TxYu+4PZPy1j9k/LKF6iREwKJcDD73xP7cvepH6/t7n82S+Y+uNqejz6OaWPKUrttLIAtM+olvvhz+p1f9OuaTUA6lU9lmKpyTEtlBBf72c4UoDJb9FuWSowSUQU+K+qvn7wCiLSH+gPULVatSPaWUpKCgMHDaFr53MJBAL0u+IqGjZqdETbjBTLVngE9ik3DZrM8Ae7sk+Vzdt2cd0LkwG4941veeW2c7jlggxUlWv/b2LM8yXK++n0WcZDGfRG8urfiNjGRaqoaraIHA9MBm5R1W/zW79Zs+b6/cyod22aGNm8fY/fEfJl9+ApmDatmjN37pyIVrYGJzXVdz792vP6p9QpN1dVm0cyQ0FE9TBcVbPdr+uAT4GW0dyfMSbBJNBxeNSKpYgcIyKlch4DHYCfQ7/KGHM0SaST0qPZZ1kR+NQ9ZSEF+J+qToji/owxCcb/Euhd1Iqlqv4GNI7W9o0xhUACVctCdQWPMSZxOF2RiVMtrVgaY/yRYCelW7E0xvgmgWqlFUtjjI8SqFpasTTG+CQ+BsjwyoqlMcY3idRnWagG0jDGJI6CXLzjpaaKyNsisk5Efg6ad6yITBaR5e7Xcu58EZHBIrJCRBaKSEb+W3ZYsTTG+EZEPE8eDAU6HjTvXmCKqtYBprjPAToBddypP/BquI1bsTTG+EbE+xSOO0jPpoNmdwfedR+/C5wfNP89dcwAyopIyGH4rVgaY3xTwMPw8iIyJ2jq72EXFVV1DYD79Xh3fhqwOmi9THdevuwDHmOMPwo+mtCGCA7RlteeQ45XaS1LY4xvYnAPnj9zDq/drzk3U8oEqgatlw5kh9qQFUtjjC+EyPZZ5uNzoJ/7uB8wOmj+5e6n4q2BLTmH6/mxw3ATNWWPSQ2/kk/idUTyci1u9jtCnnb/8kdUthvJ0yxFZDjQDqdvMxN4BHgW+FBErgb+AHq4q38BnAesAHYAVx6ywYNYsTTG+CeC1VJVe+ez6Kw81lWgQPdWtmJpjPGNXe5ojDEeJCVOrbRiaYzxkRVLY4wJzUZKN8YYL2ykdGOM8SaBaqUVS2OMjxKoWlqxNMb4xEZKN8YYT6zP0hhjwij4oEP+smJpjPFPAlXLQjfq0KSJEzi5UT0a1a/NgOef9TvOASxbwcVrLvA/29JxjzH7w/uZMeJepn3wLwAevrEzs0bex4wR9zLmlZuoXKEMAHdcfhYzRtzLjBH3MmfU/WybM5hypUvEPPPBkkQ8T34T53ry+NCsWXP9fuacw359IBDgpIZ1GTd+Mmnp6ZzWugXvDhtOg4YNI5jSsh3tuaKZrSCjDi0d9xht+j7Pxs3bc+eVOqYYW7fvAuDG3mdQv2Zlbn1qxAGvO6/tidzS90w6XfeS533t/uVD9u1YF9GKdXKTZjruqx88r1/tuGJzIzj4b4EVqpbl7FmzqFWrNjVq1iQ1NZUePXsxdszo8C+MActWeHJB/GbLKZQAJYoXJa/G0CUdm/PhhLmxjJW3AoxlGQcNy8JVLLOzs0hP3z/4cVpaOllZWT4m2s+yFVy85oL4yKaqjHnlZr7/4F9cdWGb3PmP3tSV5eOfoFen5jzx6rgDXlO8WBHOObUBn01ZENOs+YvkzXCjK6rFUkTKishHIrJURJaIyCnR3F9ef0U93kIz6ixbwcVrLoiPbO2vHMipfZ7j/Jtf4bqep9MmoxYAj748hjqdHmLE+Dlc37PtAa/p3PYkpi/4jb/+3hHTrHmJ0UjpERPtluUgYIKq1gcaA0uiubO0tHQyM/ffsC0rK5MqVapEc5eeWbaCi9dcEB/Z1qzfAsD6v7bx+VcLadGo+gHLPxw/m/PPanLAvB7nNmNUPByCuxKnXRnFYikipYG2wFsAqrpHVTdHa38AzVu0YMWK5axauZI9e/YwauQIOnfpFs1dembZCk8u8D9biWKplCxRNPfx2afUZ9Gv2dSqViF3nc5nnMyyVX/mPi9dshinNavNmKkLY5YznERqWUbzPMuawHrgHRFpDMwFblPV7cEruff+7Q9QtVq1I9phSkoKAwcNoWvncwkEAvS74ioaNmp0RNuMFMtWeHKB/9mOP64UI1+41smSnMzI8XOY/MMShv/nGuqccDz79il/rNl0wCfh3c5szJQZS9mxa0/McoaTSJc7Ru3UIRFpDswA2qjqTBEZBPytqg/l95ojPXXImEQXvzcsi/ypQ42bNtOJ38zwvH7lMqmF9tShTCBTVWe6zz8CMqK4P2NMgrE+S0BV1wKrRaSeO+ssYHG09meMSSwiiXUFT7SvDb8F+EBEUoHf8HBvXmPMUcT/GuhZVIulqi4AfOtjMMbEtwSqlTbqkDHGP3FwdO2ZFUtjjE9spHRjjAkr53LHRFGoBtIwxphosZalMcY3idSytGJpjPGN9VkaY0wYzknpfqfwzoqlMcY/ViyNMSY8Oww3xhgPEukDHjt1yBjjm0iOOiQiHUXkFxFZISL3RjqrFUtjjH8iVC1FJBl4GegENAR6i0hE75lsxdIY4xspwL8wWgIrVPU3Vd0DjAC6RzJrXPVZzps3d0PxIvJ7hDZXHtgQoW1FWrxmi9dcEL/Z4jUXRDbbCRHaTq758+ZOLJEq5QvwkmIiEnwrhddV9XX3cRqwOmhZJtDqSDMGi6tiqaoVwq/ljYjM8XMI+lDiNVu85oL4zRavuSC+swGoascIbi6vpmdE75ljh+HGmMIgE6ga9DwdyI7kDqxYGmMKg9lAHRGp4d6ZoRfweSR3EFeH4RH2evhVfBOv2eI1F8RvtnjNBfGdLaJU9R8RuRmYCCQDb6vqokjuI2q3wjXGmMLEDsONMcYDK5bGGOOBFUsT90QS6Qpi/4nIMX5nKIwKXbF0L3uKKyJSW0Sai0hRv7McTEQaicgZInKc31mCichpInIZgKpqPBVMEekqIrf5nSMvItIdeE5Ejvc7S2FTaIqliNQFUNVAPBVMEekCfAIMAIbm5IwHItIJGA7cAbwnIpV8joSIJIlISeC/wH0icj3kFkzff19FpAPwBLDY7ywHE5EzgOeA0aq6zu88hY3vv3yR4BakBSLyP4ifgikipwL/Afqp6pnAX0DER0M5HCLSDhgEXKOq5wN7gBN9DQWo6j5V3Qa8C7wFnCoid+Qs8zOb+36+D/RX1ckiUkZEThCREn7mCtIMeNPNVkVEzhGRViJSxu9ghUHCn2fp9s/cDNyO8x9rmKpemlMwVTXgc8RnVXW++/gR4A0RKaqqu/0MBfwJXKeqs9wWZSuc7sEewGTgY/X3vLJ/gGo4RfMaEXkB2A3cj3PKmx+FcyOwF6jsdlt8BOwEtonIh8THzyzVffwR8Ls7T0TkFlX9y7dkhUDCtyxVdTtwFfA/4G6ci+2Hucv8LpQzcQ7Bc/pSi+IMSFDanedbP6GqLlHVr92nVwOvuC3MGUAPnEEY/DQaWKuqU4A5wPVAaXX40sJU1V+AzsBA4Eec37kuwATgIqCcH7mCfAVcKyIjgDdUtTfOH+htOKPymCOQ8MUSQFWzVXWbqm4ArgOK5xRMEckQkfo+5Qqo6t/uUwE2A5tUdb2I9AWeFJHifmQLpqpPqeqT7uN3gFIceJ2tH3YC9UTkWpxC+SxQTUSu8zOUqv6IUyCfUdU33G6Dt3EKZTWfs/2M02BoBdRw5/2Gc0VLxAapOVol/GH4wVR1o/sfaoCILMX5RTnT51io6j84h2urReQZoANwharu9DOXiEjwoaOIXARUJMKDEBSUqmaLyGrgIeAmVR0jImcCK/zMBaCqiwn6gMf9mVUA1vgWar/xOK3JR0VyhztsivPHxhyBQnu5o/uhwL+Bc1T1pzjII0ARYIn79SxVXe5vqv3c05ouBe4EerqtFF+JSFXgeFWd6z5P8vtDnmDue3olTmuuR6SvRT4SIpIBXIzT9TM0Hv4PJLpCWSxFpBzwIXCXqi70O08wEbkCmB1P/7EARKQIcA7wq9s3FzcObv3GC7dYnoHTt7rU7zwmugplsQQQkWKqusvvHAeL1//4xpjQCm2xNMaYSCoUn4YbY0y0WbE0xhgPrFgaY4wHViyNMcYDK5aFhIgERGSBiPwsIqOOZHAHEWknImPdx91EJN/BP0SkrIjceBj7eFRE7vY6/6B1horIxQXYV3UR8f28UZPYrFgWHjtVtYmqnogzgtD1wQvFUeD3W1U/V9VQV3+UBQpcLI1JNFYsC6fvgNpui2qJiLwCzAOqikgHEZkuIvPcFmhJABHpKCJLRWQacGHOhkTkChEZ4j6uKCKfisiP7nQqzmV0tdxW7QB3vXtEZLaILBSRx4K29YCI/CIiXwL1wn0TInKtu50fReTjg1rLZ4vIdyKyzB2iDxFJFpEBQfv29TpyU7hYsSxkRCQF6ATkXN5WD3hPVZsC24EHgbNVNQNnNJ87RaQY8AbQFTgdyG8Q4MHAN6raGMgAFuGMz/mr26q9R5zBcevgjHLTBGgmIm1FpBnOvZyb4hTjFh6+nU9UtYW7vyU4oyPlqI5z9Uxn4DX3e7ga2KKqLdztXysiNTzsx5iwCt1AGkex4iKywH38Hc7AuVWA31V1hju/NdAQ+N65Uo9UYDpQH1iZc626O2JT/zz20R64HHKHv9viXloarIM75YzhWRKneJYCPlXVHe4+PvfwPZ0oIk/iHOqXxLkndI4P3evEl4vIb+730AE4Oag/s4y772Ue9mVMSFYsC4+dqtokeIZbELcHzwImu+McBq/XBIjUpVyCM3zZfw/ax+2HsY+hwPmq+qN7TX27oGUHb0vdfd+iqsFFFRGpXsD9GnMIOww/uswA2ohIbQARKSHOPYGWAjVEpJa7Xu98Xj8FuMF9bbKIlAa24rQac0wErgrqC00T5+ZZ3wIXiEhxESmFc8gfTilgjTvIR9+DlvUQ5349tYCawC/uvm9w10dE6ord6dBEiLUsjyLuoMNXAMNl/50mH1TVZSLSHxgnIhuAaeR9P57bgNdF5GogANygqtNF5Hv31Jzxbr9lA2C627LdBlyqqvNEZCSwAOd2B995iPwQzmjzv+P0wQYX5V+Ab3DG3rxeVXeJyJs4fZnz3BGB1gPne/vpGBOaDaRhjDEe2GG4McZ4YMXSGGM8sGJpjDEeWLE0xhgPrFgaY4wHViyNMcYDK5bGGOPB/wMDgw6RCfDgpAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y_train_pred = rf.predict(X_train)\n",
"y_test_pred = rf.predict(X_test)\n",
"full_report(y_train[0], y_train_pred, y_test[0], y_test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:24.672570Z",
"start_time": "2018-05-08T18:08:24.429779Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"rf_score = rf.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Vamos ver como fica utilizando o dataset com feature selection:"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:08:28.494627Z",
"start_time": "2018-05-08T18:08:24.675895Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(1.0, 0.9015948422124194)"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf = RandomForestClassifier(random_state=0, n_jobs=-1, n_estimators=160)\n",
"rf.fit(X_train_fs, y_train[0])\n",
"rf.score(X_train_fs, y_train), rf.score(X_test_fs, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Piorou 2,5%, não tão ruim quanto o NB."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.3 - Ensemble - Gradient Boosting"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Vou começar definindo a baseline com as configurações padrões do xGBoost:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:11:24.255603Z",
"start_time": "2018-05-08T18:08:28.497941Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/thiago/anaconda3/envs/uniritter/lib/python3.6/site-packages/sklearn/preprocessing/label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
" if diff:\n",
"/Users/thiago/anaconda3/envs/uniritter/lib/python3.6/site-packages/sklearn/preprocessing/label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
" if diff:\n"
]
},
{
"data": {
"text/plain": [
"(0.999455930359086, 0.9395995928062436)"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xgb = XGBClassifier()\n",
"xgb.fit(X_train, y_train[0])\n",
"y_train_pred = xgb.predict(X_train)\n",
"y_test_pred = xgb.predict(X_test)\n",
"accuracy_score(y_train, y_train_pred), accuracy_score(y_test, y_test_pred)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"93.95% é um bom avanço em relação aos 92.6% do Random Forest. Vamos testar aumentando o número de estimadores:"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:21:04.057371Z",
"start_time": "2018-05-08T18:11:24.262036Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/thiago/anaconda3/envs/uniritter/lib/python3.6/site-packages/sklearn/preprocessing/label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
" if diff:\n",
"/Users/thiago/anaconda3/envs/uniritter/lib/python3.6/site-packages/sklearn/preprocessing/label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
" if diff:\n"
]
},
{
"data": {
"text/plain": [
"(1.0, 0.9487614523243977)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xgb = XGBClassifier(n_jobs=-1, random_state=1, early_stopping_rounds=5, n_estimators=500)\n",
"xgb.fit(X_train, y_train[0])\n",
"y_train_pred = xgb.predict(X_train)\n",
"y_test_pred = xgb.predict(X_test)\n",
"accuracy_score(y_train, y_train_pred), accuracy_score(y_test, y_test_pred)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Quase 94.87% é um bom avanço!"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:21:05.064900Z",
"start_time": "2018-05-08T18:21:04.062837Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TRAIN DATASET\n",
"0 Erros de (7352,) entradas\n",
"Acurácia: 1.0\n",
"Precisão:\n",
"[1. 1. 1. 1. 1. 1.]\n",
"Sensibilidade:\n",
"[1. 1. 1. 1. 1. 1.]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"TEST DATASET\n",
"151 Erros de (2947,) entradas\n",
"Acurácia: 0.9487614523243977\n",
"Precisão:\n",
"[0.93857965 0.94218415 0.98258706 0.94481236 0.89417989 1. ]\n",
"Sensibilidade:\n",
"[0.9858871 0.93418259 0.94047619 0.87169043 0.95300752 1. ]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"full_report(y_train[0], y_train_pred, y_test[0], y_test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:21:05.080566Z",
"start_time": "2018-05-08T18:21:05.067669Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"xgb_score = accuracy_score(y_test, y_test_pred)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Testando o dataset com menos features:"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:22:59.713602Z",
"start_time": "2018-05-08T18:21:05.084973Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/thiago/anaconda3/envs/uniritter/lib/python3.6/site-packages/sklearn/preprocessing/label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
" if diff:\n",
"/Users/thiago/anaconda3/envs/uniritter/lib/python3.6/site-packages/sklearn/preprocessing/label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
" if diff:\n"
]
},
{
"data": {
"text/plain": [
"(1.0, 0.9233118425517476)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xgb = XGBClassifier(n_jobs=-1, random_state=1, early_stopping_rounds=5, n_estimators=500)\n",
"xgb.fit(X_train_fs, y_train[0])\n",
"y_train_pred = xgb.predict(X_train_fs)\n",
"y_test_pred = xgb.predict(X_test_fs)\n",
"accuracy_score(y_train, y_train_pred), accuracy_score(y_test, y_test_pred)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ok, 2.5% de diferença."
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-19T21:45:40.675802Z",
"start_time": "2018-04-19T21:45:40.669718Z"
}
},
"source": [
"### 2.4 - Rede Neural"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Antes de explocar qualquer parâmetro vamos ver qual é a nossa baseline:"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:23:03.981846Z",
"start_time": "2018-05-08T18:22:59.717046Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9881664853101197, 0.9450288428910757)"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp = MLPClassifier(random_state=3)\n",
"mlp.fit(X_train, y_train[0])\n",
"mlp.score(X_train, y_train), mlp.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Em relação ao RF, parece que ele teve um overfitting menor para o conjunto de treino mas obteve um resultado muito superior no conjunto de validação.\n",
"\n",
"Vamos começar explorando a quantidade de camadas e neurônios:"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:23:03.992403Z",
"start_time": "2018-05-08T18:23:03.985502Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"features = 561"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:23:38.612558Z",
"start_time": "2018-05-08T18:23:03.996187Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9767410228509249, 0.9443501866304717)"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp = MLPClassifier(hidden_layer_sizes=(2*features, int(features/2)), random_state=3)\n",
"mlp.fit(X_train, y_train[0])\n",
"mlp.score(X_train, y_train), mlp.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Com 2 camadas ele não mudou muito o resultado, vamos ver com mais camadas:"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:26:50.795540Z",
"start_time": "2018-05-08T18:23:38.617771Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9854461371055495, 0.9365456396335257)"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp = MLPClassifier(hidden_layer_sizes=(2*features, 3*features, 2*features, int(features/2)), random_state=3)\n",
"mlp.fit(X_train, y_train[0])\n",
"mlp.score(X_train, y_train), mlp.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Essa arquitetura com 4 camadas internas não ajudou muito.\n",
"\n",
"Vamos ver o que acontece com uma quantidade exata de features."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:27:11.105467Z",
"start_time": "2018-05-08T18:26:50.804689Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9865342763873776, 0.9409569053274517)"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp = MLPClassifier(hidden_layer_sizes=(features), random_state=3)\n",
"mlp.fit(X_train, y_train[0])\n",
"mlp.score(X_train, y_train), mlp.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-19T22:00:02.188418Z",
"start_time": "2018-04-19T22:00:02.179360Z"
}
},
"source": [
"Ainda não. E o que acontece se diminuirmos a quantidade para mennos de 100:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:27:15.170830Z",
"start_time": "2018-05-08T18:27:11.109091Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9895266594124048, 0.9504580929759077)"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp = MLPClassifier(hidden_layer_sizes=(50,), random_state=3)\n",
"mlp.fit(X_train, y_train[0])\n",
"mlp.score(X_train, y_train), mlp.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2018-04-19T22:02:37.239304Z",
"start_time": "2018-04-19T22:02:37.230272Z"
}
},
"source": [
"O resultado parece ser um pouco melhor do que com 100 neurônios."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:27:15.892738Z",
"start_time": "2018-05-08T18:27:15.174430Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TRAIN DATASET\n",
"77 Erros de (7352,) entradas\n",
"Acurácia: 0.9895266594124048\n",
"Precisão:\n",
"[1. 1. 1. 0.96250956 0.97930525 1. ]\n",
"Sensibilidade:\n",
"[1. 1. 1. 0.97822706 0.9643377 1. ]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"TEST DATASET\n",
"146 Erros de (2947,) entradas\n",
"Acurácia: 0.9504580929759077\n",
"Precisão:\n",
"[0.95472441 0.95503212 0.96626506 0.94193548 0.89222615 1. ]\n",
"Sensibilidade:\n",
"[0.97782258 0.94692144 0.9547619 0.89205703 0.94924812 0.97951583]\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y_train_pred = mlp.predict(X_train)\n",
"y_test_pred = mlp.predict(X_test)\n",
"full_report(y_train[0], y_train_pred, y_test[0], y_test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:27:15.917803Z",
"start_time": "2018-05-08T18:27:15.895802Z"
},
"collapsed": true
},
"outputs": [],
"source": [
"mlp_score = mlp.score(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Testando com o dataset com menos features (feature selection):"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:27:19.215678Z",
"start_time": "2018-05-08T18:27:15.921233Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9658596300326442, 0.9273837801153716)"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlp = MLPClassifier(hidden_layer_sizes=(50,), random_state=3)\n",
"mlp.fit(X_train_fs, y_train[0])\n",
"mlp.score(X_train_fs, y_train), mlp.score(X_test_fs, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Novamente inferior ao valor com o full dataset, mas valeu o experimento."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3 - Comparando os resultados"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-08T18:27:19.413926Z",
"start_time": "2018-05-08T18:27:19.219321Z"
}
},
"outputs": [
{
"data": {
"image/png": "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fvnlpusVcTeFvZjC2rVrCQ0NZf369W7b5+uvv47VamXr1q3s2rULKHi241YutyBSGN16KSXetm3b8Pf3JyIigujo6CtWOj19+jQvvvgiOTk5BAQEsHXrVjZu3EhycjJvvPEG3t7ersXpDhw4wPTp013r18yaNYt169Yxf/58Ll68SOPGjVm8eDExMTF88sknpKWlkZGRwdmzZ4mMjOTzzz/np59+Ytq0aQQHB7Nw4ULWr1+Pl5cXTZs2JTo6+hb2kpR0GtlLibdy5Up69OhBnTp1sFqtrgXVAObNm0e7du1499136dChA/n5+TidTl5++WXefPNN3n33XR588EHXU9XZ2dm89957dOnSBShYW37AgAE88cQTV62v7+Pjw9tvv81jjz3G5s2bmTdvHgMGDGD9+vUcPHiQDRs2sHz5cpYvX05aWhqbNm0qvk4R01HYS4l29uxZkpKSWLJkCf369cNut/Puu++62lNTU12L5V1a/CojIwObzeZaw/3BBx/khx9+AP5YYO1GNGzYEICyZcu6FnorV64c2dnZHD58mAceeIBSpUphsVho2rSp6xgiRlDYS4m2Zs0aunfvzsKFC3n77bdZsWIFycnJrtUxg4KC+Oabb4CC/y8ZChaEs9vtrnWAtm/fTu3atYE/Fli73KU1af7semub16lTh71795KXl4fT6WTHjh1/6ReJyF+lOXsp0VauXHnFOuO+vr489thjfPDBBwA8++yzjBo1ig0bNlClShW8vLywWCyuheAsFgvlypVj6tSphY68g4KCmDt3rmvJ5htRr149OnbsSK9evXA4HDRp0uSqNfxF3EnLJYipbd68mQoVKtCoUSO+/vpr5s2bx5IlS251WSJup5G9mFqNGjUYO3Ysnp6eOBwOxo0bd6tLEjGERvYiIiagC7QiIiagsBcRMQGFvYiICSjsRURMQGEvImICCnsRERP4f4Myl7zf+GoFAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set_style(\"whitegrid\")\n",
"ax = sns.barplot(x=\"Algoritimo\", y=\"Acurácia\", data=pd.DataFrame(data={\"Algoritimo\": [\"Naive Bayes\", \"Random Forest\", \"XGBoost\", \"MLP\"], \"Acurácia\": [nb_score, rf_score, xgb_score, mlp_score]}))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A comparação foi feita apenas com o dataset de validação. Todos os algoritmos tiveram um bom resultado (>0.8), E apesar do Random Forest ter conseguido uma acurácia de 100% no dataset de treino, o Multi Layer Perceptron conseguiu se destacar como o dataset de validação. "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:uniritter]",
"language": "python",
"name": "conda-env-uniritter-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment