├── README.md └── trafico.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Env_soundrecognition 2 | 3 | Jupyter notebook exploring the use of librosa and sci-kit learn to recognize a set of environmental sound events related with traffic. The dataset was recorded in Medellin using a songmeter sm-2, it will be soon avialable online. 4 | -------------------------------------------------------------------------------- /trafico.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Algoritmo de clasificación ruido de tráfico\n", 8 | "\n", 9 | "###### El siguiente algoritmo emplea como descriprotes MFCC, ZCR, Spectral centroid y spectral roll off como vectores de características y se extraen con ayuda de la librera librosa. Como método de clasficación se usa un SVM multiclase con un kernel radial.\n", 10 | "\n", 11 | "## Pasos\n", 12 | "###### 1. Leer los archivos de audio, que se encuentran separados por clase en carpetas.\n", 13 | "\n" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "metadata": { 20 | "collapsed": false 21 | }, 22 | "outputs": [ 23 | { 24 | "name": "stdout", 25 | "output_type": "stream", 26 | "text": [ 27 | "hay 141 archivos de livianos\n", 28 | "hay 162 archivos de motos\n", 29 | "hay 122 archivos de pesados\n", 30 | "hay 98 archivos de bocinas\n" 31 | ] 32 | } 33 | ], 34 | "source": [ 35 | "\n", 36 | "import os\n", 37 | "import numpy as np\n", 38 | "import scipy \n", 39 | "import matplotlib.pyplot as plt\n", 40 | "import librosa\n", 41 | "\n", 42 | "\n", 43 | "# leer los directorios de las carpetas y separar los archivos que son de audio\n", 44 | "\n", 45 | "pwd1 = \"/home/aaccol/DATABASES/GCM/Isolated/liviano\"\n", 46 | "pwd2 = \"/home/aaccol/DATABASES/GCM/Isolated/moto\"\n", 47 | "pwd3 = \"/home/aaccol/DATABASES/GCM/Isolated/pesado\"\n", 48 | "pwd4 = \"/home/aaccol/DATABASES/GCM/Isolated/pito_ag\"\n", 49 | "\n", 50 | "\n", 51 | "def load_audios(path):\n", 52 | " #funcion que carga los archivos wav en una lista de python \n", 53 | " files = os.listdir(path) # listar los nombres de archivos que estan dentro del directorio\n", 54 | " audiofiles = [(path+\"/\"+f) for f in files if f.endswith('.wav')] # verificar si son .wav y añadirlos las rutas a una lista\n", 55 | " signals = [librosa.load(p)[0] for p in audiofiles] # cargar los vectores de audio en una lista\n", 56 | " return signals\n", 57 | "\n", 58 | " \n", 59 | "# cargar los archivos .wav en una lista de python\n", 60 | "\n", 61 | "l_signals = load_audios(pwd1)\n", 62 | "m_signals = load_audios(pwd2)\n", 63 | "p_signals = load_audios(pwd3)\n", 64 | "h_signals = load_audios(pwd4)\n", 65 | "\n", 66 | "c1 = len(l_signals)\n", 67 | "c2 = len(m_signals)\n", 68 | "c3 = len(p_signals)\n", 69 | "c4 = len(h_signals)\n", 70 | " \n", 71 | "print \"hay \" + str(c1) + \" archivos de livianos\"\n", 72 | "print \"hay \" + str(c2) + \" archivos de motos\"\n", 73 | "print \"hay \" + str(c3) + \" archivos de pesados\"\n", 74 | "print \"hay \" + str(c4) + \" archivos de bocinas\"\n" 75 | ] 76 | }, 77 | { 78 | "cell_type": "markdown", 79 | "metadata": {}, 80 | "source": [ 81 | "##### 2. Extraer los descriptores por medio de la librera librosa.\n", 82 | "\n" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 3, 88 | "metadata": { 89 | "collapsed": false 90 | }, 91 | "outputs": [ 92 | { 93 | "name": "stdout", 94 | "output_type": "stream", 95 | "text": [ 96 | "Extracción de descriptores completada...\n" 97 | ] 98 | } 99 | ], 100 | "source": [ 101 | "# Extraer los descriptores de todos los audios\n", 102 | "# Since v0.3, librosa uses centered frames, so that the kth frame is centered around sample k * hop_length\n", 103 | "\n", 104 | "w_size = 512\n", 105 | "hop = 256\n", 106 | "fs = 22050\n", 107 | "\n", 108 | "def extract_features(signals,w_size,hop,fs):\n", 109 | " zcr = np.array([librosa.feature.zero_crossing_rate(s,frame_length=w_size, hop_length=hop) for s in signals])\n", 110 | " sc = np.array([librosa.feature.spectral_centroid(y=s, sr=fs, S=None, n_fft=w_size, hop_length=hop) for s in signals])\n", 111 | " sr = np.array([librosa.feature.spectral_rolloff(y=s, sr=fs, S=None, n_fft=w_size, hop_length=hop, freq=None, roll_percent=0.85) for s in signals])\n", 112 | " return zcr, sc, sr\n", 113 | "\n", 114 | "\n", 115 | "l_zcr, l_sc, l_sr = extract_features(l_signals,w_size,hop,fs)\n", 116 | "m_zcr, m_sc, m_sr = extract_features(m_signals,w_size,hop,fs)\n", 117 | "p_zcr, p_sc, p_sr = extract_features(p_signals,w_size,hop,fs)\n", 118 | "h_zcr, h_sc, h_sr = extract_features(h_signals,w_size,hop,fs)\n", 119 | "\n", 120 | "# promedios y desviacion estandar\n", 121 | "\n", 122 | "mean_l_zcr = [np.mean(s[0]) for s in l_zcr]\n", 123 | "mean_m_zcr = [np.mean(s[0]) for s in m_zcr]\n", 124 | "mean_p_zcr = [np.mean(s[0]) for s in p_zcr]\n", 125 | "mean_h_zcr = [np.mean(s[0]) for s in h_zcr]\n", 126 | "\n", 127 | "var_l_zcr = [np.var(s[0]) for s in l_zcr]\n", 128 | "var_m_zcr = [np.var(s[0]) for s in m_zcr]\n", 129 | "var_p_zcr = [np.var(s[0]) for s in p_zcr]\n", 130 | "var_h_zcr = [np.var(s[0]) for s in h_zcr]\n", 131 | "\n", 132 | "mean_l_sc = [np.mean(s[0]) for s in l_sc]\n", 133 | "mean_m_sc = [np.mean(s[0]) for s in m_sc]\n", 134 | "mean_p_sc = [np.mean(s[0]) for s in p_sc]\n", 135 | "mean_h_sc = [np.mean(s[0]) for s in h_sc]\n", 136 | "\n", 137 | "var_l_sc = [np.var(s[0]) for s in l_sc]\n", 138 | "var_m_sc = [np.var(s[0]) for s in m_sc]\n", 139 | "var_p_sc = [np.var(s[0]) for s in p_sc]\n", 140 | "var_h_sc = [np.var(s[0]) for s in h_sc]\n", 141 | "\n", 142 | "mean_l_sr = [np.mean(s[0]) for s in l_sr]\n", 143 | "mean_m_sr = [np.mean(s[0]) for s in m_sr]\n", 144 | "mean_p_sr = [np.mean(s[0]) for s in p_sr]\n", 145 | "mean_h_sr = [np.mean(s[0]) for s in h_sr]\n", 146 | "\n", 147 | "var_l_sr = [np.var(s[0]) for s in l_sr]\n", 148 | "var_m_sr = [np.var(s[0]) for s in m_sr]\n", 149 | "var_p_sr = [np.var(s[0]) for s in p_sr]\n", 150 | "var_h_sr = [np.var(s[0]) for s in h_sr]\n", 151 | "\n", 152 | "\n", 153 | "## MFCC\n", 154 | "\n", 155 | "n=20\n", 156 | "\n", 157 | "l_mfcc = [librosa.feature.mfcc(s, n_fft=w_size, hop_length=hop, sr=fs, n_mfcc=n) for s in l_signals]\n", 158 | "l_mfcc_d = [librosa.feature.delta(mfcc) for mfcc in l_mfcc]\n", 159 | "\n", 160 | "\n", 161 | "m_mfcc = [librosa.feature.mfcc(s, n_fft=w_size,hop_length=hop, sr=fs, n_mfcc=n) for s in m_signals]\n", 162 | "m_mfcc_d = [librosa.feature.delta(mfcc) for mfcc in m_mfcc]\n", 163 | "\n", 164 | "\n", 165 | "p_mfcc = [librosa.feature.mfcc(s, n_fft=w_size,hop_length=hop, sr=fs, n_mfcc=n) for s in p_signals]\n", 166 | "p_mfcc_d = [librosa.feature.delta(mfcc) for mfcc in p_mfcc]\n", 167 | "\n", 168 | "\n", 169 | "h_mfcc = [librosa.feature.mfcc(s, n_fft=w_size,hop_length=hop, sr=fs, n_mfcc=n) for s in h_signals]\n", 170 | "h_mfcc_d = [librosa.feature.delta(mfcc) for mfcc in h_mfcc]\n", 171 | "\n", 172 | "\n", 173 | "mean_l_mfcc = [e.mean(axis = 1) for e in l_mfcc]\n", 174 | "mean_m_mfcc = [e.mean(axis = 1) for e in m_mfcc]\n", 175 | "mean_p_mfcc = [e.mean(axis = 1) for e in p_mfcc]\n", 176 | "mean_h_mfcc = [e.mean(axis = 1) for e in h_mfcc]\n", 177 | "\n", 178 | "\n", 179 | "var_l_mfcc = [[np.var(e[j]) for j in range(n)]for e in l_mfcc]\n", 180 | "var_m_mfcc = [[np.var(e[j]) for j in range(n)]for e in m_mfcc]\n", 181 | "var_p_mfcc = [[np.var(e[j]) for j in range(n)]for e in p_mfcc]\n", 182 | "var_h_mfcc = [[np.var(e[j]) for j in range(n)]for e in h_mfcc]\n", 183 | "\n", 184 | "print 'Extracción de descriptores completada...'\n", 185 | "\n", 186 | "\n", 187 | " \n" 188 | ] 189 | }, 190 | { 191 | "cell_type": "markdown", 192 | "metadata": {}, 193 | "source": [ 194 | "#### 3. Creación matriz de descriptores" 195 | ] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "execution_count": 4, 200 | "metadata": { 201 | "collapsed": false 202 | }, 203 | "outputs": [ 204 | { 205 | "name": "stdout", 206 | "output_type": "stream", 207 | "text": [ 208 | "Matriz de descriptores creada...\n" 209 | ] 210 | } 211 | ], 212 | "source": [ 213 | "# creacion de matriz de los descriptores\n", 214 | "\n", 215 | "liviano = [[mean_l_sc[i], mean_l_sr[i], mean_l_zcr[i], var_l_sc[i], var_l_sr[i], var_l_zcr[i]] for i in range(c1)]\n", 216 | "moto = [[mean_m_sc[i], mean_m_sr[i], mean_m_zcr[i], var_m_sc[i], var_m_sr[i], var_m_zcr[i]] for i in range(c2)]\n", 217 | "pesado = [[mean_p_sc[i], mean_p_sr[i], mean_p_zcr[i], var_p_sc[i], var_p_sr[i], var_p_zcr[i]] for i in range(c3)]\n", 218 | "pito = [[mean_h_sc[i], mean_h_sr[i], mean_h_zcr[i], var_h_sc[i], var_h_sr[i], var_h_zcr[i]] for i in range(c4)]\n", 219 | "\n", 220 | "# concatenacion de los diferentes tipos\n", 221 | "\n", 222 | "data =[]\n", 223 | "for i in range(c1):\n", 224 | " data.append(liviano[i])\n", 225 | "for i in range(c2):\n", 226 | " data.append(moto[i])\n", 227 | "for i in range(c3):\n", 228 | " data.append(pesado[i])\n", 229 | "for i in range(c4):\n", 230 | " data.append(pito[i])\n", 231 | " \n", 232 | "data_mfcc =[]\n", 233 | "for i in range(c1):\n", 234 | " data_mfcc.append(mean_l_mfcc[i])\n", 235 | "for i in range(c2):\n", 236 | " data_mfcc.append(mean_m_mfcc[i])\n", 237 | "for i in range(c3):\n", 238 | " data_mfcc.append(mean_p_mfcc[i])\n", 239 | "for i in range(c4):\n", 240 | " data_mfcc.append(mean_h_mfcc[i])\n", 241 | " \n", 242 | "\n", 243 | " \n", 244 | "#data_mixed = []\n", 245 | "#data_mixed_all = [ele + data[i][:-3] for i, ele in enumerate(data_mfcc)]\n", 246 | "#data_mixed_zcr = [ele + data[i][2:-3] for i, ele in enumerate(data_mfcc)]\n", 247 | "#data_mixed_sc = [ele + data[i][:-5] for i, ele in enumerate(data_mfcc)]\n", 248 | "#data_mixed_sr = [ele + data[i][1:-4] for i, ele in enumerate(data_mfcc)]\n", 249 | "\n", 250 | " \n", 251 | "label =[]\n", 252 | "for i in range(c1):\n", 253 | " label.append('Liviano')\n", 254 | "for i in range(c2):\n", 255 | " label.append('Moto')\n", 256 | "for i in range(c3):\n", 257 | " label.append('Pesado')\n", 258 | "for i in range(c4):\n", 259 | " label.append('Bocina')\n", 260 | " \n", 261 | "\n", 262 | " \n", 263 | "print 'Matriz de descriptores creada...'\n", 264 | "\n" 265 | ] 266 | }, 267 | { 268 | "cell_type": "markdown", 269 | "metadata": {}, 270 | "source": [ 271 | "#### 4. entrenamiento del modelo" 272 | ] 273 | }, 274 | { 275 | "cell_type": "code", 276 | "execution_count": 5, 277 | "metadata": { 278 | "collapsed": false 279 | }, 280 | "outputs": [ 281 | { 282 | "name": "stdout", 283 | "output_type": "stream", 284 | "text": [ 285 | "{'kernel': 'rbf', 'C': 10, 'gamma': 0.0001}\n", 286 | "Accuracy: 0.83 (+/- 0.10)\n", 287 | "porcentaje de éxito: 0.859872611465\n", 288 | " precision recall f1-score support\n", 289 | "\n", 290 | " Bocina 0.96 0.93 0.95 28\n", 291 | " Liviano 0.90 0.92 0.91 38\n", 292 | " Moto 0.82 0.87 0.84 53\n", 293 | " Pesado 0.80 0.74 0.77 38\n", 294 | "\n", 295 | "avg / total 0.86 0.86 0.86 157\n", 296 | "\n" 297 | ] 298 | }, 299 | { 300 | "data": { 301 | "text/plain": [ 302 | "['clasificador_trafico.sav']" 303 | ] 304 | }, 305 | "execution_count": 5, 306 | "metadata": {}, 307 | "output_type": "execute_result" 308 | } 309 | ], 310 | "source": [ 311 | "\n", 312 | "from sklearn.preprocessing import scale\n", 313 | "from sklearn import svm\n", 314 | "from sklearn.model_selection import train_test_split\n", 315 | "from sklearn.metrics import accuracy_score\n", 316 | "from sklearn.metrics import confusion_matrix\n", 317 | "from sklearn.metrics import classification_report\n", 318 | "from sklearn.model_selection import GridSearchCV\n", 319 | "from sklearn.model_selection import cross_val_score\n", 320 | "from sklearn.decomposition import PCA\n", 321 | "from sklearn.externals import joblib\n", 322 | "\n", 323 | "import itertools\n", 324 | "\n", 325 | "X = data_mfcc\n", 326 | "\n", 327 | "#particion de los datos en entrenamiento y prueba\n", 328 | "x, y = X, label\n", 329 | "X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0)\n", 330 | "\n", 331 | "#entrenamiento del SVM\n", 332 | "# probar diferentes valores para C y para Gamma\n", 333 | "\n", 334 | "param_grid = [\n", 335 | " {'C': [1, 10, 100, 1000], 'kernel': ['linear']},\n", 336 | " {'C': [1, 10, 100, 1000], 'gamma': [0.01, 0.001, 0.0001], 'kernel': ['rbf']},\n", 337 | " ]\n", 338 | "svr = svm.SVC()\n", 339 | "clf = GridSearchCV(svr, param_grid)\n", 340 | "clf.fit(X_train,y_train)\n", 341 | "\n", 342 | "scores = cross_val_score(clf, X, label, cv=5)\n", 343 | "\n", 344 | "\n", 345 | "print(clf.best_params_)\n", 346 | "best_param = clf.best_params_\n", 347 | "print(\"Accuracy: %0.2f (+/- %0.2f)\" % (scores.mean(), scores.std() * 2))\n", 348 | "\n", 349 | "\n", 350 | "\n", 351 | "#puntajes\n", 352 | "y_pred = clf.predict(X_test)\n", 353 | "print \"porcentaje de éxito: \" + str(accuracy_score(y_test, y_pred))\n", 354 | "report = classification_report(y_test, y_pred)\n", 355 | "print report\n", 356 | "\n", 357 | "# save the model to disk\n", 358 | "filename = 'clasificador_trafico.sav'\n", 359 | "joblib.dump(clf, filename)\n" 360 | ] 361 | }, 362 | { 363 | "cell_type": "markdown", 364 | "metadata": {}, 365 | "source": [ 366 | "#### 5. Matriz de confusión" 367 | ] 368 | }, 369 | { 370 | "cell_type": "code", 371 | "execution_count": 6, 372 | "metadata": { 373 | "collapsed": false 374 | }, 375 | "outputs": [ 376 | { 377 | "name": "stdout", 378 | "output_type": "stream", 379 | "text": [ 380 | "Matriz de confusion, sin normalizacion\n", 381 | "[[26 0 2 0]\n", 382 | " [ 0 35 2 1]\n", 383 | " [ 0 1 46 6]\n", 384 | " [ 1 3 6 28]]\n", 385 | "Matriz de confusion normalizada\n", 386 | "[[ 0.93 0. 0.07 0. ]\n", 387 | " [ 0. 0.92 0.05 0.03]\n", 388 | " [ 0. 0.02 0.87 0.11]\n", 389 | " [ 0.03 0.08 0.16 0.74]]\n" 390 | ] 391 | }, 392 | { 393 | "data": { 394 | "image/png": "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\nBGOReTwAAAAASUVORK5CYII=\n", 395 | "text/plain": [ 396 | "" 397 | ] 398 | }, 399 | "metadata": {}, 400 | "output_type": "display_data" 401 | }, 402 | { 403 | "data": { 404 | "image/png": "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\nQjRJkqQJ/g/21FHlef3hUAAAAABJRU5ErkJggg==\n", 405 | "text/plain": [ 406 | "" 407 | ] 408 | }, 409 | "metadata": {}, 410 | "output_type": "display_data" 411 | } 412 | ], 413 | "source": [ 414 | "#matriz de confusion\n", 415 | "\n", 416 | "\n", 417 | "def plot_confusion_matrix(cm, classes,\n", 418 | " normalize=False,\n", 419 | " title='Confusion matrix',\n", 420 | " cmap=plt.cm.Blues):\n", 421 | " \"\"\"\n", 422 | " This function prints and plots the confusion matrix.\n", 423 | " Normalization can be applied by setting `normalize=True`.\n", 424 | " \"\"\"\n", 425 | " if normalize:\n", 426 | " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n", 427 | " print(\"Matriz de confusion normalizada\")\n", 428 | " else:\n", 429 | " print('Matriz de confusion, sin normalizacion')\n", 430 | " plt.imshow(cm, interpolation='nearest', cmap=cmap)\n", 431 | " plt.title(title, fontsize=15)\n", 432 | " plt.colorbar()\n", 433 | " tick_marks = np.arange(len(classes))\n", 434 | " plt.xticks(tick_marks, classes, rotation=45)\n", 435 | " plt.yticks(tick_marks, classes)\n", 436 | "\n", 437 | "\n", 438 | "\n", 439 | " print(cm)\n", 440 | "\n", 441 | " thresh = cm.max() / 2.\n", 442 | " for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n", 443 | " plt.text(j, i, round(cm[i, j],2),\n", 444 | " horizontalalignment=\"center\",\n", 445 | " color=\"white\" if cm[i, j] > thresh else \"black\")\n", 446 | "\n", 447 | " plt.tight_layout()\n", 448 | " plt.ylabel(r'$Clase\\; verdadera$',fontsize=15)\n", 449 | " plt.xlabel(r'$Predicci\\'on$',fontsize=15)\n", 450 | "\n", 451 | "# Compute confusion matrix\n", 452 | "cnf_matrix = confusion_matrix(y_test, y_pred)\n", 453 | "np.set_printoptions(precision=2)\n", 454 | "\n", 455 | "# Plot non-normalized confusion matrix\n", 456 | "class_names = [\"Bocina\",\"Liviano\",\"Moto\",\"Pesado\"]\n", 457 | "plt.figure()\n", 458 | "plot_confusion_matrix(cnf_matrix, classes=class_names,\n", 459 | " title=r'$Matriz\\; de\\; confusi\\'on,\\; sin\\; normalizaci\\'on$')\n", 460 | "\n", 461 | "# Plot normalized confusion matrix\n", 462 | "plt.figure()\n", 463 | "plot_confusion_matrix(cnf_matrix, classes=class_names, normalize=True,\n", 464 | " title=r'$Matriz\\;de\\; confusi\\'on\\; normalizada$')\n", 465 | "\n", 466 | "plt.savefig('matriz_conf.png', dpi=300, format='png', bbox_inches='tight')\n", 467 | "plt.show()" 468 | ] 469 | }, 470 | { 471 | "cell_type": "code", 472 | "execution_count": 7, 473 | "metadata": { 474 | "collapsed": false 475 | }, 476 | "outputs": [ 477 | { 478 | "name": "stdout", 479 | "output_type": "stream", 480 | "text": [ 481 | "[0.96, 0.93, 0.95]\n", 482 | "[0.9, 0.92, 0.91]\n", 483 | "[0.82, 0.87, 0.84]\n", 484 | "[0.8, 0.74, 0.77]\n", 485 | "plotMat: [[0.96, 0.93, 0.95], [0.9, 0.92, 0.91], [0.82, 0.87, 0.84], [0.8, 0.74, 0.77]]\n", 486 | "support: [28, 38, 53, 38]\n" 487 | ] 488 | }, 489 | { 490 | "name": "stderr", 491 | "output_type": "stream", 492 | "text": [ 493 | "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py:221: MatplotlibDeprecationWarning: This has been deprecated in mpl 1.5, please use the\n", 494 | "axes property. A removal date has not been set.\n", 495 | " warnings.warn(_get_axes_msg, mplDeprecation, stacklevel=1)\n" 496 | ] 497 | }, 498 | { 499 | "data": { 500 | "image/png": "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\n", 501 | "text/plain": [ 502 | "" 503 | ] 504 | }, 505 | "metadata": {}, 506 | "output_type": "display_data" 507 | } 508 | ], 509 | "source": [ 510 | "import matplotlib.pyplot as plt\n", 511 | "import numpy as np\n", 512 | "\n", 513 | "def show_values(pc, fmt=\"%.2f\", **kw):\n", 514 | "\n", 515 | " from itertools import izip\n", 516 | " pc.update_scalarmappable()\n", 517 | " ax = pc.get_axes()\n", 518 | " for p, color, value in izip(pc.get_paths(), pc.get_facecolors(), pc.get_array()):\n", 519 | " x, y = p.vertices[:-2, :].mean(0)\n", 520 | " if np.all(color[:3] > 0.5):\n", 521 | " color = (0.0, 0.0, 0.0)\n", 522 | " else:\n", 523 | " color = (1.0, 1.0, 1.0)\n", 524 | " ax.text(x, y, fmt % value, ha=\"center\", va=\"center\", color=color, **kw)\n", 525 | "\n", 526 | "\n", 527 | "def cm2inch(*tupl):\n", 528 | " \n", 529 | "\n", 530 | " inch = 2.54\n", 531 | " if type(tupl[0]) == tuple:\n", 532 | " return tuple(i/inch for i in tupl[0])\n", 533 | " else:\n", 534 | " return tuple(i/inch for i in tupl)\n", 535 | "\n", 536 | "\n", 537 | "def heatmap(AUC, title, xlabel, ylabel, xticklabels, yticklabels, figure_width=40, figure_height=20, correct_orientation=False, cmap='RdBu'):\n", 538 | "\n", 539 | " # Plot it out\n", 540 | " fig, ax = plt.subplots() \n", 541 | " #c = ax.pcolor(AUC, edgecolors='k', linestyle= 'dashed', linewidths=0.2, cmap='RdBu', vmin=0.0, vmax=1.0)\n", 542 | " c = ax.pcolor(AUC, edgecolors='k', linestyle= 'dashed', linewidths=0.2, cmap=cmap)\n", 543 | "\n", 544 | " # put the major ticks at the middle of each cell\n", 545 | " ax.set_yticks(np.arange(AUC.shape[0]) + 0.5, minor=False)\n", 546 | " ax.set_xticks(np.arange(AUC.shape[1]) + 0.5, minor=False)\n", 547 | "\n", 548 | " # set tick labels\n", 549 | " #ax.set_xticklabels(np.arange(1,AUC.shape[1]+1), minor=False)\n", 550 | " ax.set_xticklabels(xticklabels, minor=False)\n", 551 | " ax.set_yticklabels(yticklabels, minor=False)\n", 552 | "\n", 553 | " # set title and x/y labels\n", 554 | " plt.title(title, fontsize=15)\n", 555 | " plt.xlabel(xlabel, fontsize=15)\n", 556 | " plt.ylabel(ylabel, fontsize=15) \n", 557 | "\n", 558 | " # Remove last blank column\n", 559 | " plt.xlim( (0, AUC.shape[1]) )\n", 560 | "\n", 561 | " # Turn off all the ticks\n", 562 | " ax = plt.gca() \n", 563 | " for t in ax.xaxis.get_major_ticks():\n", 564 | " t.tick1On = False\n", 565 | " t.tick2On = False\n", 566 | " for t in ax.yaxis.get_major_ticks():\n", 567 | " t.tick1On = False\n", 568 | " t.tick2On = False\n", 569 | "\n", 570 | " # Add color bar\n", 571 | " plt.colorbar(c)\n", 572 | "\n", 573 | " # Add text in each cell \n", 574 | " show_values(c)\n", 575 | "\n", 576 | " # Proper orientation (origin at the top left instead of bottom left)\n", 577 | " if correct_orientation:\n", 578 | " ax.invert_yaxis()\n", 579 | " ax.xaxis.tick_top() \n", 580 | "\n", 581 | " # resize \n", 582 | " fig = plt.gcf()\n", 583 | " #fig.set_size_inches(cm2inch(40, 20))\n", 584 | " #fig.set_size_inches(cm2inch(40*4, 20*4))\n", 585 | " fig.set_size_inches(cm2inch(figure_width, figure_height))\n", 586 | "\n", 587 | "\n", 588 | "\n", 589 | "def plot_classification_report(classification_report, title=r'$Puntajes\\; clasificador$ ', cmap='Blues'):\n", 590 | " \n", 591 | " lines = classification_report.split('\\n')\n", 592 | "\n", 593 | " classes = []\n", 594 | " plotMat = []\n", 595 | " support = []\n", 596 | " class_names = []\n", 597 | " for line in lines[2 : (len(lines) - 2)]:\n", 598 | " t = line.strip().split()\n", 599 | " if len(t) < 2: continue\n", 600 | " classes.append(t[0])\n", 601 | " v = [float(x) for x in t[1: len(t) - 1]]\n", 602 | " support.append(int(t[-1]))\n", 603 | " class_names.append(t[0])\n", 604 | " print(v)\n", 605 | " plotMat.append(v)\n", 606 | "\n", 607 | " print('plotMat: {0}'.format(plotMat))\n", 608 | " print('support: {0}'.format(support))\n", 609 | "\n", 610 | " xlabel = r'$Puntajes$'\n", 611 | " ylabel = r'$Clases$'\n", 612 | " xticklabels = ['Precision', 'Recall', 'F1-score']\n", 613 | " yticklabels = ['{0} ({1})'.format(class_names[idx], sup) for idx, sup in enumerate(support)]\n", 614 | " figure_width = 25\n", 615 | " figure_height = len(class_names) + 7\n", 616 | " correct_orientation = False\n", 617 | " heatmap(np.array(plotMat), title, xlabel, ylabel, xticklabels, yticklabels, figure_width, figure_height, correct_orientation, cmap=cmap)\n", 618 | "\n", 619 | "\n", 620 | "\n", 621 | "plot_classification_report(report)\n", 622 | "plt.savefig('test_plot_classif_report.png', dpi=300, format='png', bbox_inches='tight')\n", 623 | "plt.show()\n", 624 | "plt.close()\n", 625 | "\n", 626 | "\n", 627 | "\n" 628 | ] 629 | }, 630 | { 631 | "cell_type": "markdown", 632 | "metadata": { 633 | "collapsed": false 634 | }, 635 | "source": [ 636 | "## Curvas de aprendizaje" 637 | ] 638 | }, 639 | { 640 | "cell_type": "code", 641 | "execution_count": 8, 642 | "metadata": { 643 | "collapsed": false 644 | }, 645 | "outputs": [ 646 | { 647 | "data": { 648 | "image/png": "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\n/wPD6Zsy6zPmdgAAAABJRU5ErkJggg==\n", 649 | "text/plain": [ 650 | "" 651 | ] 652 | }, 653 | "metadata": {}, 654 | "output_type": "display_data" 655 | } 656 | ], 657 | "source": [ 658 | "from sklearn.model_selection import learning_curve\n", 659 | "from sklearn.model_selection import ShuffleSplit\n", 660 | "\n", 661 | "\n", 662 | "def plot_learning_curve(estimator, title, X, y, ylim=None, cv=None,\n", 663 | " n_jobs=1, train_sizes=np.linspace(.1, 1.0, 5)):\n", 664 | "\n", 665 | " plt.figure()\n", 666 | " plt.title(title)\n", 667 | " if ylim is not None:\n", 668 | " plt.ylim(*ylim)\n", 669 | " plt.xlabel(\"Muestras de entrenamiento\")\n", 670 | " plt.ylabel(\"Tasa reconocimiento\")\n", 671 | " train_sizes, train_scores, test_scores = learning_curve(\n", 672 | " estimator, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)\n", 673 | " train_scores_mean = np.mean(train_scores, axis=1)\n", 674 | " train_scores_std = np.std(train_scores, axis=1)\n", 675 | " test_scores_mean = np.mean(test_scores, axis=1)\n", 676 | " test_scores_std = np.std(test_scores, axis=1)\n", 677 | " plt.grid()\n", 678 | "\n", 679 | " plt.fill_between(train_sizes, train_scores_mean - train_scores_std,\n", 680 | " train_scores_mean + train_scores_std, alpha=0.1,\n", 681 | " color=\"r\")\n", 682 | " plt.fill_between(train_sizes, test_scores_mean - test_scores_std,\n", 683 | " test_scores_mean + test_scores_std, alpha=0.1, color=\"b\")\n", 684 | " plt.plot(train_sizes, train_scores_mean, 'o-', color=\"r\",\n", 685 | " label=r\"$Tasa\\; reconocimento\\; entrenamiento$\")\n", 686 | " plt.plot(train_sizes, test_scores_mean, 'o-', color=\"g\",\n", 687 | " label=r\"$Tasa\\; reconocimiento\\; validaci\\'on\\; cruzada$\")\n", 688 | "\n", 689 | " plt.legend(loc=\"best\")\n", 690 | " return plt\n", 691 | "\n", 692 | "\n", 693 | "title = \"Curva de aprendizaje (SVM, \" + str(best_param['kernel'])+ \" kernel, $\\gamma=$\" + str(best_param['gamma'])+\")\"\n", 694 | "# SVC is more expensive so we do a lower number of CV iterations:\n", 695 | "cv = ShuffleSplit(n_splits=10, test_size=0.3, random_state=0)\n", 696 | "estimator = svm.SVC(kernel=best_param['kernel'],C = best_param['C'], gamma = best_param['gamma'])\n", 697 | "plot_learning_curve(estimator, title, x, y, (0.0, 1.01), cv=cv, n_jobs=4)\n", 698 | "plt.savefig('learning_curve.png', dpi=300, format='png', bbox_inches='tight')\n", 699 | "plt.show()\n" 700 | ] 701 | } 702 | ], 703 | "metadata": { 704 | "kernelspec": { 705 | "display_name": "Python 2", 706 | "language": "python", 707 | "name": "python2" 708 | }, 709 | "language_info": { 710 | "codemirror_mode": { 711 | "name": "ipython", 712 | "version": 2 713 | }, 714 | "file_extension": ".py", 715 | "mimetype": "text/x-python", 716 | "name": "python", 717 | "nbconvert_exporter": "python", 718 | "pygments_lexer": "ipython2", 719 | "version": "2.7.12" 720 | } 721 | }, 722 | "nbformat": 4, 723 | "nbformat_minor": 1 724 | } 725 | --------------------------------------------------------------------------------