-
-
Save vladimiralencar/005e724902d89856e8d22081323e97ed to your computer and use it in GitHub Desktop.
This file contains hidden or 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
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"df=pd.read_csv('clasd',index_col=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>WTT</th>\n", | |
" <th>PTI</th>\n", | |
" <th>EQW</th>\n", | |
" <th>SBI</th>\n", | |
" <th>LQE</th>\n", | |
" <th>QWG</th>\n", | |
" <th>FDJ</th>\n", | |
" <th>PJF</th>\n", | |
" <th>HQE</th>\n", | |
" <th>NXJ</th>\n", | |
" <th>TARGET CLASS</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0.913917</td>\n", | |
" <td>1.162073</td>\n", | |
" <td>0.567946</td>\n", | |
" <td>0.755464</td>\n", | |
" <td>0.780862</td>\n", | |
" <td>0.352608</td>\n", | |
" <td>0.759697</td>\n", | |
" <td>0.643798</td>\n", | |
" <td>0.879422</td>\n", | |
" <td>1.231409</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>0.635632</td>\n", | |
" <td>1.003722</td>\n", | |
" <td>0.535342</td>\n", | |
" <td>0.825645</td>\n", | |
" <td>0.924109</td>\n", | |
" <td>0.648450</td>\n", | |
" <td>0.675334</td>\n", | |
" <td>1.013546</td>\n", | |
" <td>0.621552</td>\n", | |
" <td>1.492702</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>0.721360</td>\n", | |
" <td>1.201493</td>\n", | |
" <td>0.921990</td>\n", | |
" <td>0.855595</td>\n", | |
" <td>1.526629</td>\n", | |
" <td>0.720781</td>\n", | |
" <td>1.626351</td>\n", | |
" <td>1.154483</td>\n", | |
" <td>0.957877</td>\n", | |
" <td>1.285597</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1.234204</td>\n", | |
" <td>1.386726</td>\n", | |
" <td>0.653046</td>\n", | |
" <td>0.825624</td>\n", | |
" <td>1.142504</td>\n", | |
" <td>0.875128</td>\n", | |
" <td>1.409708</td>\n", | |
" <td>1.380003</td>\n", | |
" <td>1.522692</td>\n", | |
" <td>1.153093</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1.279491</td>\n", | |
" <td>0.949750</td>\n", | |
" <td>0.627280</td>\n", | |
" <td>0.668976</td>\n", | |
" <td>1.232537</td>\n", | |
" <td>0.703727</td>\n", | |
" <td>1.115596</td>\n", | |
" <td>0.646691</td>\n", | |
" <td>1.463812</td>\n", | |
" <td>1.419167</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" WTT PTI EQW SBI LQE QWG FDJ \\\n", | |
"0 0.913917 1.162073 0.567946 0.755464 0.780862 0.352608 0.759697 \n", | |
"1 0.635632 1.003722 0.535342 0.825645 0.924109 0.648450 0.675334 \n", | |
"2 0.721360 1.201493 0.921990 0.855595 1.526629 0.720781 1.626351 \n", | |
"3 1.234204 1.386726 0.653046 0.825624 1.142504 0.875128 1.409708 \n", | |
"4 1.279491 0.949750 0.627280 0.668976 1.232537 0.703727 1.115596 \n", | |
"\n", | |
" PJF HQE NXJ TARGET CLASS \n", | |
"0 0.643798 0.879422 1.231409 1 \n", | |
"1 1.013546 0.621552 1.492702 0 \n", | |
"2 1.154483 0.957877 1.285597 0 \n", | |
"3 1.380003 1.522692 1.153093 1 \n", | |
"4 0.646691 1.463812 1.419167 1 " | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.preprocessing import StandardScaler" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"scaler=StandardScaler()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"StandardScaler(copy=True, with_mean=True, with_std=True)" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"scaler.fit(df.drop('TARGET CLASS',axis=1))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scaled_features=scaler.transform(df.drop('TARGET CLASS',axis=1))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[-0.12354188, 0.18590747, -0.91343069, ..., -1.48236813,\n", | |
" -0.9497194 , -0.64331425],\n", | |
" [-1.08483602, -0.43034845, -1.02531333, ..., -0.20224031,\n", | |
" -1.82805088, 0.63675862],\n", | |
" [-0.78870217, 0.33931821, 0.30151137, ..., 0.28570652,\n", | |
" -0.68249379, -0.37784986],\n", | |
" ..., \n", | |
" [ 0.64177714, -0.51308341, -0.17920486, ..., -2.36249443,\n", | |
" -0.81426092, 0.11159651],\n", | |
" [ 0.46707241, -0.98278576, -1.46519359, ..., -0.03677699,\n", | |
" 0.40602453, -0.85567 ],\n", | |
" [-0.38765353, -0.59589427, -1.4313981 , ..., -0.56778932,\n", | |
" 0.3369971 , 0.01034996]])" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"scaled_features" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"df_feat=pd.DataFrame(scaled_features,columns=df.columns[:-1])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>WTT</th>\n", | |
" <th>PTI</th>\n", | |
" <th>EQW</th>\n", | |
" <th>SBI</th>\n", | |
" <th>LQE</th>\n", | |
" <th>QWG</th>\n", | |
" <th>FDJ</th>\n", | |
" <th>PJF</th>\n", | |
" <th>HQE</th>\n", | |
" <th>NXJ</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>-0.123542</td>\n", | |
" <td>0.185907</td>\n", | |
" <td>-0.913431</td>\n", | |
" <td>0.319629</td>\n", | |
" <td>-1.033637</td>\n", | |
" <td>-2.308375</td>\n", | |
" <td>-0.798951</td>\n", | |
" <td>-1.482368</td>\n", | |
" <td>-0.949719</td>\n", | |
" <td>-0.643314</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>-1.084836</td>\n", | |
" <td>-0.430348</td>\n", | |
" <td>-1.025313</td>\n", | |
" <td>0.625388</td>\n", | |
" <td>-0.444847</td>\n", | |
" <td>-1.152706</td>\n", | |
" <td>-1.129797</td>\n", | |
" <td>-0.202240</td>\n", | |
" <td>-1.828051</td>\n", | |
" <td>0.636759</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>-0.788702</td>\n", | |
" <td>0.339318</td>\n", | |
" <td>0.301511</td>\n", | |
" <td>0.755873</td>\n", | |
" <td>2.031693</td>\n", | |
" <td>-0.870156</td>\n", | |
" <td>2.599818</td>\n", | |
" <td>0.285707</td>\n", | |
" <td>-0.682494</td>\n", | |
" <td>-0.377850</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>0.982841</td>\n", | |
" <td>1.060193</td>\n", | |
" <td>-0.621399</td>\n", | |
" <td>0.625299</td>\n", | |
" <td>0.452820</td>\n", | |
" <td>-0.267220</td>\n", | |
" <td>1.750208</td>\n", | |
" <td>1.066491</td>\n", | |
" <td>1.241325</td>\n", | |
" <td>-1.026987</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1.139275</td>\n", | |
" <td>-0.640392</td>\n", | |
" <td>-0.709819</td>\n", | |
" <td>-0.057175</td>\n", | |
" <td>0.822886</td>\n", | |
" <td>-0.936773</td>\n", | |
" <td>0.596782</td>\n", | |
" <td>-1.472352</td>\n", | |
" <td>1.040772</td>\n", | |
" <td>0.276510</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" WTT PTI EQW SBI LQE QWG FDJ \\\n", | |
"0 -0.123542 0.185907 -0.913431 0.319629 -1.033637 -2.308375 -0.798951 \n", | |
"1 -1.084836 -0.430348 -1.025313 0.625388 -0.444847 -1.152706 -1.129797 \n", | |
"2 -0.788702 0.339318 0.301511 0.755873 2.031693 -0.870156 2.599818 \n", | |
"3 0.982841 1.060193 -0.621399 0.625299 0.452820 -0.267220 1.750208 \n", | |
"4 1.139275 -0.640392 -0.709819 -0.057175 0.822886 -0.936773 0.596782 \n", | |
"\n", | |
" PJF HQE NXJ \n", | |
"0 -1.482368 -0.949719 -0.643314 \n", | |
"1 -0.202240 -1.828051 0.636759 \n", | |
"2 0.285707 -0.682494 -0.377850 \n", | |
"3 1.066491 1.241325 -1.026987 \n", | |
"4 -1.472352 1.040772 0.276510 " | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df_feat.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.cross_validation import train_test_split" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"X=df_feat\n", | |
"y=df['TARGET CLASS']\n", | |
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=101)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.neighbors import KNeighborsClassifier" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"knn=KNeighborsClassifier(n_neighbors=1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n", | |
" metric_params=None, n_jobs=1, n_neighbors=1, p=2,\n", | |
" weights='uniform')" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"knn.fit(X_train,y_train)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"pred=knn.predict(X_test)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.metrics import classification_report,confusion_matrix" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[[151 8]\n", | |
" [ 15 126]]\n", | |
" precision recall f1-score support\n", | |
"\n", | |
" 0 0.91 0.95 0.93 159\n", | |
" 1 0.94 0.89 0.92 141\n", | |
"\n", | |
"avg / total 0.92 0.92 0.92 300\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"print(confusion_matrix(y_test,pred))\n", | |
"print(classification_report(y_test,pred))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"errr=[]\n", | |
"\n", | |
"for i in range(1,40):\n", | |
" knn=KNeighborsClassifier(n_neighbors=i)\n", | |
" knn.fit(X_train,y_train)\n", | |
" pred_i=knn.predict(X_test)\n", | |
" errr.append(np.mean(pred_i!=y_test))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x2294e3f8048>]" | |
] | |
}, | |
"execution_count": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x2294e15dc88>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(10,6))\n", | |
"plt.plot(range(1,40),errr)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[0.076666666666666661,\n", | |
" 0.089999999999999997,\n", | |
" 0.050000000000000003,\n", | |
" 0.070000000000000007,\n", | |
" 0.056666666666666664,\n", | |
" 0.050000000000000003,\n", | |
" 0.066666666666666666,\n", | |
" 0.059999999999999998,\n", | |
" 0.050000000000000003,\n", | |
" 0.056666666666666664,\n", | |
" 0.053333333333333337,\n", | |
" 0.046666666666666669,\n", | |
" 0.050000000000000003,\n", | |
" 0.056666666666666664,\n", | |
" 0.056666666666666664,\n", | |
" 0.050000000000000003,\n", | |
" 0.050000000000000003,\n", | |
" 0.046666666666666669,\n", | |
" 0.050000000000000003,\n", | |
" 0.053333333333333337,\n", | |
" 0.050000000000000003,\n", | |
" 0.050000000000000003,\n", | |
" 0.063333333333333339,\n", | |
" 0.056666666666666664,\n", | |
" 0.056666666666666664,\n", | |
" 0.050000000000000003,\n", | |
" 0.050000000000000003,\n", | |
" 0.046666666666666669,\n", | |
" 0.059999999999999998,\n", | |
" 0.050000000000000003,\n", | |
" 0.056666666666666664,\n", | |
" 0.046666666666666669,\n", | |
" 0.053333333333333337,\n", | |
" 0.043333333333333335,\n", | |
" 0.046666666666666669,\n", | |
" 0.043333333333333335,\n", | |
" 0.046666666666666669,\n", | |
" 0.043333333333333335,\n", | |
" 0.050000000000000003]" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"errr" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[[153 6]\n", | |
" [ 9 132]]\n", | |
" precision recall f1-score support\n", | |
"\n", | |
" 0 0.94 0.96 0.95 159\n", | |
" 1 0.96 0.94 0.95 141\n", | |
"\n", | |
"avg / total 0.95 0.95 0.95 300\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"knn=KNeighborsClassifier(n_neighbors=17)\n", | |
"knn.fit(X_train,y_train)\n", | |
"pred=knn.predict(X_test)\n", | |
"print(confusion_matrix(y_test,pred))\n", | |
"print(classification_report(y_test,pred))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"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.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment