├── ANN+for+Human+Activity+Recognition.ipynb ├── README.md ├── RFC+for+Human+Activity+Recognition.ipynb ├── SVM+for+Human+Activity+Recognition.ipynb ├── Visualizations+for+Human+Activity+Recognition.ipynb └── kNN+for+Human+Activity+Recognition.ipynb /ANN+for+Human+Activity+Recognition.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "import numpy as np" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 2, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "xtrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/X_train.txt',delim_whitespace=True,header=None)" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 3, 25 | "metadata": {}, 26 | "outputs": [], 27 | "source": [ 28 | "xtest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/X_test.txt',delim_whitespace=True,header=None)" 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 4, 34 | "metadata": {}, 35 | "outputs": [], 36 | "source": [ 37 | "ytrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/y_train.txt',header=None)" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 5, 43 | "metadata": {}, 44 | "outputs": [], 45 | "source": [ 46 | "ytest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/y_test.txt',header=None)" 47 | ] 48 | }, 49 | { 50 | "cell_type": "code", 51 | "execution_count": 6, 52 | "metadata": {}, 53 | "outputs": [], 54 | "source": [ 55 | "xtrain=xtrain.values #converting into array" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": 7, 61 | "metadata": {}, 62 | "outputs": [ 63 | { 64 | "data": { 65 | "text/plain": [ 66 | "array([[ 0.28858451, -0.02029417, -0.13290514, ..., -0.84124676,\n", 67 | " 0.17994061, -0.05862692],\n", 68 | " [ 0.27841883, -0.01641057, -0.12352019, ..., -0.8447876 ,\n", 69 | " 0.18028889, -0.05431672],\n", 70 | " [ 0.27965306, -0.01946716, -0.11346169, ..., -0.84893347,\n", 71 | " 0.18063731, -0.04911782],\n", 72 | " ..., \n", 73 | " [ 0.27338737, -0.01701062, -0.04502183, ..., -0.77913261,\n", 74 | " 0.24914484, 0.04081119],\n", 75 | " [ 0.28965416, -0.01884304, -0.15828059, ..., -0.78518142,\n", 76 | " 0.24643223, 0.02533948],\n", 77 | " [ 0.35150347, -0.01242312, -0.20386717, ..., -0.78326693,\n", 78 | " 0.24680852, 0.03669484]])" 79 | ] 80 | }, 81 | "execution_count": 7, 82 | "metadata": {}, 83 | "output_type": "execute_result" 84 | } 85 | ], 86 | "source": [ 87 | "xtrain" 88 | ] 89 | }, 90 | { 91 | "cell_type": "code", 92 | "execution_count": 8, 93 | "metadata": {}, 94 | "outputs": [], 95 | "source": [ 96 | "xtest=xtest.values" 97 | ] 98 | }, 99 | { 100 | "cell_type": "code", 101 | "execution_count": 9, 102 | "metadata": {}, 103 | "outputs": [], 104 | "source": [ 105 | "from sklearn.preprocessing import OneHotEncoder\n", 106 | "onehotencoder = OneHotEncoder()\n", 107 | "ytrain = onehotencoder.fit_transform(ytrain).toarray()" 108 | ] 109 | }, 110 | { 111 | "cell_type": "code", 112 | "execution_count": 10, 113 | "metadata": {}, 114 | "outputs": [ 115 | { 116 | "data": { 117 | "text/plain": [ 118 | "array([[ 0., 0., 0., 0., 1., 0.],\n", 119 | " [ 0., 0., 0., 0., 1., 0.],\n", 120 | " [ 0., 0., 0., 0., 1., 0.],\n", 121 | " ..., \n", 122 | " [ 0., 1., 0., 0., 0., 0.],\n", 123 | " [ 0., 1., 0., 0., 0., 0.],\n", 124 | " [ 0., 1., 0., 0., 0., 0.]])" 125 | ] 126 | }, 127 | "execution_count": 10, 128 | "metadata": {}, 129 | "output_type": "execute_result" 130 | } 131 | ], 132 | "source": [ 133 | "ytrain" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 11, 139 | "metadata": {}, 140 | "outputs": [ 141 | { 142 | "name": "stderr", 143 | "output_type": "stream", 144 | "text": [ 145 | "Using TensorFlow backend.\n" 146 | ] 147 | } 148 | ], 149 | "source": [ 150 | "import keras" 151 | ] 152 | }, 153 | { 154 | "cell_type": "code", 155 | "execution_count": 12, 156 | "metadata": {}, 157 | "outputs": [], 158 | "source": [ 159 | "from keras.models import Sequential #sequential is required to initialise the neural network\n", 160 | "from keras.layers import Dense #dense is used to build the layers\n", 161 | "from keras.layers import Dropout #Dropout Layer in order to prevent Regularization in the network" 162 | ] 163 | }, 164 | { 165 | "cell_type": "code", 166 | "execution_count": 13, 167 | "metadata": {}, 168 | "outputs": [], 169 | "source": [ 170 | "#Initialising the deep learning model\n", 171 | "#Defining the model as a sequence of layers\n", 172 | "classifier = Sequential()" 173 | ] 174 | }, 175 | { 176 | "cell_type": "code", 177 | "execution_count": 14, 178 | "metadata": {}, 179 | "outputs": [], 180 | "source": [ 181 | "classifier.add(Dense(48, input_dim = 561, kernel_initializer='uniform', activation='relu', ))" 182 | ] 183 | }, 184 | { 185 | "cell_type": "code", 186 | "execution_count": 15, 187 | "metadata": {}, 188 | "outputs": [], 189 | "source": [ 190 | "#creating a network of 561 X 48 X 24 X 12 X6\n", 191 | "classifier.add(Dropout(0.1))\n", 192 | "classifier.add(Dense(24, kernel_initializer='uniform', activation='relu'))\n", 193 | "classifier.add(Dropout(0.1))\n", 194 | "classifier.add(Dense(12, kernel_initializer='uniform', activation='relu'))\n", 195 | "classifier.add(Dropout(0.1))\n", 196 | "classifier.add(Dense(6, kernel_initializer='uniform', activation='softmax'))" 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 16, 202 | "metadata": {}, 203 | "outputs": [], 204 | "source": [ 205 | "classifier.compile(optimizer='adam', loss='categorical_crossentropy', metrics = ['accuracy'])" 206 | ] 207 | }, 208 | { 209 | "cell_type": "code", 210 | "execution_count": 17, 211 | "metadata": {}, 212 | "outputs": [ 213 | { 214 | "name": "stdout", 215 | "output_type": "stream", 216 | "text": [ 217 | "Epoch 1/10\n", 218 | "Epoch 2/10\n", 219 | "Epoch 3/10\n", 220 | "Epoch 4/10\n", 221 | "Epoch 5/10\n", 222 | "Epoch 6/10\n", 223 | "Epoch 7/10\n", 224 | "Epoch 8/10\n", 225 | "Epoch 9/10\n", 226 | "Epoch 10/10\n" 227 | ] 228 | }, 229 | { 230 | "data": { 231 | "text/plain": [ 232 | "" 233 | ] 234 | }, 235 | "execution_count": 17, 236 | "metadata": {}, 237 | "output_type": "execute_result" 238 | } 239 | ], 240 | "source": [ 241 | "#Fitting the ANN to the training set\n", 242 | "classifier.fit(xtrain, ytrain, batch_size=20, epochs=10, verbose = 4)" 243 | ] 244 | }, 245 | { 246 | "cell_type": "code", 247 | "execution_count": 18, 248 | "metadata": {}, 249 | "outputs": [], 250 | "source": [ 251 | "pred = classifier.predict(xtest)" 252 | ] 253 | }, 254 | { 255 | "cell_type": "code", 256 | "execution_count": 19, 257 | "metadata": {}, 258 | "outputs": [], 259 | "source": [ 260 | "predictions = []\n", 261 | "for i in range(len(pred)):\n", 262 | " predictions.append(pred[i].argmax() + 1)" 263 | ] 264 | }, 265 | { 266 | "cell_type": "code", 267 | "execution_count": 20, 268 | "metadata": {}, 269 | "outputs": [ 270 | { 271 | "name": "stdout", 272 | "output_type": "stream", 273 | "text": [ 274 | "92.5687139464 %\n" 275 | ] 276 | } 277 | ], 278 | "source": [ 279 | "from sklearn import metrics\n", 280 | "print str(metrics.accuracy_score(ytest, predictions)*100) + ' %'" 281 | ] 282 | } 283 | ], 284 | "metadata": { 285 | "kernelspec": { 286 | "display_name": "Python 2", 287 | "language": "python", 288 | "name": "python2" 289 | }, 290 | "language_info": { 291 | "codemirror_mode": { 292 | "name": "ipython", 293 | "version": 2 294 | }, 295 | "file_extension": ".py", 296 | "mimetype": "text/x-python", 297 | "name": "python", 298 | "nbconvert_exporter": "python", 299 | "pygments_lexer": "ipython2", 300 | "version": "2.7.12" 301 | } 302 | }, 303 | "nbformat": 4, 304 | "nbformat_minor": 2 305 | } 306 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Human-Activity-Recognition-using-machine-learning 2 | Artificial Neural Networks (ANN), k-Nearest Neighbors, Random Forest classifier and Support Vector Machines (SVM) were trained over a HAR dataset on Python and the accuracies achieved by each of the algorithms were compared with each other. 3 | 4 | Link for the dataset: 5 | https://archive.ics.uci.edu/ml/datasets/human+activity+recognition+using+smartphones 6 | 7 | -------------------------------------------------------------------------------- /RFC+for+Human+Activity+Recognition.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stderr", 10 | "output_type": "stream", 11 | "text": [ 12 | "/usr/local/lib/python2.7/dist-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", 13 | " \"This module will be removed in 0.20.\", DeprecationWarning)\n", 14 | "/usr/local/lib/python2.7/dist-packages/sklearn/grid_search.py:42: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. This module will be removed in 0.20.\n", 15 | " DeprecationWarning)\n" 16 | ] 17 | } 18 | ], 19 | "source": [ 20 | "import pandas as pd\n", 21 | "import numpy as np\n", 22 | "from sklearn.ensemble import RandomForestClassifier\n", 23 | "from sklearn.grid_search import GridSearchCV" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 2, 29 | "metadata": {}, 30 | "outputs": [], 31 | "source": [ 32 | "xtrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/X_train.txt',delim_whitespace=True,header=None)" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 3, 38 | "metadata": {}, 39 | "outputs": [], 40 | "source": [ 41 | "xtest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/X_test.txt',delim_whitespace=True,header=None)" 42 | ] 43 | }, 44 | { 45 | "cell_type": "code", 46 | "execution_count": 4, 47 | "metadata": {}, 48 | "outputs": [], 49 | "source": [ 50 | "ytrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/y_train.txt',header=None)" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": 5, 56 | "metadata": {}, 57 | "outputs": [], 58 | "source": [ 59 | "ytest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/y_test.txt',header=None)" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": 6, 65 | "metadata": {}, 66 | "outputs": [ 67 | { 68 | "data": { 69 | "text/html": [ 70 | "
\n", 71 | "\n", 84 | "\n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | "
0123456789...551552553554555556557558559560
00.288585-0.020294-0.132905-0.995279-0.983111-0.913526-0.995112-0.983185-0.923527-0.934724...-0.074323-0.298676-0.710304-0.1127540.030400-0.464761-0.018446-0.8412470.179941-0.058627
10.278419-0.016411-0.123520-0.998245-0.975300-0.960322-0.998807-0.974914-0.957686-0.943068...0.158075-0.595051-0.8614990.053477-0.007435-0.7326260.703511-0.8447880.180289-0.054317
20.279653-0.019467-0.113462-0.995380-0.967187-0.978944-0.996520-0.963668-0.977469-0.938692...0.414503-0.390748-0.760104-0.1185590.1778990.1006990.808529-0.8489330.180637-0.049118
30.279174-0.026201-0.123283-0.996091-0.983403-0.990675-0.997099-0.982750-0.989302-0.938692...0.404573-0.117290-0.482845-0.036788-0.0128920.640011-0.485366-0.8486490.181935-0.047663
40.276629-0.016570-0.115362-0.998139-0.980817-0.990482-0.998321-0.979672-0.990441-0.942469...0.087753-0.351471-0.6992050.1233200.1225420.693578-0.615971-0.8478650.185151-0.043892
\n", 234 | "

5 rows × 561 columns

\n", 235 | "
" 236 | ], 237 | "text/plain": [ 238 | " 0 1 2 3 4 5 6 \\\n", 239 | "0 0.288585 -0.020294 -0.132905 -0.995279 -0.983111 -0.913526 -0.995112 \n", 240 | "1 0.278419 -0.016411 -0.123520 -0.998245 -0.975300 -0.960322 -0.998807 \n", 241 | "2 0.279653 -0.019467 -0.113462 -0.995380 -0.967187 -0.978944 -0.996520 \n", 242 | "3 0.279174 -0.026201 -0.123283 -0.996091 -0.983403 -0.990675 -0.997099 \n", 243 | "4 0.276629 -0.016570 -0.115362 -0.998139 -0.980817 -0.990482 -0.998321 \n", 244 | "\n", 245 | " 7 8 9 ... 551 552 553 \\\n", 246 | "0 -0.983185 -0.923527 -0.934724 ... -0.074323 -0.298676 -0.710304 \n", 247 | "1 -0.974914 -0.957686 -0.943068 ... 0.158075 -0.595051 -0.861499 \n", 248 | "2 -0.963668 -0.977469 -0.938692 ... 0.414503 -0.390748 -0.760104 \n", 249 | "3 -0.982750 -0.989302 -0.938692 ... 0.404573 -0.117290 -0.482845 \n", 250 | "4 -0.979672 -0.990441 -0.942469 ... 0.087753 -0.351471 -0.699205 \n", 251 | "\n", 252 | " 554 555 556 557 558 559 560 \n", 253 | "0 -0.112754 0.030400 -0.464761 -0.018446 -0.841247 0.179941 -0.058627 \n", 254 | "1 0.053477 -0.007435 -0.732626 0.703511 -0.844788 0.180289 -0.054317 \n", 255 | "2 -0.118559 0.177899 0.100699 0.808529 -0.848933 0.180637 -0.049118 \n", 256 | "3 -0.036788 -0.012892 0.640011 -0.485366 -0.848649 0.181935 -0.047663 \n", 257 | "4 0.123320 0.122542 0.693578 -0.615971 -0.847865 0.185151 -0.043892 \n", 258 | "\n", 259 | "[5 rows x 561 columns]" 260 | ] 261 | }, 262 | "execution_count": 6, 263 | "metadata": {}, 264 | "output_type": "execute_result" 265 | } 266 | ], 267 | "source": [ 268 | "xtrain.head()" 269 | ] 270 | }, 271 | { 272 | "cell_type": "code", 273 | "execution_count": 6, 274 | "metadata": {}, 275 | "outputs": [], 276 | "source": [ 277 | "classifier = RandomForestClassifier()" 278 | ] 279 | }, 280 | { 281 | "cell_type": "code", 282 | "execution_count": 7, 283 | "metadata": {}, 284 | "outputs": [], 285 | "source": [ 286 | "parameters = {'n_estimators': [10, 100, 1000], 'max_depth': [3, 6, 9], 'max_features' : ['auto', 'log2']}" 287 | ] 288 | }, 289 | { 290 | "cell_type": "code", 291 | "execution_count": 8, 292 | "metadata": { 293 | "scrolled": true 294 | }, 295 | "outputs": [ 296 | { 297 | "name": "stdout", 298 | "output_type": "stream", 299 | "text": [ 300 | "Fitting 4 folds for each of 18 candidates, totalling 72 fits\n", 301 | "[CV] max_features=auto, n_estimators=10, max_depth=3 .................\n", 302 | "[CV] max_features=auto, n_estimators=10, max_depth=3 .................\n", 303 | "[CV] max_features=auto, n_estimators=10, max_depth=3 .................\n", 304 | "[CV] max_features=auto, n_estimators=10, max_depth=3 .................\n", 305 | "[CV] max_features=auto, n_estimators=10, max_depth=3, score=0.839761 - 1.2s\n", 306 | "[CV] max_features=auto, n_estimators=100, max_depth=3 ................\n", 307 | "[CV] max_features=auto, n_estimators=10, max_depth=3, score=0.844565 - 1.2s\n", 308 | "[CV] max_features=auto, n_estimators=100, max_depth=3 ................\n", 309 | "[CV] max_features=auto, n_estimators=10, max_depth=3, score=0.803922 - 1.3s\n", 310 | "[CV] max_features=auto, n_estimators=100, max_depth=3 ................\n", 311 | "[CV] max_features=auto, n_estimators=10, max_depth=3, score=0.887193 - 1.2s\n", 312 | "[CV] max_features=auto, n_estimators=100, max_depth=3 ................\n", 313 | "[CV] max_features=auto, n_estimators=100, max_depth=3, score=0.881522 - 7.5s\n", 314 | "[CV] max_features=auto, n_estimators=1000, max_depth=3 ...............\n", 315 | "[CV] max_features=auto, n_estimators=100, max_depth=3, score=0.857686 - 7.6s\n", 316 | "[CV] max_features=auto, n_estimators=1000, max_depth=3 ...............\n", 317 | "[CV] max_features=auto, n_estimators=100, max_depth=3, score=0.863834 - 7.5s\n", 318 | "[CV] max_features=auto, n_estimators=1000, max_depth=3 ...............\n", 319 | "[CV] max_features=auto, n_estimators=100, max_depth=3, score=0.901362 - 7.5s\n", 320 | "[CV] max_features=auto, n_estimators=1000, max_depth=3 ...............\n", 321 | "[CV] max_features=auto, n_estimators=1000, max_depth=3, score=0.845193 - 1.2min\n", 322 | "[CV] max_features=log2, n_estimators=10, max_depth=3 .................\n", 323 | "[CV] max_features=log2, n_estimators=10, max_depth=3, score=0.764802 - 0.7s\n", 324 | "[CV] max_features=log2, n_estimators=10, max_depth=3 .................\n", 325 | "[CV] max_features=auto, n_estimators=1000, max_depth=3, score=0.850763 - 1.2min\n", 326 | "[CV] max_features=log2, n_estimators=10, max_depth=3 .................\n", 327 | "[CV] max_features=log2, n_estimators=10, max_depth=3, score=0.832609 - 0.8s\n", 328 | "[CV] max_features=log2, n_estimators=10, max_depth=3 .................\n", 329 | "[CV] max_features=log2, n_estimators=10, max_depth=3, score=0.777233 - 0.8s\n", 330 | "[CV] max_features=auto, n_estimators=1000, max_depth=3, score=0.859783 - 1.2min\n", 331 | "[CV] max_features=log2, n_estimators=100, max_depth=3 ................\n", 332 | "[CV] max_features=log2, n_estimators=100, max_depth=3 ................\n", 333 | "[CV] max_features=auto, n_estimators=1000, max_depth=3, score=0.923706 - 1.2min\n", 334 | "[CV] max_features=log2, n_estimators=100, max_depth=3 ................\n", 335 | "[CV] max_features=log2, n_estimators=10, max_depth=3, score=0.862670 - 0.9s\n", 336 | "[CV] max_features=log2, n_estimators=100, max_depth=3 ................\n", 337 | "[CV] max_features=log2, n_estimators=100, max_depth=3, score=0.824009 - 4.1s\n", 338 | "[CV] max_features=log2, n_estimators=1000, max_depth=3 ...............\n" 339 | ] 340 | }, 341 | { 342 | "name": "stderr", 343 | "output_type": "stream", 344 | "text": [ 345 | "[Parallel(n_jobs=-1)]: Done 17 tasks | elapsed: 1.4min\n" 346 | ] 347 | }, 348 | { 349 | "name": "stdout", 350 | "output_type": "stream", 351 | "text": [ 352 | "[CV] max_features=log2, n_estimators=100, max_depth=3, score=0.824457 - 4.3s\n", 353 | "[CV] max_features=log2, n_estimators=1000, max_depth=3 ...............\n", 354 | "[CV] max_features=log2, n_estimators=100, max_depth=3, score=0.793028 - 4.3s\n", 355 | "[CV] max_features=log2, n_estimators=1000, max_depth=3 ...............\n", 356 | "[CV] max_features=log2, n_estimators=100, max_depth=3, score=0.892643 - 4.4s\n", 357 | "[CV] max_features=log2, n_estimators=1000, max_depth=3 ...............\n", 358 | "[CV] max_features=log2, n_estimators=1000, max_depth=3, score=0.812059 - 34.8s\n", 359 | "[CV] max_features=auto, n_estimators=10, max_depth=6 .................\n", 360 | "[CV] max_features=log2, n_estimators=1000, max_depth=3, score=0.788126 - 34.7s\n", 361 | "[CV] max_features=auto, n_estimators=10, max_depth=6 .................\n", 362 | "[CV] max_features=log2, n_estimators=1000, max_depth=3, score=0.895368 - 34.4s\n", 363 | "[CV] max_features=auto, n_estimators=10, max_depth=6 .................\n", 364 | "[CV] max_features=log2, n_estimators=1000, max_depth=3, score=0.834239 - 35.6s\n", 365 | "[CV] max_features=auto, n_estimators=10, max_depth=6 .................\n", 366 | "[CV] max_features=auto, n_estimators=10, max_depth=6, score=0.891907 - 1.8s\n", 367 | "[CV] max_features=auto, n_estimators=100, max_depth=6 ................\n", 368 | "[CV] max_features=auto, n_estimators=10, max_depth=6, score=0.875000 - 1.7s\n", 369 | "[CV] max_features=auto, n_estimators=100, max_depth=6 ................\n", 370 | "[CV] max_features=auto, n_estimators=10, max_depth=6, score=0.863290 - 1.8s\n", 371 | "[CV] max_features=auto, n_estimators=100, max_depth=6 ................\n", 372 | "[CV] max_features=auto, n_estimators=10, max_depth=6, score=0.929155 - 1.6s\n", 373 | "[CV] max_features=auto, n_estimators=100, max_depth=6 ................\n", 374 | "[CV] max_features=auto, n_estimators=100, max_depth=6, score=0.907659 - 12.3s\n", 375 | "[CV] max_features=auto, n_estimators=1000, max_depth=6 ...............\n", 376 | "[CV] max_features=auto, n_estimators=100, max_depth=6, score=0.902174 - 12.3s\n", 377 | "[CV] max_features=auto, n_estimators=1000, max_depth=6 ...............\n", 378 | "[CV] max_features=auto, n_estimators=100, max_depth=6, score=0.946049 - 12.2s\n", 379 | "[CV] max_features=auto, n_estimators=1000, max_depth=6 ...............\n", 380 | "[CV] max_features=auto, n_estimators=100, max_depth=6, score=0.880174 - 12.4s\n", 381 | "[CV] max_features=auto, n_estimators=1000, max_depth=6 ...............\n", 382 | "[CV] max_features=auto, n_estimators=1000, max_depth=6, score=0.906573 - 2.0min\n", 383 | "[CV] max_features=log2, n_estimators=10, max_depth=6 .................\n", 384 | "[CV] max_features=log2, n_estimators=10, max_depth=6, score=0.859316 - 0.9s\n", 385 | "[CV] max_features=log2, n_estimators=10, max_depth=6 .................\n", 386 | "[CV] max_features=auto, n_estimators=1000, max_depth=6, score=0.895652 - 2.1min\n", 387 | "[CV] max_features=log2, n_estimators=10, max_depth=6 .................\n", 388 | "[CV] max_features=log2, n_estimators=10, max_depth=6, score=0.854891 - 1.1s\n", 389 | "[CV] max_features=log2, n_estimators=10, max_depth=6 .................\n", 390 | "[CV] max_features=log2, n_estimators=10, max_depth=6, score=0.843137 - 1.2s\n", 391 | "[CV] max_features=log2, n_estimators=100, max_depth=6 ................\n", 392 | "[CV] max_features=auto, n_estimators=1000, max_depth=6, score=0.898693 - 2.1min\n", 393 | "[CV] max_features=log2, n_estimators=100, max_depth=6 ................\n", 394 | "[CV] max_features=log2, n_estimators=10, max_depth=6, score=0.937875 - 1.1s\n", 395 | "[CV] max_features=log2, n_estimators=100, max_depth=6 ................\n", 396 | "[CV] max_features=auto, n_estimators=1000, max_depth=6, score=0.940599 - 2.1min\n", 397 | "[CV] max_features=log2, n_estimators=100, max_depth=6 ................\n", 398 | "[CV] max_features=log2, n_estimators=100, max_depth=6, score=0.889734 - 6.3s\n", 399 | "[CV] max_features=log2, n_estimators=1000, max_depth=6 ...............\n", 400 | "[CV] max_features=log2, n_estimators=100, max_depth=6, score=0.903804 - 6.1s\n", 401 | "[CV] max_features=log2, n_estimators=1000, max_depth=6 ...............\n", 402 | "[CV] max_features=log2, n_estimators=100, max_depth=6, score=0.876906 - 6.4s\n", 403 | "[CV] max_features=log2, n_estimators=1000, max_depth=6 ...............\n", 404 | "[CV] max_features=log2, n_estimators=100, max_depth=6, score=0.953134 - 6.3s\n", 405 | "[CV] max_features=log2, n_estimators=1000, max_depth=6 ...............\n", 406 | "[CV] max_features=log2, n_estimators=1000, max_depth=6, score=0.873638 - 1.0min\n", 407 | "[CV] max_features=auto, n_estimators=10, max_depth=9 .................\n", 408 | "[CV] max_features=log2, n_estimators=1000, max_depth=6, score=0.955313 - 1.1min\n", 409 | "[CV] max_features=auto, n_estimators=10, max_depth=9 .................\n", 410 | "[CV] max_features=log2, n_estimators=1000, max_depth=6, score=0.890277 - 1.1min\n", 411 | "[CV] max_features=auto, n_estimators=10, max_depth=9 .................\n", 412 | "[CV] max_features=log2, n_estimators=1000, max_depth=6, score=0.901087 - 1.1min\n", 413 | "[CV] max_features=auto, n_estimators=10, max_depth=9 .................\n", 414 | "[CV] max_features=auto, n_estimators=10, max_depth=9, score=0.906029 - 2.5s\n", 415 | "[CV] max_features=auto, n_estimators=100, max_depth=9 ................\n", 416 | "[CV] max_features=auto, n_estimators=10, max_depth=9, score=0.880978 - 2.2s\n", 417 | "[CV] max_features=auto, n_estimators=100, max_depth=9 ................\n", 418 | "[CV] max_features=auto, n_estimators=10, max_depth=9, score=0.862745 - 2.1s\n", 419 | "[CV] max_features=auto, n_estimators=100, max_depth=9 ................\n", 420 | "[CV] max_features=auto, n_estimators=10, max_depth=9, score=0.946594 - 2.1s\n", 421 | "[CV] max_features=auto, n_estimators=100, max_depth=9 ................\n", 422 | "[CV] max_features=auto, n_estimators=100, max_depth=9, score=0.917436 - 17.1s\n", 423 | "[CV] max_features=auto, n_estimators=1000, max_depth=9 ...............\n", 424 | "[CV] max_features=auto, n_estimators=100, max_depth=9, score=0.892391 - 17.3s\n", 425 | "[CV] max_features=auto, n_estimators=1000, max_depth=9 ...............\n", 426 | "[CV] max_features=auto, n_estimators=100, max_depth=9, score=0.950954 - 17.6s\n", 427 | "[CV] max_features=auto, n_estimators=1000, max_depth=9 ...............\n", 428 | "[CV] max_features=auto, n_estimators=100, max_depth=9, score=0.906318 - 17.9s\n", 429 | "[CV] max_features=auto, n_estimators=1000, max_depth=9 ...............\n", 430 | "[CV] max_features=auto, n_estimators=1000, max_depth=9, score=0.920695 - 2.9min\n", 431 | "[CV] max_features=log2, n_estimators=10, max_depth=9 .................\n", 432 | "[CV] max_features=auto, n_estimators=1000, max_depth=9, score=0.889130 - 2.9min\n", 433 | "[CV] max_features=log2, n_estimators=10, max_depth=9 .................\n", 434 | "[CV] max_features=log2, n_estimators=10, max_depth=9, score=0.897882 - 1.5s\n", 435 | "[CV] max_features=log2, n_estimators=10, max_depth=9 .................\n", 436 | "[CV] max_features=auto, n_estimators=1000, max_depth=9, score=0.891612 - 2.9min\n", 437 | "[CV] max_features=log2, n_estimators=10, max_depth=9 .................\n", 438 | "[CV] max_features=log2, n_estimators=10, max_depth=9, score=0.882609 - 1.7s\n", 439 | "[CV] max_features=log2, n_estimators=100, max_depth=9 ................\n", 440 | "[CV] max_features=log2, n_estimators=10, max_depth=9, score=0.884532 - 1.4s\n", 441 | "[CV] max_features=log2, n_estimators=100, max_depth=9 ................\n", 442 | "[CV] max_features=log2, n_estimators=10, max_depth=9, score=0.937330 - 1.5s\n", 443 | "[CV] max_features=log2, n_estimators=100, max_depth=9 ................\n", 444 | "[CV] max_features=auto, n_estimators=1000, max_depth=9, score=0.952589 - 3.0min\n", 445 | "[CV] max_features=log2, n_estimators=100, max_depth=9 ................\n", 446 | "[CV] max_features=log2, n_estimators=100, max_depth=9, score=0.911461 - 9.2s\n", 447 | "[CV] max_features=log2, n_estimators=1000, max_depth=9 ...............\n", 448 | "[CV] max_features=log2, n_estimators=100, max_depth=9, score=0.907609 - 9.8s\n", 449 | "[CV] max_features=log2, n_estimators=1000, max_depth=9 ...............\n", 450 | "[CV] max_features=log2, n_estimators=100, max_depth=9, score=0.887800 - 9.6s\n", 451 | "[CV] max_features=log2, n_estimators=1000, max_depth=9 ...............\n", 452 | "[CV] max_features=log2, n_estimators=100, max_depth=9, score=0.968392 - 9.6s\n", 453 | "[CV] max_features=log2, n_estimators=1000, max_depth=9 ...............\n", 454 | "[CV] max_features=log2, n_estimators=1000, max_depth=9, score=0.910326 - 1.3min\n", 455 | "[CV] max_features=log2, n_estimators=1000, max_depth=9, score=0.912004 - 1.4min\n", 456 | "[CV] max_features=log2, n_estimators=1000, max_depth=9, score=0.903050 - 1.4min\n", 457 | "[CV] max_features=log2, n_estimators=1000, max_depth=9, score=0.968937 - 1.3min\n" 458 | ] 459 | }, 460 | { 461 | "name": "stderr", 462 | "output_type": "stream", 463 | "text": [ 464 | "[Parallel(n_jobs=-1)]: Done 72 out of 72 | elapsed: 10.3min finished\n" 465 | ] 466 | }, 467 | { 468 | "data": { 469 | "text/plain": [ 470 | "GridSearchCV(cv=4, error_score='raise',\n", 471 | " estimator=RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n", 472 | " max_depth=None, max_features='auto', max_leaf_nodes=None,\n", 473 | " min_impurity_decrease=0.0, min_impurity_split=None,\n", 474 | " min_samples_leaf=1, min_samples_split=2,\n", 475 | " min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,\n", 476 | " oob_score=False, random_state=None, verbose=0,\n", 477 | " warm_start=False),\n", 478 | " fit_params={}, iid=True, n_jobs=-1,\n", 479 | " param_grid={'n_estimators': [10, 100, 1000], 'max_features': ['auto', 'log2'], 'max_depth': [3, 6, 9]},\n", 480 | " pre_dispatch='2*n_jobs', refit=True, scoring='accuracy', verbose=4)" 481 | ] 482 | }, 483 | "execution_count": 8, 484 | "metadata": {}, 485 | "output_type": "execute_result" 486 | } 487 | ], 488 | "source": [ 489 | "model=GridSearchCV(classifier,parameters,n_jobs=-1,cv=4,scoring='accuracy',verbose=4)\n", 490 | "model.fit(xtrain.as_matrix(),ytrain.as_matrix().ravel().T)" 491 | ] 492 | }, 493 | { 494 | "cell_type": "code", 495 | "execution_count": 9, 496 | "metadata": {}, 497 | "outputs": [], 498 | "source": [ 499 | "from sklearn.metrics import accuracy_score\n", 500 | "ypred=model.predict(xtest)\n", 501 | "accuracy=accuracy_score(ytest,ypred)" 502 | ] 503 | }, 504 | { 505 | "cell_type": "code", 506 | "execution_count": 10, 507 | "metadata": {}, 508 | "outputs": [ 509 | { 510 | "name": "stdout", 511 | "output_type": "stream", 512 | "text": [ 513 | "Best Parameters: {'max_features': 'log2', 'n_estimators': 1000, 'max_depth': 9}\n", 514 | "Accuracy Score: 92.8401764506 %\n" 515 | ] 516 | } 517 | ], 518 | "source": [ 519 | "print 'Best Parameters: '+ str(model.best_params_)\n", 520 | "print 'Accuracy Score: '+ str(accuracy*100) + ' %'" 521 | ] 522 | }, 523 | { 524 | "cell_type": "code", 525 | "execution_count": null, 526 | "metadata": {}, 527 | "outputs": [], 528 | "source": [] 529 | } 530 | ], 531 | "metadata": { 532 | "kernelspec": { 533 | "display_name": "Python 2", 534 | "language": "python", 535 | "name": "python2" 536 | }, 537 | "language_info": { 538 | "codemirror_mode": { 539 | "name": "ipython", 540 | "version": 2 541 | }, 542 | "file_extension": ".py", 543 | "mimetype": "text/x-python", 544 | "name": "python", 545 | "nbconvert_exporter": "python", 546 | "pygments_lexer": "ipython2", 547 | "version": "2.7.12" 548 | } 549 | }, 550 | "nbformat": 4, 551 | "nbformat_minor": 2 552 | } 553 | -------------------------------------------------------------------------------- /SVM+for+Human+Activity+Recognition.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stderr", 10 | "output_type": "stream", 11 | "text": [ 12 | "/usr/local/lib/python2.7/dist-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", 13 | " \"This module will be removed in 0.20.\", DeprecationWarning)\n", 14 | "/usr/local/lib/python2.7/dist-packages/sklearn/grid_search.py:42: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. This module will be removed in 0.20.\n", 15 | " DeprecationWarning)\n" 16 | ] 17 | } 18 | ], 19 | "source": [ 20 | "import pandas as pd\n", 21 | "import numpy as np\n", 22 | "from sklearn import svm\n", 23 | "from sklearn.grid_search import GridSearchCV" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 2, 29 | "metadata": {}, 30 | "outputs": [], 31 | "source": [ 32 | "xtrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/X_train.txt',delim_whitespace=True,header=None)" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 3, 38 | "metadata": {}, 39 | "outputs": [], 40 | "source": [ 41 | "xtest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/X_test.txt',delim_whitespace=True,header=None)" 42 | ] 43 | }, 44 | { 45 | "cell_type": "code", 46 | "execution_count": 4, 47 | "metadata": {}, 48 | "outputs": [], 49 | "source": [ 50 | "ytrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/y_train.txt',header=None)" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": 5, 56 | "metadata": {}, 57 | "outputs": [], 58 | "source": [ 59 | "ytest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/y_test.txt',header=None)" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": 6, 65 | "metadata": {}, 66 | "outputs": [], 67 | "source": [ 68 | "classifier=svm.SVC()" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 7, 74 | "metadata": {}, 75 | "outputs": [], 76 | "source": [ 77 | "parameters=[{'kernel': ['rbf'], 'gamma': [0.001, 0.0001], 'C': [1, 10, 100, 1000]}, {'kernel': ['linear'], 'C': [1, 10, 100, 1000]}]" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 8, 83 | "metadata": {}, 84 | "outputs": [ 85 | { 86 | "name": "stdout", 87 | "output_type": "stream", 88 | "text": [ 89 | "Fitting 4 folds for each of 12 candidates, totalling 48 fits\n", 90 | "[CV] kernel=rbf, C=1, gamma=0.001 ....................................\n", 91 | "[CV] kernel=rbf, C=1, gamma=0.001 ....................................\n", 92 | "[CV] kernel=rbf, C=1, gamma=0.001 ....................................\n", 93 | "[CV] kernel=rbf, C=1, gamma=0.001 ....................................\n", 94 | "[CV] ........... kernel=rbf, C=1, gamma=0.001, score=0.877451 - 32.7s\n", 95 | "[CV] kernel=rbf, C=1, gamma=0.0001 ...................................\n", 96 | "[CV] ........... kernel=rbf, C=1, gamma=0.001, score=0.858696 - 33.7s\n", 97 | "[CV] kernel=rbf, C=1, gamma=0.0001 ...................................\n", 98 | "[CV] ........... kernel=rbf, C=1, gamma=0.001, score=0.915807 - 34.3s\n", 99 | "[CV] kernel=rbf, C=1, gamma=0.0001 ...................................\n", 100 | "[CV] ........... kernel=rbf, C=1, gamma=0.001, score=0.937330 - 35.5s\n", 101 | "[CV] kernel=rbf, C=1, gamma=0.0001 ...................................\n", 102 | "[CV] .......... kernel=rbf, C=1, gamma=0.0001, score=0.754481 - 1.3min\n", 103 | "[CV] kernel=rbf, C=10, gamma=0.001 ...................................\n", 104 | "[CV] .......... kernel=rbf, C=1, gamma=0.0001, score=0.734749 - 1.3min\n", 105 | "[CV] kernel=rbf, C=10, gamma=0.001 ...................................\n", 106 | "[CV] .......... kernel=rbf, C=1, gamma=0.0001, score=0.782609 - 1.3min\n", 107 | "[CV] kernel=rbf, C=10, gamma=0.001 ...................................\n", 108 | "[CV] .......... kernel=rbf, C=1, gamma=0.0001, score=0.803815 - 1.3min\n", 109 | "[CV] kernel=rbf, C=10, gamma=0.001 ...................................\n", 110 | "[CV] .......... kernel=rbf, C=10, gamma=0.001, score=0.935904 - 16.2s\n", 111 | "[CV] kernel=rbf, C=10, gamma=0.0001 ..................................\n", 112 | "[CV] .......... kernel=rbf, C=10, gamma=0.001, score=0.892935 - 16.1s\n", 113 | "[CV] kernel=rbf, C=10, gamma=0.0001 ..................................\n", 114 | "[CV] .......... kernel=rbf, C=10, gamma=0.001, score=0.919935 - 16.9s\n", 115 | "[CV] kernel=rbf, C=10, gamma=0.0001 ..................................\n", 116 | "[CV] .......... kernel=rbf, C=10, gamma=0.001, score=0.962398 - 17.2s\n", 117 | "[CV] kernel=rbf, C=10, gamma=0.0001 ..................................\n", 118 | "[CV] ......... kernel=rbf, C=10, gamma=0.0001, score=0.858152 - 43.8s\n", 119 | "[CV] kernel=rbf, C=100, gamma=0.001 ..................................\n", 120 | "[CV] ......... kernel=rbf, C=10, gamma=0.0001, score=0.916350 - 45.0s\n", 121 | "[CV] kernel=rbf, C=100, gamma=0.001 ..................................\n", 122 | "[CV] ......... kernel=rbf, C=10, gamma=0.0001, score=0.880719 - 43.8s\n", 123 | "[CV] kernel=rbf, C=100, gamma=0.001 ..................................\n", 124 | "[CV] ......... kernel=rbf, C=10, gamma=0.0001, score=0.937330 - 47.2s\n", 125 | "[CV] kernel=rbf, C=100, gamma=0.001 ..................................\n", 126 | "[CV] ......... kernel=rbf, C=100, gamma=0.001, score=0.935904 - 10.9s\n", 127 | "[CV] kernel=rbf, C=100, gamma=0.0001 .................................\n" 128 | ] 129 | }, 130 | { 131 | "name": "stderr", 132 | "output_type": "stream", 133 | "text": [ 134 | "[Parallel(n_jobs=-1)]: Done 17 tasks | elapsed: 3.0min\n" 135 | ] 136 | }, 137 | { 138 | "name": "stdout", 139 | "output_type": "stream", 140 | "text": [ 141 | "[CV] ......... kernel=rbf, C=100, gamma=0.001, score=0.911957 - 11.4s\n", 142 | "[CV] kernel=rbf, C=100, gamma=0.0001 .................................\n", 143 | "[CV] ......... kernel=rbf, C=100, gamma=0.001, score=0.941721 - 11.8s\n", 144 | "[CV] kernel=rbf, C=100, gamma=0.0001 .................................\n", 145 | "[CV] ......... kernel=rbf, C=100, gamma=0.001, score=0.969482 - 12.9s\n", 146 | "[CV] kernel=rbf, C=100, gamma=0.0001 .................................\n", 147 | "[CV] ........ kernel=rbf, C=100, gamma=0.0001, score=0.935904 - 18.3s\n", 148 | "[CV] kernel=rbf, C=1000, gamma=0.001 .................................\n", 149 | "[CV] ........ kernel=rbf, C=100, gamma=0.0001, score=0.891304 - 18.7s\n", 150 | "[CV] kernel=rbf, C=1000, gamma=0.001 .................................\n", 151 | "[CV] ........ kernel=rbf, C=100, gamma=0.0001, score=0.921569 - 18.9s\n", 152 | "[CV] kernel=rbf, C=1000, gamma=0.001 .................................\n", 153 | "[CV] ........ kernel=rbf, C=1000, gamma=0.001, score=0.933732 - 8.6s\n", 154 | "[CV] kernel=rbf, C=1000, gamma=0.001 .................................\n", 155 | "[CV] ........ kernel=rbf, C=100, gamma=0.0001, score=0.962398 - 17.9s\n", 156 | "[CV] kernel=rbf, C=1000, gamma=0.0001 ................................\n", 157 | "[CV] ........ kernel=rbf, C=1000, gamma=0.001, score=0.911957 - 8.6s\n", 158 | "[CV] kernel=rbf, C=1000, gamma=0.0001 ................................\n", 159 | "[CV] ........ kernel=rbf, C=1000, gamma=0.001, score=0.944444 - 9.9s\n", 160 | "[CV] kernel=rbf, C=1000, gamma=0.0001 ................................\n", 161 | "[CV] ....... kernel=rbf, C=1000, gamma=0.0001, score=0.934818 - 9.2s\n", 162 | "[CV] kernel=rbf, C=1000, gamma=0.0001 ................................\n", 163 | "[CV] ........ kernel=rbf, C=1000, gamma=0.001, score=0.973297 - 9.5s\n", 164 | "[CV] kernel=linear, C=1 ..............................................\n", 165 | "[CV] ....... kernel=rbf, C=1000, gamma=0.0001, score=0.904891 - 9.2s\n", 166 | "[CV] kernel=linear, C=1 ..............................................\n", 167 | "[CV] ....... kernel=rbf, C=1000, gamma=0.0001, score=0.942266 - 12.0s\n", 168 | "[CV] kernel=linear, C=1 ..............................................\n", 169 | "[CV] ..................... kernel=linear, C=1, score=0.932645 - 9.0s\n", 170 | "[CV] kernel=linear, C=1 ..............................................\n", 171 | "[CV] ..................... kernel=linear, C=1, score=0.909783 - 10.2s\n", 172 | "[CV] kernel=linear, C=10 .............................................\n", 173 | "[CV] ....... kernel=rbf, C=1000, gamma=0.0001, score=0.969482 - 13.1s\n", 174 | "[CV] kernel=linear, C=10 .............................................\n", 175 | "[CV] ..................... kernel=linear, C=1, score=0.942266 - 9.7s\n", 176 | "[CV] kernel=linear, C=10 .............................................\n", 177 | "[CV] ..................... kernel=linear, C=1, score=0.975477 - 10.7s\n", 178 | "[CV] kernel=linear, C=10 .............................................\n", 179 | "[CV] .................... kernel=linear, C=10, score=0.934818 - 9.9s\n", 180 | "[CV] kernel=linear, C=100 ............................................\n", 181 | "[CV] .................... kernel=linear, C=10, score=0.907609 - 10.0s\n", 182 | "[CV] kernel=linear, C=100 ............................................\n", 183 | "[CV] .................... kernel=linear, C=10, score=0.937364 - 10.5s\n", 184 | "[CV] kernel=linear, C=100 ............................................\n", 185 | "[CV] .................... kernel=linear, C=10, score=0.974387 - 11.1s\n", 186 | "[CV] kernel=linear, C=100 ............................................\n", 187 | "[CV] ................... kernel=linear, C=100, score=0.939707 - 9.5s\n", 188 | "[CV] kernel=linear, C=1000 ...........................................\n", 189 | "[CV] ................... kernel=linear, C=100, score=0.907609 - 9.1s\n", 190 | "[CV] kernel=linear, C=1000 ...........................................\n", 191 | "[CV] ................... kernel=linear, C=100, score=0.935730 - 10.4s\n", 192 | "[CV] kernel=linear, C=1000 ...........................................\n", 193 | "[CV] .................. kernel=linear, C=1000, score=0.939707 - 8.1s\n", 194 | "[CV] kernel=linear, C=1000 ...........................................\n", 195 | "[CV] ................... kernel=linear, C=100, score=0.971117 - 10.1s\n", 196 | "[CV] .................. kernel=linear, C=1000, score=0.907609 - 9.2s\n", 197 | "[CV] .................. kernel=linear, C=1000, score=0.935730 - 6.5s\n", 198 | "[CV] .................. kernel=linear, C=1000, score=0.971117 - 5.9s\n" 199 | ] 200 | }, 201 | { 202 | "name": "stderr", 203 | "output_type": "stream", 204 | "text": [ 205 | "[Parallel(n_jobs=-1)]: Done 48 out of 48 | elapsed: 4.4min finished\n" 206 | ] 207 | }, 208 | { 209 | "data": { 210 | "text/plain": [ 211 | "GridSearchCV(cv=4, error_score='raise',\n", 212 | " estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n", 213 | " decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n", 214 | " max_iter=-1, probability=False, random_state=None, shrinking=True,\n", 215 | " tol=0.001, verbose=False),\n", 216 | " fit_params={}, iid=True, n_jobs=-1,\n", 217 | " param_grid=[{'kernel': ['rbf'], 'C': [1, 10, 100, 1000], 'gamma': [0.001, 0.0001]}, {'kernel': ['linear'], 'C': [1, 10, 100, 1000]}],\n", 218 | " pre_dispatch='2*n_jobs', refit=True, scoring=None, verbose=4)" 219 | ] 220 | }, 221 | "execution_count": 8, 222 | "metadata": {}, 223 | "output_type": "execute_result" 224 | } 225 | ], 226 | "source": [ 227 | "model=GridSearchCV(classifier,parameters,n_jobs=-1,cv=4,verbose=4)\n", 228 | "model.fit(xtrain.as_matrix(),ytrain.as_matrix().ravel().T)" 229 | ] 230 | }, 231 | { 232 | "cell_type": "code", 233 | "execution_count": 9, 234 | "metadata": {}, 235 | "outputs": [], 236 | "source": [ 237 | "from sklearn.metrics import accuracy_score\n", 238 | "ypred=model.predict(xtest)\n", 239 | "accuracy=accuracy_score(ytest,ypred)" 240 | ] 241 | }, 242 | { 243 | "cell_type": "code", 244 | "execution_count": 10, 245 | "metadata": {}, 246 | "outputs": [ 247 | { 248 | "name": "stdout", 249 | "output_type": "stream", 250 | "text": [ 251 | "Best Parameters: {'kernel': 'rbf', 'C': 1000, 'gamma': 0.001}\n", 252 | "Accuracy Score: 96.5727858839 %\n" 253 | ] 254 | } 255 | ], 256 | "source": [ 257 | "print 'Best Parameters: '+ str(model.best_params_)\n", 258 | "print 'Accuracy Score: '+ str(accuracy*100) + ' %'" 259 | ] 260 | }, 261 | { 262 | "cell_type": "code", 263 | "execution_count": null, 264 | "metadata": {}, 265 | "outputs": [], 266 | "source": [] 267 | } 268 | ], 269 | "metadata": { 270 | "kernelspec": { 271 | "display_name": "Python 2", 272 | "language": "python", 273 | "name": "python2" 274 | }, 275 | "language_info": { 276 | "codemirror_mode": { 277 | "name": "ipython", 278 | "version": 2 279 | }, 280 | "file_extension": ".py", 281 | "mimetype": "text/x-python", 282 | "name": "python", 283 | "nbconvert_exporter": "python", 284 | "pygments_lexer": "ipython2", 285 | "version": "2.7.12" 286 | } 287 | }, 288 | "nbformat": 4, 289 | "nbformat_minor": 2 290 | } 291 | -------------------------------------------------------------------------------- /kNN+for+Human+Activity+Recognition.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "import numpy as np\n", 11 | "import seaborn as sns\n", 12 | "import matplotlib.pyplot as plt" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 2, 18 | "metadata": {}, 19 | "outputs": [], 20 | "source": [ 21 | "xtrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/X_train.txt',delim_whitespace=True,header=None)" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 3, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "xtest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/X_test.txt',delim_whitespace=True,header=None)" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 4, 36 | "metadata": {}, 37 | "outputs": [], 38 | "source": [ 39 | "ytrain=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/train/y_train.txt',header=None)" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 5, 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "ytest=pd.read_table('/home/hardik/Desktop/UCI HAR Dataset/test/y_test.txt',header=None)" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": 6, 54 | "metadata": {}, 55 | "outputs": [], 56 | "source": [ 57 | "#converting into array\n", 58 | "xtrain=xtrain.values \n", 59 | "xtest=xtest.values\n", 60 | "ytrain=ytrain.values\n", 61 | "ytest=ytest.values" 62 | ] 63 | }, 64 | { 65 | "cell_type": "code", 66 | "execution_count": 7, 67 | "metadata": {}, 68 | "outputs": [], 69 | "source": [ 70 | "from sklearn.neighbors import KNeighborsClassifier\n", 71 | "from sklearn.metrics import accuracy_score" 72 | ] 73 | }, 74 | { 75 | "cell_type": "code", 76 | "execution_count": 8, 77 | "metadata": {}, 78 | "outputs": [], 79 | "source": [ 80 | "knn = KNeighborsClassifier(n_neighbors = 24) #setting k= square root of 561" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": 9, 86 | "metadata": {}, 87 | "outputs": [ 88 | { 89 | "name": "stderr", 90 | "output_type": "stream", 91 | "text": [ 92 | "/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:1: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", 93 | " \"\"\"Entry point for launching an IPython kernel.\n" 94 | ] 95 | } 96 | ], 97 | "source": [ 98 | "knn.fit(xtrain,ytrain)\n", 99 | "ypred = knn.predict(xtest)" 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": 10, 105 | "metadata": {}, 106 | "outputs": [ 107 | { 108 | "name": "stdout", 109 | "output_type": "stream", 110 | "text": [ 111 | "90.2273498473 %\n" 112 | ] 113 | } 114 | ], 115 | "source": [ 116 | "print str(accuracy_score(ytest,ypred)*100) + ' %'" 117 | ] 118 | }, 119 | { 120 | "cell_type": "code", 121 | "execution_count": 11, 122 | "metadata": {}, 123 | "outputs": [ 124 | { 125 | "name": "stderr", 126 | "output_type": "stream", 127 | "text": [ 128 | "/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:5: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", 129 | " \"\"\"\n" 130 | ] 131 | } 132 | ], 133 | "source": [ 134 | "#Finding the optimal model by varying the no. of neighbors\n", 135 | "scores = []\n", 136 | "for i in range(1, 50):\n", 137 | " knn = KNeighborsClassifier(n_neighbors = i, n_jobs = -1)\n", 138 | " knn.fit(xtrain, ytrain)\n", 139 | " ypred = knn.predict(xtest)\n", 140 | " scores.append(accuracy_score(ytest,ypred))" 141 | ] 142 | }, 143 | { 144 | "cell_type": "code", 145 | "execution_count": 12, 146 | "metadata": {}, 147 | "outputs": [ 148 | { 149 | "data": { 150 | "text/plain": [ 151 | "[]" 152 | ] 153 | }, 154 | "execution_count": 12, 155 | "metadata": {}, 156 | "output_type": "execute_result" 157 | } 158 | ], 159 | "source": [ 160 | "plt.xlabel('Number of Neighbors')\n", 161 | "plt.ylabel('Accuracy Score')\n", 162 | "xticks = range(1,50)\n", 163 | "plt.plot(xticks, scores, color='red', linestyle='solid', marker='o',\n", 164 | " markerfacecolor='blue', markersize=5)" 165 | ] 166 | }, 167 | { 168 | "cell_type": "code", 169 | "execution_count": 13, 170 | "metadata": {}, 171 | "outputs": [], 172 | "source": [ 173 | "import matplotlib\n", 174 | "matplotlib.rcParams.update({'font.size': 20})" 175 | ] 176 | }, 177 | { 178 | "cell_type": "code", 179 | "execution_count": 14, 180 | "metadata": {}, 181 | "outputs": [ 182 | { 183 | "data": { 184 | "image/png": "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\n", 185 | "text/plain": [ 186 | "" 187 | ] 188 | }, 189 | "metadata": {}, 190 | "output_type": "display_data" 191 | } 192 | ], 193 | "source": [ 194 | "plt.show()" 195 | ] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "execution_count": 15, 200 | "metadata": {}, 201 | "outputs": [], 202 | "source": [ 203 | "scores = np.array(scores)" 204 | ] 205 | }, 206 | { 207 | "cell_type": "code", 208 | "execution_count": 16, 209 | "metadata": {}, 210 | "outputs": [ 211 | { 212 | "name": "stdout", 213 | "output_type": "stream", 214 | "text": [ 215 | "Optimal No. Of Neighbors: 8\n", 216 | "Accuracy Score: 90.7363420428 %\n" 217 | ] 218 | } 219 | ], 220 | "source": [ 221 | "#Final result after training the model\n", 222 | "print'Optimal No. Of Neighbors: ', scores.argmax()+1\n", 223 | "print'Accuracy Score: '+ str(scores.max()*100)+ ' %'" 224 | ] 225 | }, 226 | { 227 | "cell_type": "code", 228 | "execution_count": null, 229 | "metadata": {}, 230 | "outputs": [], 231 | "source": [] 232 | } 233 | ], 234 | "metadata": { 235 | "kernelspec": { 236 | "display_name": "Python 2", 237 | "language": "python", 238 | "name": "python2" 239 | }, 240 | "language_info": { 241 | "codemirror_mode": { 242 | "name": "ipython", 243 | "version": 2 244 | }, 245 | "file_extension": ".py", 246 | "mimetype": "text/x-python", 247 | "name": "python", 248 | "nbconvert_exporter": "python", 249 | "pygments_lexer": "ipython2", 250 | "version": "2.7.12" 251 | } 252 | }, 253 | "nbformat": 4, 254 | "nbformat_minor": 2 255 | } 256 | --------------------------------------------------------------------------------