Las soluciones de ciencia de datos se están convirtiendo en una necesidad empresarial como parte de la analítica avanzada permitiendo que los negocios puedan predecir el futuro mediante métodos estadísticos y computacionales.
Al ser una nueva tendencia tecnológica es difícil saber que debo aprender.
El objetivo del este curso es brindar una visión general de las funcionalidades de “Microsoft Machine Learning Studio” y como esta gran solución puede ayudar a potenciar tu negocio.
En esta primera entrega, el enfoque principal es conocer el entorno de desarrollo e implementar un modelo predictivo utilizando un modelo de regresión logística para predecir el valor de una variable dicotómica.
Mi primer modelo de clasificación utilizando regresión logística
1. Laboratorio de ciencia de datos
Principios de Machine Learning
Mi primer modelo de clasificación utilizando regresión logística
San salvador, septiembre 2019
Por López Portillo, José Ahias
2. Introducción
Las soluciones de ciencia de datos se están convirtiendo en una necesidad
empresarial como parte de la analítica avanzada permitiendo que los negocios
puedan predecir el futuro mediante métodos estadísticos y computacionales.
Al ser una nueva tendencia tecnológica es difícil saber que debo aprender.
El objetivo del este curso es brindar una visión general de las funcionalidades de
“Microsoft Machine Learning Studio” y como esta gran solución puede ayudar a
potenciar tu negocio.
En esta primera entrega, el enfoque principal es conocer el entorno de desarrollo
e implementar un modelo predictivo utilizando un modelo de regresión logística
para predecir el valor de una variable dicotómica.
3. Laboratorio de ciencia de datos
Mi primer modelo de clasificación utilizando regresión logística
1. Para el inicio de este laboratorio es necesario la utilización de los servicios
de “Microsoft Machine Learning Studio”, para ello debemos tener una
cuenta la cual podemos crear en la siguiente URL:
https://azure.microsoft.com/es-es/services/machine-learning-studio/
Figura 01: Sitio de información de Microsoft Machine Learning Studio
Debes hacer clic en “Empiece ahora”.
Figura 02: Opciones de planes para el uso MMLS.
4. Se mostrarán diferentes modelos de subscripciones. Para este laboratorio se
recomienda utilizar “Free Workspace”.
Una vez seleccionada la opción debes realizar “Sign In”. Automáticamente
serás redireccionado al entorno de desarrollo web como se muestra en la
figura 03.
Figura 03: Entorno de desarrollo de MML
Para poder iniciar nuestro laboratorio es necesario obtener los conjuntos de
datos. El análisis a realizar es sobre la calidad de vinos “Wine Quality” los
archivos csv son públicos en el repositorio de UCI Machine Learning.
Puedes realizar las descargas en las siguientes URL.
• https://archive.ics.uci.edu/ml/machine-learning-databases/wine-
quality/winequality-white.csv
• https://archive.ics.uci.edu/ml/machine-learning-databases/wine-
quality/winequality-red.csv
2. Como primer paso debemos crear los “dataset”.
5. 3. Debemos seleccionar la opción de “NEW” como se muestra en la imagen.
4. Se mostrará una lista de opciones, dentro de estas opciones debemos
seleccionar “DataSet”, “From Local File”
5. Al seleccionar la opción de archivo local, debemos buscar los archivos csv.
6.
7.
8. 6. Al finalizar la carga un mensaje de confirmación será mostrado. Es necesario
validar el repositorio de “Dataset”.
7. Es hora de iniciar la creación del experimento. Los experimentos son objetos
de trabajo donde creamos diferentes tareas con un flujo especifico los
cuales pueden ser: Lectura, transformación, entrenamiento, predicción y
publicación por medio de servicios Web.
8. Nuevamente “NEW” y buscamos la opción de “Experiment” → “Black
Experiment”.
9. 9. Al seleccionar la plantilla en blanco automáticamente se cargará una nueva
ventana donde realizaremos el desarrollo de nuestra solución.
10. 10. Debemos definir la fuente de datos. Para ello debemos seleccionar la opción
de “Saved DataSet” →”My Datasets”→”Seleccionar nuestros data set”.
11. Seleccionamos los Dataset y los arrastramos en la parte donde vamos a
desarrollar el flujo de trabajo.
12. Podemos realizar una visualización de datos de cada uno de los archivos
cargado. Es necesario Seleccionar el componente y dar clic derecho y
navegar hasta la opción de visualización puedes guiarte con las figuras
siguientes.
11. 13. Es hora de iniciar con la primera transformación debemos generar un único
conjunto de datos para ello debemos unir los dos dataset.
14. Debemos adicionar el siguiente componente: “Data Transformation”→
”Manipulation”→ ”Add Rows”.
15.Arrastramos el componente a nuestro lugar de trabajo. Unimos las dos
fuentes de datos, así como se muestra en la figura.
12. 16.Ejecutamos por primera vez el flujo.
17.Realizamos nuevamente una visualización de datos, el nuevo conjunto de
datos contiene 6497 observaciones.
18.Uno de los procesos previo a la implementación de un modelo de Machine
Learning es realizar un análisis exploratorio, para ello vamos a crear un
notebook utilizando “R”. Debemos adicionar un componente que convierta
nuestro conjunto de datos del flujo en un “CSV” que podamos utilizar en el
notebook.
13. 19.Al seleccionar el tipo de “NoteBook” y lenguaje a utilizar, se abrirá una
nueva venta donde programaremos las sentencias “R”.
14. 20.Cargamos en memoria el conjunto de datos. Debemos seleccionar la
primera celda y presionar el botón “Run” esta acción ejecuta el comando
indicado.
21. El primer análisis a realizar es obtener los estadísticos descriptivos, para ello
debes escribir el comando que se muestra en la celda seleccionada y
ejecutar.
15. 22. Al analizar los estadísticos sobre la variable “Quality”: Existen vinos muy
malos (min = 3) y vinos muy buenos (max=9).
23. El análisis a realizar es una clasificación dicotómica (0= Mal vino / 1 =Buen
vino), se tomará el umbral (>6) para vinos buenos y cualquier valor menor al
indicado serán un vino malo. Para determinar este valor se utilizó como base
la mediana.
24. Existe problemas con las escalas de las variables es recomendable
estandarizar con un “Z score”.
25. Al validar los estadísticos, las variables no presentan normalidad en su
distribución, para comprobar estadísticamente esta hipótesis es necesario
una prueba de normalidad de “Anderson-Darling”: Si el p_valor >Alpha la
distribución es normal aceptando la hipótesis nula de lo contrario
rechazamos la hipótesis nula y aceptamos que la distribución no es normal,
para ello ejecutamos el siguiente código.
16. 26. El resultado obtenido al realizar el test: Ninguna variable proviene de una
distribución normal, lo que puede implicar muchos factores problemáticos
que pueden afectar al modelo que deseamos crear.
27. Para poder visualizar un gráfico de función de densidad y validar si se
observan valores atípicos o tendencias raras, debemos crear y ejecutar el
siguiente código.
17.
18.
19.
20. 28. Para finalizar este pequeño análisis estadístico visualizaremos las
correlaciones para determinar si se puede presentar multicolinealidad, lo
que implicaría variables con alta correlación y que pueden duplicar
información.
21. 29. Nota importante el análisis estadístico realizado esta orientado a mostrar
las ventajas y facilidad de la plataforma, en las próximas entregas
entraremos en más detalles especialmente el análisis multivariado.
30. Salvamos el “Notebook” con el objetivo de tener los códigos para futuro.
31.Retornamos al flujo de trabajo.
32. Debemos de transforma la variable “Quality” a una variable dicotómica ( 0=
Mal Vino, 1=Buen Vino).
33. Adicionamos un componente “Execute R Script”.
22. 34. Al adicionar la nueva columna es necesario eliminar la variable original.
35. Debemos utilizar el componente “Select Columns in Dataset”, el cual
permitirá seleccionar las columnas que deseamos que continúen en el
proceso.
23. 36. Hay que tomar en cuenta que estamos analizando un conjunto de datos
desbalanceado donde la clase de vino bueno es la clase minoritaria.
37.Para este escenario lo recomendable es realizar una técnica de remuestreo
con el objetivo de igualar los grupos y evitar que el algoritmo de predicción
no genere un sesgo hacia la clase mayoritaria.
38.Gracias a las funcionalidades de la plataforma podemos utilizar una técnica
de remuestreo llamada “SMOTE”, la cual se basa en la utilización de vecino
más cercano para crear observaciones sintéticas.
24.
25. 39. Al configurar el componente de “SMOTE” debemos seleccionar la columna
que indica cual es la clase que deseamos balancear, es necesario especificar
que “SMOTE percentage” debe ser del 300% con el objetivo de poder
igualar las observaciones, una vez configurado el componente debemos
ejecutar el flujo y validar el dataset y comprobar que las clases ya están
balanceadas.
40.El siguiente paso del flujo es estandarizar las columnas con el objetivo de
evitar problemas de los valores por las diferentes escalas. Adicionamos el
componte “Normalize Data” y aplicamos un “Z score” sobre las columnas
predictoras.
26. 41.Hemos analizado, transformado y estandarizado el conjunto de datos, ahora
es necesario realizar la implementación del algoritmo predictivo.
42.Es necesario crear dos conjuntos de datos “Train y Test” , para esta tarea
utilizaremos el componente de separación llamado “Split Data”.
27. 43. Al seleccionar el componente debemos configurar algunos parámetros para
esta configuración la división debe ser por filas con un 70% y 30% de filas
seleccionadas aleatoriamente.
44.Adicionamos el componente “Two Class Logistic Regression”, el cual nos
permitirá realizar la clasificación y predicción.
45.Arrastramos el componente y configuramos los parámetros según se
muestra la imagen, no entraremos en detalle sobre la configuración de los
parámetros, este tema se tratara en próximas entregas.
28. 46.Para poder entrenar el modelo es necesario adicionar un componente de
entrenamiento llamado “Train Model”, el cual debemos unir el componente
de separación de datos y el componente de regresión logística así como se
muestra en la imagen.
29. 47. Una vez se ha configurado y se entrenado el modelo es necesario validarlo
contra la muestra para ello debemos adicionar un componente “Score
Model”
30. 48. Adicionaremos un componente de evaluación del modelo para validar que
tan bueno es el modelo.
31.
32. 49.Al analizar los resultados el algoritmo tiene una precisión del 74.1% lo que
implica que de cada 100 vinos clasifican correctamente 74.
50.Para finalizar este tutorial es necesario salvar el experimento con nombre
“Mi primer Machine Learning - RL”.
33. Forma parte de la comunidad
Página de Facebook
https://www.facebook.com/groups/AhiasPortilloSQL/
Página de Facebook
https://www.facebook.com/Ahias-Portillo-SQL-449495635608067/
Canal de Youtube
https://www.youtube.com/c/AhiasPortillo
Twitter
PortilloAhias