En esta sesión mostraremos lo sencillo que es implementar algoritmos de machine learning en un entorno de cómputo distribuido por medio de Weka. Weka es una herramienta de software libre para data mining y machine learning, la cual fue desarrollada por la Universidad de Waikato en Nueva Zelanda.
Por Alexandra Lemus (VinkOS)
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
Machine learning usando Weka, en un entorno de cómputo distribuido
1. Machine Learning usando Weka en un
entorno de cómputo distribuido
por Alexandra Lemus
15 de marzo de 2018
#datadaymx
2. ¿Quiénes somos?
VinkOS es una firma dedicada a la integración de tecnologías diversas y
desarrollo de soluciones dentro del ámbito de Big Data y Minería de Datos.
Trabajamos con tecnologías código abierto empresarial, en particular,
Pentaho y Cloudera.
2
3. Agenda
● Un caso de uso: MandiStore, una tienda departamental
● Machine learning y cómputo distribuido - Algunos conceptos
● Recordando el ciclo del científico de datos
● Weka y Spark MLlib - Herramientas para implementar soluciones
● Roadmap - Solución al caso de uso
● Demo: Un algoritmo de clasificación en Weka distribuido
● Conclusiones
3
4. Caso de uso: MandiStore
● MandiStore, es una tienda departamental, que cuenta con una tarjeta
departamental y un programa de lealtad.
● Cuenta con millones de registros que contienen la información
socioeconómica de sus clientes, así como sus productos contratados
y/o consumidos.
● Actualmente tiene un nuevo producto financiero que quiere ofrecer a
sus clientes y a otros clientes potenciales.
Su meta es lanzar una campaña de marketing efectiva, para ofrecer de
forma personalizada su producto a clientes existentes y potenciales.
La pregunta es: ¿Cuáles clientes van a estar interesados en el producto
y cuáles no?
4
5. Machine Learning
Toma de decisiones basadas en datos.
Actualiza modelos con nuevos datos.
Algoritmos de clasificación.
Aprendizaje automatizado.
Cómputo Distribuido
Conjunto de nodos organizados.
Procesamiento de grandes volúmenes
de datos.
Resistente a fallos y concurrencia de
datos
¿Me sirve utilizar machine learning en un entorno distribuido?
En este caso sí, para aprovechar todos los datos y utilizar algoritmos
distribuidos teniendo una visión hacia futuro.
Machine learning y cómputo distribuido
5
Para responder a esta pregunta, utilizamos el siguiente enfoque:
6. Una solución de ciencia de datos es compleja.
Preparación y análisis
exploratorio de datos.
Keywords: Limpieza, perfilado,
ingeniería de características,
estadísticas descriptivas.
Recordando el ciclo del científico de datos
Generación y
evaluación de
modelos.
Keywords: Clasificación,
regresión, clustering.
Implementación y
automatización de
modelos
6
7. ¡Weka se puede utilizar en un entorno distribuido!
Distribuye los datos y/o las tareas en distintos nodos de forma local o remota.
Utiliza algoritmos de Spark MLlib y de Weka en este mismo entorno.
Weka
Minero de datos de
código abierto
desarrollado en la
Universidad de Waikato,
en Nueva Zelanda.
Weka y Spark MLlib
7
Spark MLlib
Biblioteca de algoritmos
de aprendizaje de
máquina para cómputo
distribuido.
Utilizamos las siguientes herramientas para encontrar una solución.
8. Weka hace transparente el uso de algunas funcionalidades de Spark
Bondades del cómputo distribuido en Weka
Distribución de datos Generación de modelos Resultado
Data Set
Data Set
Entrenar modelo
Entrenar modelo
1. Modelo
Incremental.
2. Ensemble de
modelos.
Score
Tareas MAP Tareas REDUCERDD
8
La interfaz gráfica
permite entender
el flujo de datos y
tareas.
Los objetos de
Weka encapsulan
las capacidades de
Spark.
9. Preparación y análisis exploratorio de los datos…
● Pentaho Data Integration (PDI): preparación de datos e ingeniería de
características.
● Weka y R-tidyverse: EDA.
● Weka: Tratamiento de valores nulos.
Roadmap: Preparación de datos y EDA
9
10. Generación y evaluación de modelos...
● Entrenamiento de diversos modelos con una muestra de los datos
(400,000).
● Entrenamiento de tres modelos con todos los datos disponibles
(9,000,000).
● Gradient Boosted Trees, Decision Tree, Random Forest.
● Evaluación de modelos (seleccionando el modelo con menor número de
falsos negativos).
Roadmap: Entrenamiento y evaluación
Modelo Precision Recall
F-
Meassure
AUC TP TN FP FN
MLlibGradientBoosted
Trees
0.985 0.985 0.985 0.943 0.074 0.910 0.006 0.009
MLlibRandomForest 0.982 0.982 0.982 0.925 0.071 0.911 0.0056 0.012
MLlibDecisionTree 0.983 0.983 0.983 0.926 0.071 0.912 0.005 0.012
10
11. Roadmap: Implementación en productivo
La implementación en productivo de un modelo de machine
learning no es trivial. Para fines de esta presentación no se
considera esa etapa del ciclo de solución.
11
12. Demo
● Ejemplo del análisis exploratorio de datos (correlaciones con datos
faltantes).
● Generación de modelos con Weka KnowledgeFlow.
● Evaluación de un modelo con Weka Explorer.
12
13. Conclusiones
● Weka es…
○ un sistema gráfico con objetos que,
○ permite usar algoritmos de aprendizaje de máquina sin escribir
código, además
○ el diseño de flujos es fácil de interpretar.
● Weka y Spark MLlib tienen diversos beneficios para manejar grandes
volúmenes de información, en particular, este ejercicio es escalable con
archivos en Hadoop (de local a un cluster).
13