You are on page 1of 9
sizes 18a ‘02 Maquinas Con Vectores De SoporteEjercicio Propuesto pynb - Colaboratory + Maquinas con vectores de soporte: Ejercicio Propuesto iAnalizaremos el famoso conjunto de datos de iris! Los datos Para esta serie de conferencias, utilizaremos el famoso [conjunto de datos Flor de Iris] (http://en.wikipedia.org/wiki/Iris flower data set) Los datos Flor de Iris 0 Iris de Fisher es un conjunto de datos multivariados introducido por Sir Ronald Fisher en el afio 1936 como un ejemplo de andlisis discriminante. El conjunto de datos consta de 50 muestras de cada una de las tres especies de Iris (Iris setosa, Iris, virginica e tris versicolor), haciendo 150 muestras totales. Se midieron cuatro caracteristicas de cada muestra: la longitud y el ancho de los sépalos y pétalos, en centimetros. ‘Se muestran fotos de los tres tipos diferentes de iris # Iris Setosa from IPython.display import Image url = ‘http://upload.wikinedia.org/wikipedia/conmons/5/56/Kosaciec_szczecinkowaty_Iris_setosa Image(url,width=300, height # Iris Versicolor from IPython.display import Image url = ‘http: //upload.wikinedia.org/wikipedia/conmons/4/41/Iris_versicolor_3. jpg" Tmage(url,width=308, height=300) hitpscolab research google comidrivalpeuFVINKagBptgCWntgh SaYHIK_DkAZ#scralTo=XHuZGZESfajTBpriniMode=tue 19 sizes 18a (02 Maquinas Con Vecrores De Sopocteercicio Propuesto pynb - Colaboratory # Iris Virginica from IPython.display import Image url = ‘http://upload.wikinedia.org/wikipedia/conmons/9/9f/Iris_virginica. jpg" Image(url,width=300, height=300) El conjunto de datos del iris contiene medidas para 150 flores de iris de tres especies diferentes. Las tres clases en el conjunto de datos de Iris: Inis-setosa (n = 5) Iris-versicolor (n = 5) Inis-virginica (n = 58) Las cuatro caracteristicas del conjunto de datos Iris: hitpsscolab research google comidrivelpeuF VINxSqBptgCWnigh SoYHIK_DkAZitscrlTo=KHuZgZEStajTEpriniMode=bus| 29 sizes 18a (02 Maquinas Con Vecrores De Soporteercicio Propuesto pynb - Colaboratory longitud del sépalo en cm anche de sépale en em longitud del pétalo en cm ancho del pétalo en cm y Obtener los datos import seaborn as sns sns.set_style('darkgrid’ ) iris = sns.load_dataset(‘iris’) iris-head() sepal_length sepal_width 0 5.4 1 49 2 47 3 46 4 5.0 iVisualicemos los datos! 3.5 3.0 32 34 36 petal_length petal_width 14 14 13 15 14 ~ Analisis exploratorio de datos Intenta recrear las siguientes graficas, jasegdrate de importar las bibliotecas que necesitards! ** Importe algunas bibliotecas que crea que necesitara. ** import matplotlib.pyplot as plt %matplotlib inline ** Crea un pairplot del conjunto de datos. Qué especie de flor parece ser la més separable?** sns.pairplot(iris, hue = ‘species") hitpsscolab research google comidrivelpeuF VINxSqBptgCWnigh SoYHIK_DkAZitscrlTo=KHuZgZEStajTEpriniMode=bus| 02 02 02 02 02 species setosa setosa setosa setosa setosa a9 sizes 18a ‘02 Maquinas Con Vectores De SoporteEercicio Propuesto Ipynb - Colaboratory ry gos pe 2s versicolor ‘ © wince gs Ee co 2 2s Crea un grafico kde de sepal_length vs sepal_width para la especie de flor setosa. sns.kdeplot(iris[iris[ ‘species’ ] ‘setosa’ ][‘sepal_width'], iris[iris['species'] == ‘setosa‘]['sepal_length'], cmap = ‘plasma', shade = True, shade_lowest = False) hitpscolab research google comidrivalpeuFVINKagBptgCWntgh SaYHIK_DkAZ#scralTo=XHuZGZESfajTBpriniMode=tue 49 sizes 18a (02 Maquinas Con Vecrores De Sopocteercicio Propuesto pynb - Colaboratory Jusr/local/1ib/python3.7/dist -packages/seaborn/_decorators.py:43: FutureWarning: Pass ti FutureWarning Jusr/local/1ib/python3.7/dist -packages/seaborn/distributions.py:1718: Userbarning: * shac warnings.warn(msg, UserWarning) 60 2 ~ Divisién en datos de entrenamiento y prueba ** Divida sus datos en un conjunto de entrenamiento y un conjunto de prueba. ** "7 from sklearn.model_selection import train_test_split inis.drop('species', axis = 1) iris[‘species*] x ye X_train, Xtest, y_train, y_test = train_test_split(X, y, test_size = @.3, random_state = 101 ~ Entrena un modelo Entrene un clasificador de maquinas de vectores de soporte. Llame al modelo SVC() desde sklearn y ajuste el modelo a los datos de entrenamiento. from sklearn.svm import SVC mySVC = SVC() mySVC.fit(X_train, y_train) svc() y Evaluacién del modelo ** Ahora obtenga predicciones del modelo y cree una matriz de confusién y un informe de clasificaci6n. ** from sklearn.metrics import confusion_matrix, classification_report y_predictions = mySVC. predict (X_test) hitpsscolab research google comidrivelpeuF VINxSqBptgCWnigh SoYHIK_DkAZitscrlTo=KHuZgZEStajTEpriniMode=bus| 59 sizes 18a (02 Maquinas Con Vecrores De Sopocteercicio Propuesto pynb - Colaboratory print(confusion_matrix(y_test, y_predictions)) [[13 @ 0] [e194] [@ @22]] print(classification_report(y_test, y_predictions)) precision recall fl-score support setosa 1.00 1.00 1.00 3 versicolor 1.00 0.95 0.97 20 virginica @.92 1.00 2.96 12 accuracy 0.98 4s macro avg 0.97 0.98 2.98 4s weighted avg @.98 8.98 0.98 4s iDeberias haber notado que tu modelo es bastante bueno! Veamos si podemos ajustar los parémetros para tratar de mejorar (poco probable, y probablemente estards satisfecho con estos resultados en la realidad porque el conjunto de datos es bastante pequefio), pero solo quiero que practiques con GridSearch. y Practica Gridsearch ** Importe GridsearchCV de Scikit Learn.** fron sklearn.model_selection inport Gridsearchcv Cree un diccionario llamado param_grid y complete algunos pardmetros para C and gamma. param_grid = {'C' : [@.1, 1, 10, 10, 1000], ‘gamma’ : [1, @.1, 0.01, 0.001, 0.0001]} ** Cree un objeto GridSearchCV y ajuistelo a los datos de entrenamiento. ** ayGS = GridSearchcv(SVC(), paran_grid ayGS.fit(X_train, y_train) param_grid, verbose = 3) Fitting 5 folds for each of 25 candidates, totalling 125 fits [cv 1/5] END 2.1, gamma=1;, score=6.905 total time= 0.05 [cv 2/5] END C=0.1, gamma=1;, score=1.0@@ total time=- 0.05 [ev 3/5] END 2.1, gamma: 985 total time= 0.05 hitpscolab research google comidrivalpeuFVINKagBptgCWntghSaYHIK_DkAZ#scrolTo=XHuZGZESfajTEpriniMode=tue 6 sizes 1444 [cv [cv [cv icv icv icv icv icv icv icv icv icv icv icv icv icv icv [ev icv [ev [ev [ev [ev {cv [ev [cv icv icv icv icv icv icv icv icv icv icv icv icv icv icv icv [ev icv [ev [ev [ev [ev {cv [ev [cv icv icv icv icv icv htps:colab research google.comdrvalpcuF VINeSqBpigCiWnlghSOYHIK_DkaZitscralT 4/5) 5/5] 1/5] 2/5] 3/5] 4/5] 5/5] 1/5] 2/5] 3/5] 4/3] 5/5] 1/5) 2/5) 3/5] 4/5] 5/5] as) 2/5) 3/5) 4/5) 5/5] ws) 2/5) 3/5) 4/5] 5/5] 1/5] 2/5] 3/5] 4/5] 5/5] 1/5] 2/5] 3/5] 4/5] 5/5] 1/5) 2/5) 3/5] 4/5] 5/5] 1/5) 2/5) 3/5) 4/5) 5/5] 1s) 2/5) 3/5] 4/5] 5/5] 1/5] 2/5] 3/5] END END END END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END. END . END . END END END END END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END . END END END END . END . END . END . END . (02 Maquinas Con Vecrores De Sopocteercicio Propuesto pynb - Colaboratory seteseeeeeeseessessC20.1, gamma=d;, fectteeeeeeeeeeeessCeO.2, gamma=d; , seseseseeeeeseesssC20.2, gamma=0.15, C-0.1, gamma-2.1;, 1, gamma=2.1;, -1, gamma=-8.2001; -1, gamma=0.2001;, C=0.1, ganma=8.0021;, <1, gamma=0.2001}, Cel, ganma=1;, s+-Ce1, ganma=1}, peteseeeeeeseeseeeessCeL, gamma=d;, petteeeeeeeseeseeeessCed, gamma=d; , pettseseesesseeseeeessCeL, gamma=d; , .C=1, gamma-0.1;, .C=1, gamma-0.1;, .C=1, gamma=0.13, .C=1, gamma-0.1;, -C=1, gamma-0.13, .C=1, gamma-2.01;, -C=1, gamma=0.01;, 2.013, 2.013, 2.013, 001 -0015 5 0013, -0015 5 00135 -00013 5 -00015 -00015 5 -0001 ganma=0.0001;, -C=1, gamma: -C=1, gamma: secsesseeeesseeseeessC210, gamma=1;, 12, ganma=1;, c=1, ganna=1;, :C=10, gamma-0.1;, -C=10, gamma: score=0.905 score=0.952 score=0.857 score=-0.714 857 812 812 714 714 714 714 74 333 333 714 714 714 333 333 714 714 714 200 305 305 952 952 e28 008 985 985 ee 952 B10 857 857 985 714 714 714 714 714 333 333 714 score=0.714 score=0.714 200 905 905 985 952 008 008 985 total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total total time= time= time= time= time= time: time: ‘time: time: time: time: time= time time= time time: time: time: time: time: time= time= time= time: time= time= time= time= time: time: time: ‘time= time: time= time= time: time= time: time= time= time: time= time: time= time= 0s. 719 rae 1444 (02 Maquias Con Veeiores De Soportetjercco Propuest ipyb- Colaboratry ¥* Ahora tome ese modelo de cuadricula y cree algunas predicciones utilizando el conjunto de pruebas y cree informes de clasificacién y matrices de confusién para ellos. {Pudiste mejorar? ** y_predictions = myGS.predict(x_test) print(confusion_matrix(y_test, y_predictions)) ([13 @ @] [@19 1) [@ @ 12)] print(classification_report(y_test, y_predictions)) precision recall fl-score support setosa 1.00 1.08 1.00 3 versicolor 1.00 0.95 0.97 20 virginica @.92 1.08 2.96 12 accuracy 0.98 4s macro avg 0.97 0.98 0.98 45. weighted ave @.98 0.98 0.98 45 Deberfas haber hecho lo mismo 0 exactamente lo mismo, esto tiene sentido, basicamente hay un solo punto que es demasiado ruidoso para comprenderlo, lo que tiene sentido, no queremos tener un modelo de sobrecapa que sea capaz de atrapar esto. jBuen trabajo! hitpsscolab research google comidrivelpeuF VINxSqBptgCWnigh SoYHIK_DkAZitscrlTo=KHuZgZEStajTEpriniMode=bus| 89 sizes 18a (02 Maquinas Con Vecrores De Soporteercicio Propuesto pynb - Colaboratory v 08 secjecuts 14:43 ex hitpsicolab research. google.comidrivalpcuF VINxSqBplgCiWnigh So¥HIK_DkAZitscrolTo=XHuZgZEStaiT&prin!Mod 99

You might also like