Continuando con nuestras recientes publicaciones sobre 芦Machine Learning禄 (art铆culo anterior sobre fundamentos), en esta oportunidad compartimos algunas cosas que hemos aprendido siguiendo el tutorial 芦 Machine Learning in Python Step by Step芦.
Para poder entender este art铆culo recomendamos seguir el tutorial paso a paso… no se toma m谩s de 30 minutos.
- Anaconda:聽Aprendimos que se puede configurar un ambiente relativamente completo para experimentaci贸n con Machine Learning y Python usando Anaconda.
- Dataset IRIS: Existe un 芦Hello World禄 para Machine Learning basado en un dataset llamado 芦IRIS禄 3.聽Este consiste en un conjunto de datos que describe tres tipos de flores Iris (setosa, virginica y versicolor) por las dimensiones de su s茅palo y p茅talo; se puede usar para entrenar un modelo de aprendizaje de m谩quina para que este infiera el tipo de flor (clasificaci贸n) con base en la combinaci贸n de par谩metros.
- Arreglos:聽Python provee mecanismos para expresar y manipular arreglos de forma sumamente robusta. Podemos resumirlos de la siguiente manera:
-
B谩sicamente [a:b,c:d] donde a:b representa un rango de filas y c:d representa otro rango de columnas.
-
array[:,0:4] retorna todas las filas de la matriz y las primeras 4 columnas a partir de la columna cero.
-
array[:,4] retorna todos los elementos (filas) de la quinta columna聽(铆ndice 4)
-
- Entrenamiento y Validaci贸n:聽El entrenamiento y validaci贸n de modelos de aprendizaje de m谩quinas usualmente suele dividir los datos conocidos en 80% para aprendizaje o creaci贸n del modelo y 20% para validaci贸n del modelo generado. En este tutorial se usa la funci贸n
model_selection.train_test_split(X,Y, test_size, random_state)
de la libreria sklearn. - SKLEARN LIB:聽Existen diversos algoritmos de clasificaci贸n en la librer铆a sklearn:
- LogisticRegression
- LinearDiscriminationAnalysis
- KNeighborsClassifier
- DecisionTreeClassifier
- GaussianNB
- SVM/SVC
- Precisi贸n de Los Algoritmos:聽Diferentes algoritmos presentan diferentes niveles de precisi贸n dependiendo del problema a resolver. Estos se pueden evaluar usando funciones como model_selection.cross_val_score que da como resultado medidas estad铆sticas como la media y la desviaci贸n estandar. Esta validaci贸n se puede confirmar con gr谩ficos de tipo box charts, scattered matrix e histogramas. Estos gr谩ficos se generan en python usando librer铆as como聽matplotlib
- Aprender y Predecir: Una vez entrenado el modelo (con聽knn.fit()) se pueden generar predicciones (knn.predict())
- Matriz de Confusi贸n: Las predicciones pueden ser validadas mediante mecanismos como confusion_matrix que provee una an谩lisis simple de valores esperados y valores predichos de manera correcta y err贸nea.
- La matriz de confusi贸n tiene un eje (x) que representa los valores conocidos, y un eje (y) que representa los valores predichos.
setosa ==> [[ 7 聽 0 聽 0] versicolor ==> 聽[ 0 聽11 聽1] virginica ==> 聽[ 0 聽2 聽 9 ]] se ve vi
- Esto se interpreta as铆:
- Se identificaron 7 setosas adecuadamente.
- De las 12 versicolor se identificaron 11 correctamente y una como virginica
- De las 11 virginicas se identificaron 9 correctamente y 2 como versicolor.
- La matriz de confusi贸n tiene un eje (x) que representa los valores conocidos, y un eje (y) que representa los valores predichos.
Referencias:
- Machine Learning Step by Step: https://machinelearningmastery.com/machine-learning-in-python-step-by-step/
- Confusion Matrix: http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html
- IRIS: https://es.wikipedia.org/wiki/Iris_flor_conjunto_de_datos
- Iris Setosa Image:聽 https://www.rhs.org.uk/Plants/9355/Iris-setosa/Details
7,504 total views, 1 views today
Comentarios