Posgrado Experto DBA - BI, Módulo 5, Tema 9:
Fundamentos para la Modelización Predictiva Analítica bajo el lenguaje de programación R y Azure Machine Learning
Introducción al análisis predictivo con SQL ServerEduardo Castro
En esta presentación vemos los conceptos fundamentales de análisis predictivo con SQL Server.
Saludos,
Eduardo Castro
Microsoft SQL Server MVP
Comunidad Windows
Introducción al análisis predictivo con SQL ServerEduardo Castro
En esta presentación vemos los conceptos fundamentales de análisis predictivo con SQL Server.
Saludos,
Eduardo Castro
Microsoft SQL Server MVP
Comunidad Windows
Desarrollar para la nube no es tan transparente como creemos. Conocer correctamente este nuevo entorno, así como sus limitaciones nos ayudarán a evitar problemas de escalabilidad. En esta sesión veremos cómo desarrollar correctamente soluciones para la nube de Microsoft que sean escalables. Veremos ejemplos de lo que no es escalable y también veremos cómo podemos solucionarlo y evitarlo. Hablaremos de patrones de arquitectura, Unity, Entity Framework, capas de acceso a datos, worker roles, web roles,… escalabilidad!
La Base de Datos de SQL de Microsoft Azure es la mejor base de datos relacional como un servicio en la nube, que brinda escalabilidad, performance predecible, continuidad del negocio, protección de datos y administración de casi cero a desarrolladores y arquitectos de soluciones. En esta sesión veremos un overview de los servicios actuales que soporta la plataforma de datos de Microsoft Azure.
Planeando e implementando servicios de datos con Microsoft AzureSpanishPASSVC
Analizaremos las diferencias entre bases de datos SQL Server on premise y Azure SQL Database. Como implementar SQL Azure Database, como migrar, monitorear y mantener la continuidad operativa con Self Service Restore y Geo Replicación.
En esta sesión analizaremos experiencias de la vida real como consultor en trabajos de mejora de rendimiento. Veremos mejores prácticas para la configuración de SQL Server, tips para un mejor T-SQL y un ejercicio de como monitorear mi servidor de base de datos con Performance Counters, un SQL Server Express y un Excel con Power Pivot.
Desarrollar para la nube no es tan transparente como creemos. Conocer correctamente este nuevo entorno, así como sus limitaciones nos ayudarán a evitar problemas de escalabilidad. En esta sesión veremos cómo desarrollar correctamente soluciones para la nube de Microsoft que sean escalables. Veremos ejemplos de lo que no es escalable y también veremos cómo podemos solucionarlo y evitarlo. Hablaremos de patrones de arquitectura, Unity, Entity Framework, capas de acceso a datos, worker roles, web roles,… escalabilidad!
La Base de Datos de SQL de Microsoft Azure es la mejor base de datos relacional como un servicio en la nube, que brinda escalabilidad, performance predecible, continuidad del negocio, protección de datos y administración de casi cero a desarrolladores y arquitectos de soluciones. En esta sesión veremos un overview de los servicios actuales que soporta la plataforma de datos de Microsoft Azure.
Planeando e implementando servicios de datos con Microsoft AzureSpanishPASSVC
Analizaremos las diferencias entre bases de datos SQL Server on premise y Azure SQL Database. Como implementar SQL Azure Database, como migrar, monitorear y mantener la continuidad operativa con Self Service Restore y Geo Replicación.
En esta sesión analizaremos experiencias de la vida real como consultor en trabajos de mejora de rendimiento. Veremos mejores prácticas para la configuración de SQL Server, tips para un mejor T-SQL y un ejercicio de como monitorear mi servidor de base de datos con Performance Counters, un SQL Server Express y un Excel con Power Pivot.
20. 20
Carga de Datos
Desde base de datos (p. ej: Oracle):
01 > library(RODBC)
02 > myCn <‐ odbcConnect("RsMercator", uid = "USUARIO", pwd = "CLAVE", believeNRows=FALSE)
03 > ElSql <‐ paste('SELECT AEMETDATA.ID as estacion, ROUND(avg(TA), 2) as T_MEDIA,
ROUND(min(TA), 2) as T_MIN, ROUND(max(TA), 2) as T_MAX, EXTRACT(year FROM FECHA) as annio,
EXTRACT(month FROM FECHA) as mes, EXTRACT(day FROM FECHA) as dia,
ROUND(a.geometry.sdo_point.x, 12) as CX, ROUND(a.geometry.sdo_point.y, 12) as CY, Z, Count(*) as
totalregistros ', sep = '')
04 > ElSql <‐ paste(ElSql, 'FROM AEMETDATA, AEMET a ', sep = '')
05 > ElSql <‐ paste(ElSql, 'WHERE AEMETDATA.ID = a.ID and TA IS NOT NULL ', sep = '')
06 > ElSql <‐ paste(ElSql, AND EXTRACT(year FROM FECHA) = 2011 and EXTRACT(month FROM
FECHA) = 7 and EXTRACT(day FROM FECHA) BETWEEN 1 AND 7 ', sep = '')
07 > ElSql <‐ paste(ElSql, 'group by AEMETDATA.ID, EXTRACT(year FROM FECHA), EXTRACT(month
FROM FECHA), EXTRACT(day FROM FECHA), a.geometry.sdo_point.x, a.geometry.sdo_point.y, z', sep
= '')
08 > ElSql <‐ paste(ElSql, 'order by EXTRACT(year FROM FECHA), EXTRACT(month FROM FECHA),
EXTRACT(day FROM FECHA), AEMETDATA.ID ', sep = '')
NOTA: La sintaxis SQL depende del motor de base de datos… (p. ej: alternativas “DBF“, “Sql‐Server”)
09 > datosT_Raw <‐ sqlQuery(myCn, ElSql)
10> write.csv2(datosT_Raw, file=paste(getwd(), '/Data/DatosT_Mercator.csv', sep = ''))
Introducción a R 9.1
21. 21
4. Carga de datos
Desde archivo CSV:
01 > datos_Raw <‐ read.csv2(paste(getwd(), '/Data/DatosT_Mercator.csv', sep = ''))
Explorando los datos:
02 > class(datos_Raw)
03 > names (datos_Raw)
04 > str(datos_Raw)
05 > nrow(datos_Raw)
06 > ncol(datos_Raw)
Visual:
07 > plot(datos_Raw$CX, datos_Raw$T_MEDIA)
08 > plot(datos_Raw$CY, datos_Raw$T_MIN)
09 > plot(datos_Raw$CY, datos_Raw$T_MAX)
10 > plot(datos_Raw$CY, datos_Raw$T_MEDIA)
11 > abline(lm(T_MEDIA~CY, datos_Raw), col = "red", lty=1, lwd = 2)
12 > plot(datos_Raw$Z, datos_Raw$T_MEDIA)
13 > abline(lm(T_MEDIA~Z, datos_Raw), col = "red", lty=1, lwd = 2)
Carga de Datos
Introducción a R 9.1
22. 22
5. Pre‐procesos de datos
01 > datos2 <‐ subset(datos_Raw, CY > 33)
02 > nrow(datos2)
03 > plot(datos2$CY, datos2$T_MEDIA)
04 > abline(lm(T_MEDIA~CY, datos2), col = "red", lty=1, lwd = 2)
05 > plot(datos2$Z, datos2$T_MEDIA)
06 > abline(lm(T_MEDIA~Z, datos2), col = "red", lty=1, lwd = 2)
Introducción a R 9.1
41. 41
LABORATORIO:
‐ HACER CAPTURAS EN WORD
‐ Al final poner conclusiones
‐ Enviar el archivo por correo.
# 6) Subir a una tabla de la BD (SQL Server) el archivo:
‐ income.csv (agregarlo a una tabla, denominada: IngresosUSA)
‐ NOTA: Estos datos se usarán para los siguientes ejercicios:
# 7) Recuperar los valores desde la BD en la tabla IngresosUSA:
HACER:
‐ Histogramas
‐ BOX‐PLOT
‐ Gráfico de dispersión de Ingresos contra años de escolaridad y la edad
R: Interconexión con Bases de Datos (MS SQL‐SERVER)9.2
58. 58
LABORATORIO:
‐ HACER CAPTURAS EN WORD
‐ Al final poner conclusiones
‐ Enviar el archivo por correo.
# 1) Subir a AzureML el archivos
‐ student‐mat.csv
# 2) Realizar una exploración a sus valores:
‐ Histogramas
‐ BOX‐PLOT
‐ Gráfico de dispersión
Introducción a MS Azure Machine Learning (AzureML)9.3
60. 60
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
‐ [ R ] es uno de los lenguajes y ambientes mas populares y
poderosos para el análisis de datos, uno de los más utilizados
en este tipo de ambientes por los Data Scientists.
‐ Los datos de negocios operativos usualmente se almacenan
en sistemas administradores de bases de datos relacionales
(RDBMS), y uno de los más utilizados y base de este
posgrado UNI es:
[ Microsoft SQL Server ]
‐ [ Azure Machin Learning ]: permite acceso gratuito, fuerte
soporte para R, beneficio de hosting en la nube, desarrollo
de soluciones basados en arrastrar y soltar, facilita la
posibilidad de poner el código en operación mediante la
Web Services.
61. 61
Iniciar el ambiente DS para la clases:
1‐ Confirmar si existe registro ODBC para la BD‐
SQLSERVER local:
1.1 En caso negativo, seguid el procedimiento
indicado en las transparencias previa.
1.1.1 NOTA: Crea lo anterior como DNS del Usuario
2‐ Confirmar conexión a Internet
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
66. 66
MLRM:
Una de las técnicas estadísticas más ampliamente usadas en estudios de
predicciones y análisis causal (ref).
En estudios de predicciones el objetivo es desarrollar una formula para
hacer las aproximaciones de valores de una variable dependiente basada en
observaciones de variables independientes.
Eje 1: Un economista pudiera predecir el Producto Interior Bruto (PIB) del
siguiente año basado en el PIB del año anterior, rangos de interés en los
prestamos, nivel actual desempleo y otras variables.
Eje 2: Un criminólogo pudiera predecir la posibilidad de que un ex convicto
vuelva a ser arrestado basado en su edad, nuero de arrestos previos, y los
tipos de crímenes por los cuales entró a prisión.
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
67. 67
MLRM:
En análisis causal el objetivo es determinar si una variable
independiente afecta a la dependiente y determinar la magnitud de
dicha afectación.
Por ejemplo el criminólogo pudiera tener datos que muestren que
los prisioneros que participan en programas educacionales son
menos propensos a ser nuevamente arrestados una vez que sean
liberados.
Una MLRM pudiera indicar si esta relación es real o si pudiera ser
explicada por el hecho de que los prisioneros que participan en los
programas educacionales han sido aquellos con historias criminales
menos serias.
y = a + bx+ e
y = b0 + b1x1 + b2x2 + b3x3 + bnxn + e
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
68. 68
Asumamos:
y = a + bx + e
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
70. 70
Asumamos:
y = b0 + b1x1 + b2x2 + e
¿Cuánto ganaría alguien con 14 años de escolaridad y 40 años de edad?
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
71. 71
Asumamos:
y = b0 + b1x1 + b2x2 + e
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
73. 73
Mínimos Cuadrados Ordinarios:
y = b0 + b1x1 + b2x2 + b3x3 + bnxn + e
Metodología particular para estimar de la mejora manera posible los
valores
de los coeficientes del modelo.
Estimar los parámetros de la población mediante una muestra de
datos observados.
Al no poderse explicar toda la variación de las variables dependientes
a través de las variables independientes (explicativas) por las
perturbaciones al modelo que están fuera del control es por eso que
siempre hay una perturbación = error (e). Este e, es la parte que no se
pudo explicar de la variable dependiente a través de las variables
explicativas y supuestos.
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
74. 74
Mínimos Cuadrados Ordinarios:
y = b0 + b1x1 + b2x2 + b3x3 + bnxn + e
Modificar la altura
Modificar la pendiente
¿Es mejor la azul, la roja o la negra?
‐‐ La altura y la pendiente ‐‐
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
75. 75
y = b0 + b1x1 + b2x2 + b3x3 + bnxn + e
‐ Estima los parámetros minimizando la sumatoria de los errores cuadrados:
http://image.slidesharecdn.com/2015bolo9‐150527162540‐lva1‐app6892/95/metodo‐de‐estimacion‐y‐docima‐de‐hipotesis‐3‐638.jpg?cb=1432744099
~ “media”
Coeficiente de determinación: R2 = 1 –
∑
∑
; e =
^
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
77. 77
Calculo de los errores en TEST:
• RMSE
• %RMSE
• MAE
• %MAE
• … otros
‐ Validaciones cruzadas:
‐ leave one out cross validation
‐ n fold cross validation
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
78. 78
MLRM ‐ DEMO en R
1º) Subir los datos desde income.csv a R.
2º) Subir los datos origen desde R hasta SQL‐Server
‐ para esto pasos intermedios vistos ya en clases previas
3º) Generar un modelo de MLRM de la variable INCOME en función SCHOOL y
AGE.
4º) Analizar los estadísticos generados en sí del modelo.
5º) Realizar validaciones cruzadas para evaluar estadísticos (RMSE, %RMSE,
MAE, %MAE ‐o‐ MAEP) del error del modelo.
6º) realizar predictibilidad de nuevos valores (valores desconocidos).
7º) Subir al almacén principal de datos (SQL‐Server) los resultados de las
validaciones.
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
79. 79
‐ Crear nuevo proyecto R en VS – 2015
‐ Asignarle como Nombre “R_MLRM”
‐ Ubicarlo en la Unidad C
“(o en un directorio de su control)”
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
84. 84
MLRM ‐ práctica en R (independiente 1)
… siguiendo los procedimientos, datos y práctica anterior:
1º) Generar un modelo de MLRM de la variable INCOME en función a SCHOOL.
2º) Analizar los estadísticos generados en sí del modelo.
3º) Realizar validaciones cruzadas para evaluar estadísticos (RMSE, %RMSE, MAE, %MAE ‐o‐
MAEP) del error del modelo.
4º) Generar un modelo de MRLM de la variable INCOME en función a AGE y AGE2
5º) Analizar los estadísticos generados en sí del modelo.
6º) Realizar validaciones cruzadas para evaluar estadísticos (RMSE, %RMSE, MAE, %MAE ‐o‐
MAEP) del error del modelo.
7º) Analizar cuál es el mejor MODELO de los tres anteriores (de las dos práticas).
8º) Seleccionar el mejor modelo y en base a este realizar predictibilidad de nuevos valores
(valores desconocidos).
9º) Subir al almacén principal de datos (SQL‐Server) los resultados de las validaciones.
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
85. 85
‐ MLRM Práctica en AzureML:
https://studio.azureml.net/
1º) Subir los datos desde income.csv a AzureML Studio.
2º) Generar un modelo de MLRM de la variable INCOME en función SCHOOL
y AGE.
3º) Analizar los estadísticos generados en sí del modelo.
4º) realizar predictibilidad de nuevos valores (valores desconocidos).
5º) Aún considerando los pocos datos (sólo para fines práticos). Dividir el set
de datos en dos conjuntos (entrenamiento y validación).
6º) Generar nuevamente el MLRM con los datos de entrenamiento.
7º) Validar el error RMSE (%RMSE, MAE, %MAE –o‐ MAPE) con los datos en
validación.
‐ Publicar el Modelo
‐ Acceder al Modelo publicado
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
86. 86
* Obtener los datos (subirlos a AzureML‐Studio):
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
89. 89
* Iniciar un nuevo experimento:
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
90. * Arrastrar el juego de datos hacía el área de experimentos:
90
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
91. * Arrastrar el juego de datos hacía el área de experimentos:
91
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
92. * Explorar los datos:
92
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
93. * Explorar los datos:
93
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
94. * Explorar los datos:
94
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
95. * Explorar los datos:
95
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
96. * Explorar los datos:
96
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
97. * Explorar los datos:
97
Importante para la selección
Del juego de datos en train/test
Principalmente en la salida (Y).
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
98. * Limpieza de datos:
‐ Es un proceso típico, aunque en este caso nuestros datos están limpios.
98
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
99. * Limpieza de datos:
99
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
100. * Limpieza de datos:
100
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
101. * Limpieza de datos:
101
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
102. * Limpieza de datos:
102
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
103. * Limpieza de datos:
103
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
104. * Limpieza de datos:
104
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
105. * Limpieza de datos:
105
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
106. * Limpieza de datos:
106
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
119. * Predecir nuevos valores / evaluarlos (hiddencast):
119
Revisar los Estadísticos
de la evaluación del
modelo
MODELO COMPLETO
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
120. * TAREA DE AUTO FORMACIÓN – EN CASA
* Publicar el Modelo / Acceder el Modelo como Web Service:
120
1º)
Guardar el flujo original
Con el nombre
MLRM_TRAIN
2º)
Guardar el nuevo flujo
Con el nombre
MLRM_PREDICTIVE
3)
Iniciar el Set Up Web Service
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
121. * TAREA DE AUTO FORMACIÓN – EN CASA
* Publicar el Modelo / Acceder el Modelo como Web Service:
121
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
122. * Publicar el Modelo / Acceder el Modelo como Web Service:
122
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4
123. * Publicar el Modelo / Acceder el Modelo como Web Service:
123
Fundamentos del Modelamiento predictivo aplicado: Técnica 19.4