arnaucube
arnaucube/objectImageIdentifierAIPublic Self-hosted repository
objectImageIdentifierAI/serverPredictor/HotdogClassifierChooser.ipynb
serverPredictor/HotdogClassifierChooser.ipynbRaw
  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      "/home/asus/anaconda3/lib/python3.6/site-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     ]
 15    }
 16   ],
 17   "source": [
 18    "from PIL import Image, ImageOps\n",
 19    "import numpy, os\n",
 20    "from sklearn.ensemble import AdaBoostClassifier\n",
 21    "from sklearn.cross_validation import cross_val_score\n",
 22    "import numpy as np\n",
 23    "import pandas as pd"
 24   ]
 25  },
 26  {
 27   "cell_type": "code",
 28   "execution_count": 2,
 29   "metadata": {
 30    "collapsed": true
 31   },
 32   "outputs": [],
 33   "source": [
 34    "path=\"dataset/\"\n",
 35    "Xlist=[]\n",
 36    "Ylist=[]\n",
 37    "size = 100, 100"
 38   ]
 39  },
 40  {
 41   "cell_type": "code",
 42   "execution_count": 3,
 43   "metadata": {},
 44   "outputs": [
 45    {
 46     "name": "stdout",
 47     "output_type": "stream",
 48     "text": [
 49      "dataset/object/27.png\n",
 50      "dataset/object/82.png\n",
 51      "dataset/object/83.png\n",
 52      "dataset/object/100.png\n",
 53      "dataset/object/0.png\n",
 54      "dataset/object/13.png\n",
 55      "dataset/object/45.png\n",
 56      "dataset/object/64.png\n",
 57      "dataset/object/19.png\n",
 58      "dataset/object/101.png\n",
 59      "dataset/object/40.png\n",
 60      "dataset/object/97.png\n",
 61      "dataset/object/41.png\n",
 62      "dataset/object/7.png\n",
 63      "dataset/object/66.png\n",
 64      "dataset/object/55.png\n",
 65      "dataset/object/56.png\n",
 66      "dataset/object/65.png\n",
 67      "dataset/object/18.png\n",
 68      "dataset/object/24.png\n",
 69      "dataset/object/105.png\n",
 70      "dataset/object/116.png\n",
 71      "dataset/object/117.png\n",
 72      "dataset/object/104.png\n",
 73      "dataset/object/63.png\n",
 74      "dataset/object/38.png\n",
 75      "dataset/object/58.png\n",
 76      "dataset/object/103.png\n",
 77      "dataset/object/112.png\n",
 78      "dataset/object/33.png\n",
 79      "dataset/object/76.png\n",
 80      "dataset/object/59.png\n",
 81      "dataset/object/96.png\n",
 82      "dataset/object/91.png\n",
 83      "dataset/object/57.png\n",
 84      "dataset/object/2.png\n",
 85      "dataset/object/75.png\n",
 86      "dataset/object/107.png\n",
 87      "dataset/object/50.png\n",
 88      "dataset/object/16.png\n",
 89      "dataset/object/32.png\n",
 90      "dataset/object/15.png\n",
 91      "dataset/object/5.png\n",
 92      "dataset/object/72.png\n",
 93      "dataset/object/52.png\n",
 94      "dataset/object/4.png\n",
 95      "dataset/object/28.png\n",
 96      "dataset/object/43.png\n",
 97      "dataset/object/87.png\n",
 98      "dataset/object/98.png\n",
 99      "dataset/object/71.png\n",
100      "dataset/object/102.png\n",
101      "dataset/object/62.png\n",
102      "dataset/object/9.png\n",
103      "dataset/object/6.png\n",
104      "dataset/object/85.png\n",
105      "dataset/object/70.png\n",
106      "dataset/object/42.png\n",
107      "dataset/object/34.png\n",
108      "dataset/object/81.png\n",
109      "dataset/object/94.png\n",
110      "dataset/object/26.png\n",
111      "dataset/object/90.png\n",
112      "dataset/object/44.png\n",
113      "dataset/object/60.png\n",
114      "dataset/object/17.png\n",
115      "dataset/object/10.png\n",
116      "dataset/object/53.png\n",
117      "dataset/object/25.png\n",
118      "dataset/object/21.png\n",
119      "dataset/object/22.png\n",
120      "dataset/object/30.png\n",
121      "dataset/object/78.png\n",
122      "dataset/object/118.png\n",
123      "dataset/object/110.png\n",
124      "dataset/object/79.png\n",
125      "dataset/object/77.png\n",
126      "dataset/object/12.png\n",
127      "dataset/object/115.png\n",
128      "dataset/object/67.png\n",
129      "dataset/object/84.png\n",
130      "dataset/object/11.png\n",
131      "dataset/object/86.png\n",
132      "dataset/object/89.png\n",
133      "dataset/object/113.png\n",
134      "dataset/noobject/image_0056.jpg\n",
135      "dataset/noobject/image_0181.jpg\n",
136      "dataset/noobject/image_0127.jpg\n",
137      "dataset/noobject/image_0142.jpg\n",
138      "dataset/noobject/image_0025.jpg\n",
139      "dataset/noobject/image_0065.jpg\n",
140      "dataset/noobject/image_0174.jpg\n",
141      "dataset/noobject/image_0091.jpg\n",
142      "dataset/noobject/image_0124.jpg\n",
143      "dataset/noobject/image_0086.jpg\n",
144      "dataset/noobject/image_0079.jpg\n",
145      "dataset/noobject/image_0058.jpg\n",
146      "dataset/noobject/image_0060.jpg\n",
147      "dataset/noobject/image_0119.jpg\n",
148      "dataset/noobject/image_0023.jpg\n",
149      "dataset/noobject/image_0075.jpg\n",
150      "dataset/noobject/image_0020.jpg\n",
151      "dataset/noobject/image_0013.jpg\n",
152      "dataset/noobject/image_0126.jpg\n",
153      "dataset/noobject/image_0012.jpg\n",
154      "dataset/noobject/image_0055.jpg\n",
155      "dataset/noobject/image_0176.jpg\n",
156      "dataset/noobject/image_0144.jpg\n",
157      "dataset/noobject/image_0048.jpg\n",
158      "dataset/noobject/image_0121.jpg\n",
159      "dataset/noobject/image_0070.jpg\n",
160      "dataset/noobject/image_0082.jpg\n",
161      "dataset/noobject/image_0095.jpg\n",
162      "dataset/noobject/image_0022.jpg\n",
163      "dataset/noobject/image_0120.jpg\n",
164      "dataset/noobject/image_0139.jpg\n",
165      "dataset/noobject/image_0073.jpg\n",
166      "dataset/noobject/image_0090.jpg\n",
167      "dataset/noobject/image_0145.jpg\n",
168      "dataset/noobject/image_0173.jpg\n",
169      "dataset/noobject/image_0078.jpg\n",
170      "dataset/noobject/image_0085.jpg\n",
171      "dataset/noobject/image_0083.jpg\n",
172      "dataset/noobject/image_0179.jpg\n",
173      "dataset/noobject/image_0050.jpg\n",
174      "dataset/noobject/image_0076.jpg\n",
175      "dataset/noobject/image_0014.jpg\n",
176      "dataset/noobject/image_0054.jpg\n",
177      "dataset/noobject/image_0066.jpg\n",
178      "dataset/noobject/image_0001.jpg\n",
179      "dataset/noobject/image_0047.jpg\n",
180      "dataset/noobject/image_0077.jpg\n",
181      "dataset/noobject/image_0122.jpg\n",
182      "dataset/noobject/image_0068.jpg\n",
183      "dataset/noobject/image_0049.jpg\n",
184      "dataset/noobject/image_0092.jpg\n",
185      "dataset/noobject/image_0138.jpg\n",
186      "dataset/noobject/image_0072.jpg\n",
187      "dataset/noobject/image_0146.jpg\n",
188      "dataset/noobject/image_0061.jpg\n",
189      "dataset/noobject/image_0011.jpg\n",
190      "dataset/noobject/image_0002.jpg\n",
191      "dataset/noobject/image_0143.jpg\n",
192      "dataset/noobject/image_0088.jpg\n",
193      "dataset/noobject/image_0062.jpg\n",
194      "dataset/noobject/image_0089.jpg\n",
195      "dataset/noobject/image_0018.jpg\n",
196      "dataset/noobject/image_0024.jpg\n",
197      "dataset/noobject/image_0064.jpg\n",
198      "dataset/noobject/image_0074.jpg\n",
199      "dataset/noobject/image_0052.jpg\n",
200      "dataset/noobject/image_0096.jpg\n",
201      "dataset/noobject/image_0178.jpg\n",
202      "dataset/noobject/image_0067.jpg\n",
203      "dataset/noobject/image_0140.jpg\n",
204      "dataset/noobject/image_0084.jpg\n",
205      "dataset/noobject/image_0010.jpg\n",
206      "dataset/noobject/image_0081.jpg\n",
207      "dataset/noobject/image_0059.jpg\n",
208      "dataset/noobject/image_0016.jpg\n",
209      "dataset/noobject/image_0175.jpg\n",
210      "dataset/noobject/image_0094.jpg\n",
211      "dataset/noobject/image_0071.jpg\n",
212      "dataset/noobject/image_0080.jpg\n",
213      "dataset/noobject/image_0125.jpg\n",
214      "dataset/noobject/image_0008.jpg\n",
215      "dataset/noobject/image_0019.jpg\n",
216      "dataset/noobject/image_0017.jpg\n",
217      "dataset/noobject/image_0180.jpg\n"
218     ]
219    }
220   ],
221   "source": [
222    "for directory in os.listdir(path):\n",
223    "    for file in os.listdir(path+directory):\n",
224    "        print(path+directory+\"/\"+file)\n",
225    "        img=Image.open(path+directory+\"/\"+file)\n",
226    "        #resize\n",
227    "        thumb = ImageOps.fit(img, size, Image.ANTIALIAS)\n",
228    "        image_data = np.array(thumb).flatten()[:100]\n",
229    "        #image_data=numpy.array(img).flatten()[:50] #in my case the images dont have the same dimensions, so [:50] only takes the first 50 values\n",
230    "        Xlist.append(image_data)\n",
231    "        Ylist.append(directory)"
232   ]
233  },
234  {
235   "cell_type": "code",
236   "execution_count": 4,
237   "metadata": {
238    "collapsed": true
239   },
240   "outputs": [],
241   "source": [
242    "from sklearn.model_selection import train_test_split\n",
243    "X_train, X_test, y_train, y_test = train_test_split(Xlist, Ylist, test_size=0.2)"
244   ]
245  },
246  {
247   "cell_type": "markdown",
248   "metadata": {},
249   "source": [
250    "### AdaBoostClassifier"
251   ]
252  },
253  {
254   "cell_type": "code",
255   "execution_count": 5,
256   "metadata": {
257    "collapsed": true
258   },
259   "outputs": [],
260   "source": [
261    "clf=AdaBoostClassifier(n_estimators=100)"
262   ]
263  },
264  {
265   "cell_type": "code",
266   "execution_count": 6,
267   "metadata": {
268    "collapsed": true
269   },
270   "outputs": [],
271   "source": [
272    "scores = cross_val_score(clf, X_train, y_train, cv=3)"
273   ]
274  },
275  {
276   "cell_type": "code",
277   "execution_count": 7,
278   "metadata": {},
279   "outputs": [
280    {
281     "name": "stdout",
282     "output_type": "stream",
283     "text": [
284      "0.77037037037\n"
285     ]
286    }
287   ],
288   "source": [
289    "print(scores.mean())"
290   ]
291  },
292  {
293   "cell_type": "markdown",
294   "metadata": {},
295   "source": [
296    "### GaussianNB"
297   ]
298  },
299  {
300   "cell_type": "code",
301   "execution_count": 8,
302   "metadata": {
303    "collapsed": true
304   },
305   "outputs": [],
306   "source": [
307    "from sklearn.naive_bayes import GaussianNB"
308   ]
309  },
310  {
311   "cell_type": "code",
312   "execution_count": 9,
313   "metadata": {
314    "collapsed": true
315   },
316   "outputs": [],
317   "source": [
318    "clf = GaussianNB()"
319   ]
320  },
321  {
322   "cell_type": "code",
323   "execution_count": 10,
324   "metadata": {
325    "collapsed": true
326   },
327   "outputs": [],
328   "source": [
329    "scores = cross_val_score(clf, Xlist, Ylist)"
330   ]
331  },
332  {
333   "cell_type": "code",
334   "execution_count": 11,
335   "metadata": {},
336   "outputs": [
337    {
338     "name": "stdout",
339     "output_type": "stream",
340     "text": [
341      "0.721908939014\n"
342     ]
343    }
344   ],
345   "source": [
346    "print(scores.mean())"
347   ]
348  },
349  {
350   "cell_type": "markdown",
351   "metadata": {},
352   "source": [
353    "### KNeighborsClassifier"
354   ]
355  },
356  {
357   "cell_type": "code",
358   "execution_count": 12,
359   "metadata": {
360    "collapsed": true
361   },
362   "outputs": [],
363   "source": [
364    "from sklearn.neighbors import KNeighborsClassifier"
365   ]
366  },
367  {
368   "cell_type": "code",
369   "execution_count": 13,
370   "metadata": {
371    "collapsed": true
372   },
373   "outputs": [],
374   "source": [
375    "clf = KNeighborsClassifier(n_neighbors=10)"
376   ]
377  },
378  {
379   "cell_type": "code",
380   "execution_count": 14,
381   "metadata": {
382    "collapsed": true
383   },
384   "outputs": [],
385   "source": [
386    "scores = cross_val_score(clf, Xlist, Ylist)"
387   ]
388  },
389  {
390   "cell_type": "code",
391   "execution_count": 15,
392   "metadata": {},
393   "outputs": [
394    {
395     "name": "stdout",
396     "output_type": "stream",
397     "text": [
398      "0.751357560568\n"
399     ]
400    }
401   ],
402   "source": [
403    "print(scores.mean())"
404   ]
405  },
406  {
407   "cell_type": "markdown",
408   "metadata": {},
409   "source": [
410    "### LinearSVC"
411   ]
412  },
413  {
414   "cell_type": "code",
415   "execution_count": 16,
416   "metadata": {
417    "collapsed": true
418   },
419   "outputs": [],
420   "source": [
421    "from sklearn.svm import LinearSVC"
422   ]
423  },
424  {
425   "cell_type": "code",
426   "execution_count": 17,
427   "metadata": {
428    "collapsed": true
429   },
430   "outputs": [],
431   "source": [
432    "clf = LinearSVC()"
433   ]
434  },
435  {
436   "cell_type": "code",
437   "execution_count": 18,
438   "metadata": {
439    "collapsed": true
440   },
441   "outputs": [],
442   "source": [
443    "scores = cross_val_score(clf, Xlist, Ylist)"
444   ]
445  },
446  {
447   "cell_type": "code",
448   "execution_count": 19,
449   "metadata": {},
450   "outputs": [
451    {
452     "name": "stdout",
453     "output_type": "stream",
454     "text": [
455      "0.638575605681\n"
456     ]
457    }
458   ],
459   "source": [
460    "print(scores.mean())"
461   ]
462  },
463  {
464   "cell_type": "markdown",
465   "metadata": {},
466   "source": [
467    "### SVC"
468   ]
469  },
470  {
471   "cell_type": "code",
472   "execution_count": 20,
473   "metadata": {
474    "collapsed": true
475   },
476   "outputs": [],
477   "source": [
478    "from sklearn.svm import SVC"
479   ]
480  },
481  {
482   "cell_type": "code",
483   "execution_count": 21,
484   "metadata": {
485    "collapsed": true
486   },
487   "outputs": [],
488   "source": [
489    "clf = SVC()"
490   ]
491  },
492  {
493   "cell_type": "code",
494   "execution_count": 22,
495   "metadata": {
496    "collapsed": true
497   },
498   "outputs": [],
499   "source": [
500    "scores = cross_val_score(clf, Xlist, Ylist)"
501   ]
502  },
503  {
504   "cell_type": "code",
505   "execution_count": 23,
506   "metadata": {},
507   "outputs": [
508    {
509     "name": "stdout",
510     "output_type": "stream",
511     "text": [
512      "0.668650793651\n"
513     ]
514    }
515   ],
516   "source": [
517    "print(scores.mean())"
518   ]
519  },
520  {
521   "cell_type": "markdown",
522   "metadata": {},
523   "source": [
524    "### GaussianProcessClassifier"
525   ]
526  },
527  {
528   "cell_type": "code",
529   "execution_count": 24,
530   "metadata": {
531    "collapsed": true
532   },
533   "outputs": [],
534   "source": [
535    "from sklearn.gaussian_process import GaussianProcessClassifier"
536   ]
537  },
538  {
539   "cell_type": "code",
540   "execution_count": 25,
541   "metadata": {
542    "collapsed": true
543   },
544   "outputs": [],
545   "source": [
546    "clf = GaussianProcessClassifier()"
547   ]
548  },
549  {
550   "cell_type": "code",
551   "execution_count": 26,
552   "metadata": {
553    "collapsed": true
554   },
555   "outputs": [],
556   "source": [
557    "scores = cross_val_score(clf, Xlist, Ylist)"
558   ]
559  },
560  {
561   "cell_type": "code",
562   "execution_count": 27,
563   "metadata": {},
564   "outputs": [
565    {
566     "name": "stdout",
567     "output_type": "stream",
568     "text": [
569      "0.491228070175\n"
570     ]
571    }
572   ],
573   "source": [
574    "print(scores.mean())"
575   ]
576  },
577  {
578   "cell_type": "markdown",
579   "metadata": {},
580   "source": [
581    "### RandomForestClassifier"
582   ]
583  },
584  {
585   "cell_type": "code",
586   "execution_count": 28,
587   "metadata": {
588    "collapsed": true
589   },
590   "outputs": [],
591   "source": [
592    "from sklearn.ensemble import RandomForestClassifier"
593   ]
594  },
595  {
596   "cell_type": "code",
597   "execution_count": 29,
598   "metadata": {
599    "collapsed": true
600   },
601   "outputs": [],
602   "source": [
603    "clf = RandomForestClassifier()"
604   ]
605  },
606  {
607   "cell_type": "code",
608   "execution_count": 30,
609   "metadata": {
610    "collapsed": true
611   },
612   "outputs": [],
613   "source": [
614    "scores = cross_val_score(clf, Xlist, Ylist)"
615   ]
616  },
617  {
618   "cell_type": "code",
619   "execution_count": 31,
620   "metadata": {},
621   "outputs": [
622    {
623     "name": "stdout",
624     "output_type": "stream",
625     "text": [
626      "0.710317460317\n"
627     ]
628    }
629   ],
630   "source": [
631    "print(scores.mean())"
632   ]
633  },
634  {
635   "cell_type": "markdown",
636   "metadata": {},
637   "source": [
638    "# Hyperparameters Tuning using sklearn pipeline and gridsearch"
639   ]
640  },
641  {
642   "cell_type": "code",
643   "execution_count": 32,
644   "metadata": {
645    "collapsed": true
646   },
647   "outputs": [],
648   "source": [
649    "from sklearn.pipeline import Pipeline\n",
650    "from sklearn.model_selection import GridSearchCV\n",
651    "from sklearn.model_selection import RandomizedSearchCV"
652   ]
653  },
654  {
655   "cell_type": "code",
656   "execution_count": 33,
657   "metadata": {
658    "collapsed": true
659   },
660   "outputs": [],
661   "source": [
662    "pipe = [Pipeline([\n",
663    "        ('clf', RandomForestClassifier()),\n",
664    "    ]),\n",
665    "    Pipeline([\n",
666    "        ('clf', KNeighborsClassifier()),\n",
667    "    ]),\n",
668    "    Pipeline([\n",
669    "        ('clf', GaussianProcessClassifier()),\n",
670    "    ]),\n",
671    "    Pipeline([\n",
672    "        ('clf', AdaBoostClassifier()),\n",
673    "    ]),\n",
674    "    Pipeline([\n",
675    "        ('clf', SVC()),\n",
676    "    ]),\n",
677    "]"
678   ]
679  },
680  {
681   "cell_type": "code",
682   "execution_count": 34,
683   "metadata": {
684    "collapsed": true
685   },
686   "outputs": [],
687   "source": [
688    "param_grid = [dict(clf__n_estimators=[3, 10, 100]),\n",
689    "              dict(clf__n_neighbors=[3,10]),\n",
690    "              dict(clf__n_restarts_optimizer=[0,1]),\n",
691    "              dict(clf__n_estimators=[3, 10, 100]),\n",
692    "              dict(clf__C=[3, 10, 100]),\n",
693    "             ]"
694   ]
695  },
696  {
697   "cell_type": "code",
698   "execution_count": 35,
699   "metadata": {
700    "collapsed": true
701   },
702   "outputs": [],
703   "source": [
704    "grid_search = GridSearchCV(pipe, param_grid=param_grid, n_jobs=-1, verbose=1, cv=3)"
705   ]
706  },
707  {
708   "cell_type": "code",
709   "execution_count": 36,
710   "metadata": {
711    "collapsed": true
712   },
713   "outputs": [],
714   "source": [
715    "#grid_search.fit(Xlist, Ylist)"
716   ]
717  },
718  {
719   "cell_type": "code",
720   "execution_count": 37,
721   "metadata": {
722    "collapsed": true
723   },
724   "outputs": [],
725   "source": [
726    "# Utility function to report best scores\n",
727    "def report(results, n_top=10):\n",
728    "    for i in range(1, n_top + 1):\n",
729    "        candidates = np.flatnonzero(results['rank_test_score'] == i)\n",
730    "        for candidate in candidates:\n",
731    "            print(\"Model with rank: {0}\".format(i))\n",
732    "            print(\"Mean validation score: {0:.3f} (std: {1:.3f})\".format(\n",
733    "                  results['mean_test_score'][candidate],\n",
734    "                  results['std_test_score'][candidate]))\n",
735    "            print(\"Parameters: {0}\".format(results['params'][candidate]))\n",
736    "            print(\"\")"
737   ]
738  },
739  {
740   "cell_type": "code",
741   "execution_count": 38,
742   "metadata": {
743    "scrolled": false
744   },
745   "outputs": [
746    {
747     "name": "stdout",
748     "output_type": "stream",
749     "text": [
750      "-----\n",
751      "classifier:\n",
752      "RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
753      "            max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
754      "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
755      "            min_samples_leaf=1, min_samples_split=2,\n",
756      "            min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,\n",
757      "            oob_score=False, random_state=None, verbose=0,\n",
758      "            warm_start=False)\n",
759      "Fitting 3 folds for each of 3 candidates, totalling 9 fits\n"
760     ]
761    },
762    {
763     "name": "stderr",
764     "output_type": "stream",
765     "text": [
766      "[Parallel(n_jobs=-1)]: Done   9 out of   9 | elapsed:    1.5s finished\n"
767     ]
768    },
769    {
770     "name": "stdout",
771     "output_type": "stream",
772     "text": [
773      "GridSearchCV took 2.38 seconds for 3 candidate parameter settings.\n",
774      "finished GridSearch\n",
775      "Model with rank: 1\n",
776      "Mean validation score: 0.815 (std: 0.073)\n",
777      "Parameters: {'clf__n_estimators': 100}\n",
778      "\n",
779      "Model with rank: 2\n",
780      "Mean validation score: 0.763 (std: 0.093)\n",
781      "Parameters: {'clf__n_estimators': 10}\n",
782      "\n",
783      "Model with rank: 3\n",
784      "Mean validation score: 0.756 (std: 0.110)\n",
785      "Parameters: {'clf__n_estimators': 3}\n",
786      "\n",
787      "-----\n",
788      "classifier:\n",
789      "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
790      "           metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
791      "           weights='uniform')\n",
792      "Fitting 3 folds for each of 2 candidates, totalling 6 fits\n",
793      "GridSearchCV took 0.23 seconds for 2 candidate parameter settings.\n",
794      "finished GridSearch\n",
795      "Model with rank: 1\n",
796      "Mean validation score: 0.778 (std: 0.048)\n",
797      "Parameters: {'clf__n_neighbors': 3}\n",
798      "\n",
799      "Model with rank: 2\n",
800      "Mean validation score: 0.704 (std: 0.010)\n",
801      "Parameters: {'clf__n_neighbors': 10}\n",
802      "\n",
803      "-----\n",
804      "classifier:\n",
805      "GaussianProcessClassifier(copy_X_train=True, kernel=None,\n",
806      "             max_iter_predict=100, multi_class='one_vs_rest', n_jobs=1,\n",
807      "             n_restarts_optimizer=0, optimizer='fmin_l_bfgs_b',\n",
808      "             random_state=None, warm_start=False)\n",
809      "Fitting 3 folds for each of 2 candidates, totalling 6 fits\n"
810     ]
811    },
812    {
813     "name": "stderr",
814     "output_type": "stream",
815     "text": [
816      "[Parallel(n_jobs=-1)]: Done   6 out of   6 | elapsed:    0.1s remaining:    0.0s\n",
817      "[Parallel(n_jobs=-1)]: Done   6 out of   6 | elapsed:    0.1s finished\n"
818     ]
819    },
820    {
821     "name": "stdout",
822     "output_type": "stream",
823     "text": [
824      "GridSearchCV took 0.36 seconds for 2 candidate parameter settings.\n",
825      "finished GridSearch\n",
826      "Model with rank: 1\n",
827      "Mean validation score: 0.489 (std: 0.000)\n",
828      "Parameters: {'clf__n_restarts_optimizer': 0}\n",
829      "\n",
830      "Model with rank: 1\n",
831      "Mean validation score: 0.489 (std: 0.000)\n",
832      "Parameters: {'clf__n_restarts_optimizer': 1}\n",
833      "\n",
834      "-----\n",
835      "classifier:\n",
836      "AdaBoostClassifier(algorithm='SAMME.R', base_estimator=None,\n",
837      "          learning_rate=1.0, n_estimators=50, random_state=None)\n",
838      "Fitting 3 folds for each of 3 candidates, totalling 9 fits\n"
839     ]
840    },
841    {
842     "name": "stderr",
843     "output_type": "stream",
844     "text": [
845      "[Parallel(n_jobs=-1)]: Done   6 out of   6 | elapsed:    0.2s remaining:    0.0s\n",
846      "[Parallel(n_jobs=-1)]: Done   6 out of   6 | elapsed:    0.2s finished\n",
847      "[Parallel(n_jobs=-1)]: Done   9 out of   9 | elapsed:    0.9s finished\n"
848     ]
849    },
850    {
851     "name": "stdout",
852     "output_type": "stream",
853     "text": [
854      "GridSearchCV took 1.16 seconds for 3 candidate parameter settings.\n",
855      "finished GridSearch\n",
856      "Model with rank: 1\n",
857      "Mean validation score: 0.807 (std: 0.093)\n",
858      "Parameters: {'clf__n_estimators': 3}\n",
859      "\n",
860      "Model with rank: 2\n",
861      "Mean validation score: 0.756 (std: 0.048)\n",
862      "Parameters: {'clf__n_estimators': 100}\n",
863      "\n",
864      "Model with rank: 3\n",
865      "Mean validation score: 0.733 (std: 0.054)\n",
866      "Parameters: {'clf__n_estimators': 10}\n",
867      "\n",
868      "-----\n",
869      "classifier:\n",
870      "SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
871      "  decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n",
872      "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
873      "  tol=0.001, verbose=False)\n",
874      "Fitting 3 folds for each of 3 candidates, totalling 9 fits\n",
875      "GridSearchCV took 0.35 seconds for 3 candidate parameter settings.\n",
876      "finished GridSearch\n",
877      "Model with rank: 1\n",
878      "Mean validation score: 0.689 (std: 0.031)\n",
879      "Parameters: {'clf__C': 3}\n",
880      "\n",
881      "Model with rank: 1\n",
882      "Mean validation score: 0.689 (std: 0.031)\n",
883      "Parameters: {'clf__C': 10}\n",
884      "\n",
885      "Model with rank: 1\n",
886      "Mean validation score: 0.689 (std: 0.031)\n",
887      "Parameters: {'clf__C': 100}\n",
888      "\n"
889     ]
890    },
891    {
892     "name": "stderr",
893     "output_type": "stream",
894     "text": [
895      "[Parallel(n_jobs=-1)]: Done   9 out of   9 | elapsed:    0.1s finished\n"
896     ]
897    }
898   ],
899   "source": [
900    "from time import time\n",
901    "\n",
902    "for i in range(len(pipe)):\n",
903    "        start = time()\n",
904    "        print(\"-----\")\n",
905    "        print(\"classifier:\")\n",
906    "        print(pipe[i].named_steps['clf'])\n",
907    "        grid_search = GridSearchCV(pipe[i], param_grid[i], n_jobs=-1, verbose=1, cv=3)\n",
908    "        grid_search.fit(X_train, y_train)\n",
909    "        print(\"GridSearchCV took %.2f seconds for %d candidate parameter settings.\"\n",
910    "              % (time() - start, len(grid_search.cv_results_['params'])))\n",
911    "        print(\"finished GridSearch\")\n",
912    "        report(grid_search.cv_results_)"
913   ]
914  },
915  {
916   "cell_type": "code",
917   "execution_count": null,
918   "metadata": {
919    "collapsed": true
920   },
921   "outputs": [],
922   "source": []
923  }
924 ],
925 "metadata": {
926  "kernelspec": {
927   "display_name": "Python 3",
928   "language": "python",
929   "name": "python3"
930  },
931  "language_info": {
932   "codemirror_mode": {
933    "name": "ipython",
934    "version": 3
935   },
936   "file_extension": ".py",
937   "mimetype": "text/x-python",
938   "name": "python",
939   "nbconvert_exporter": "python",
940   "pygments_lexer": "ipython3",
941   "version": "3.6.3"
942  }
943 },
944 "nbformat": 4,
945 "nbformat_minor": 2
946}