Curso de Minería de Datos

Anterior

Sesion 01 Sesión 01 - Introducción general a la asignatura: uso de RapidMiner (organización del entorno, repositorio, importación de datos y tipos de datos, operadores básicos - retrieve, generate attributes, select attributes, multiply, split, decision tree, naive bayes, apply model y performance), clasificación con métricas de calidad y matriz de confusión) en problema de clasificación usando validación cruzada, entrenamiento y validación con el mismo dataset, y entrenamiento y validación con porcentaje estratificado del dataset. Se uso un árbol de decisión para hacer recomendaciones de que medicina (DrugA .. DrugY) se debe recetar a un paciente con una enfermedad especifica. Se muestra como el árbol de decisión además de clasificar es un selector de atributos, además el uso de Naive Bayes y su debilidad al tener datos de entrada con atributos redundantes.
Sesion 02 Sesión 02 - Introducción general a la asignatura: Motivación, objetivos de la asignatura, definición de minería, justificación, CRISP-DM, falacias, tareas principales y secundarias, tarea de descripción y tarea de clasificación usando RapidMiner y recordando lo visto en la sesión anterior.
Sesion 03 Sesión 03 - Introducción general a la asignatura (usando RapidMIner): Tarea de clasificación ejemplos en diferentes contextos (transacciones fraudulentas, educación virtual y orden de presentación de contenidos de acuerdo con el perfil, aprobación de hipoteca, determinar si una enfermedad está presente, otros). Preprocesamiento de los datos con el operador Replace y conversión de nominal a numérico (codificación dummy). Clasificación basada en costos con el operador MetaCost (introducción sencilla de Bagging y Boosting) para orientar el clasificador para que tome decisiones por costos y no por instancias correctamente clasificadas; además el operador Performance Cost para calcular el costo. Se explicó en Excel como se calcula el costo de la decisión basado en matriz de confusión y la matriz de costos. Optimización de parámetros de una técnica usando el operador Optimize Parameters. Selección de atributos basado en Filtros y Wrappers, y un ejemplo con Optimize Weights (Forward). Tarea de Regresión y algunos ejemplos. Se resalta la importancia de los datos de entrenamiento, que sea rico en ejemplos, que tengan la misma distribución o similar a lo que va a ser su uso en producción. Tareas de agrupamiento (clustering o segmentación) como parte de un proceso de clasificación o como un objetivo en sí mismo (por ejemplo, el metabuscador http://search.carrot2.org para el clustering de snippets).
Sesion 04 Sesión 04 - Fuentes de data sets para el proyecto de clase: Kaggle, IEEE Data Port, UCI machine learning repository, Papers with Code, entre otros. Pero en especial que estén relacionados con sus tesis de maestría y doctorado, evitando procesamiento de sonido o imágenes, a menos que la tesis esté relacionada con eso. Se recordó la importancia de que los datos de entrenamiento tengan la misma distribución de los datos de prueba o producción (ejemplo, campaña de regreso al colegio) y que la fecha de selección de los datos relacionados con el evento (ejemplo, detección de diabetis) este bien seleccionada. Tarea de Clustering (Segmentación): definición y ejemplo sencillo con un data set sintético de 3 grupos, 50 registros por grupo con 3 atributos. Se muestra además de un análisis visual sencillo que permite identificar que un atributo no aporta información, como usar el algoritmo de Clustering (k-means) con varias ejecuciones (se comenta y muestra que se pueden obtener mejores resultados cuando se pueden comparar varias ejecuciones). Se comentó como los data sets de clasificación se pueden usar para comparar el rendimiento de los algoritmos de agrupación, los cuales ignoran la clase. Para esto último se usa el operador Map Clustering on Labels (mejor la versión de Weka que permite hacer match con diferente número de grupos y clases, en RapidMiner estos valores deben ser iguales). Finalmente la visualización de coordenadas (atributos) paralelos para discriminar y entender que diferencia los grupos. Tarea de Asociación (Análisis de canasta de mercado): definición (se encuentran patrones de algunos datos y no modelos que explican todos los datos). Se mostraron 3 ejemplos usando datos en formato tabular, otro con datos transaccionales normalizados como se consiguen en los sistemas de puntos de venta (POS) y se transforman como una sola columna con datos concatenados y finalmente la transformación de los datos transaccionales en datos tabulares. Para encontrar los ítems frecuentes se explica la medida de soporte y el operador FP-Growth y para la creación de las reglas la medida de confianza y el operador Create Association Rules. Se comento la necesidad de definir el valor positive como true en Fp-Growth.
Sesion 05 Sesión 05 - Análisis de series temporales, definición y ejemplos resaltando la necesidad de usar una unidad de tiempo unificada para la captura de datos y lo importante de unir esto con otros datos que no varían en la unidad de tiempo pero que complementan los datos para poder predecir apropiadamente en un problema de series. Usando un data set del precio del gas se explico la operación de ventaneo (windowing) para convertir una lista ordenada de datos obtenidos a una misma separación de tiempo (horas) y luego con esta nueva tabla (vista minable) usar diversas técnicas de minería de datos. Se comentaron cuatro métricas para evaluar la calidad de los modelos de regresión (MSE o SSE, RMSE, MAE y RMAE) pero se comento que hay otros. Se usaron varios clasificadores entre ellos bagging y adabost (boosting) de RapidMiner, estos últimos se explicaron en detalle. En windowing se muestra como configurar el paso y el horizonte con uno o mas unidades de tiempo,. Cuando se usan 2 o más horizontes se deben quitar las columnas que no se quieren usar para predecir después y asignar el role de clase al atributo o columna apropiada. Se mostro en excel como gráfica los datos crudos de la serie temporal, agregar línea de tendencia y revisar el valor de ajuste (R2). Se presentó un ejemplo de promedios de 3 horas para suavizar la serie de datos o para rellenar datos (pre-procesamiento de datos). Luego con un data set de datos meteorológicos (humedad, temperatura, punto de rocío y otros) se ventanean varias variables y se usa como clasificador un árbol de decisión con criterio basado en least squares. Luego se comentaron diversas aplicaciones de minería de datos (marketing, fraudes, incrementar ventas, minería de textos, minería web, entre otros), se resalta la importancia de iniciar un proyecto de minería de datos en el área del core businness (mayor probabilidad de datos con calidad y mayor probabilidad de impactar positivamente, con lo cual se abren las puertas de las otras unidades del negocio)algunos avances del GTI en el área y finalmente se recordaron unos repositorios de datos.
Sesion 06 Sesión 06 - Respuestas a la práctica de RapidMiner basada en la UPV, entre ellas: Tres esquemas sencillos de dummificación (Nominal to Numerical) y su impacto en la clasificación; uso del Jitter para evitar cometer errores al visualizar gráficos que tienen atributos nominales o binarios; corregir la tabla de costos y mirar que el Performance Cost permite definir el orden de las clases pero no con el operador MetaCost (este lo toma con el orden de aparición de las clases en el data set); el uso de un solo modelo (iterations = 1) de costos cuando se usa un clasificador interno que sea también de ensambles (bagging o bosting) para evitar jerarquías complejas, aunque esto es válido. Explicación del clasificador Naive Bayes con una hoja de Excel que tiene una vista minable de 2 atributos (D que es discreto y N que es numérico) y una variable de clase binaria (+ y -). Se muestra como calcular las probabilidades a priori, las probabilidades condicionadas (para atributos discretos con máxima verosimilitud y luego con la ley de sucesión de Laplace y para atributos numéricos con la distribución normal). Luego como escoger la clase que tiene mayor probabilidad. Además, se explicó el modelo como Producto de probabilidades y como Suma de Logaritmos de probabilidades. Luego usando el data set de Drug-200 se explico como calcular la precisión que calcula Weka para preprocesar los datos numéricos y la creación de las tablas de probabilidades. Se comenta que el clasificador asume que no hay relación entre los atributos independientes, pero que a pesar de esa simplificación obtiene muy buenos resultados en varios problemas.
Sesion 07 Sesión 07 - Proceso de Descubrimiento de Conocimiento: Introducción, propuesta de Fayyad et all (origen de ciencias de la computación), propuesta SEMMA de SAS (origen estadístico), Propuesta de CRIPS-DM (Cross-industry standard process for data mining cuyo origen es de un esfuerzo internacional de academia, ciencia e industria). Se comenta que los datos se deben conseguir de dentro y fuera de la compañía de acuerdo al objetivo del proyecto. De CRIPS-DM se detallan sus Fases, Tareas genéricas y entregables. Al final se comenta que el proyecto de clase se debe exponer en un espacio de 20-30 minutos máximo y que el entregable son las diapositivas, datos y código realizado. Se busca con el proyecto de clase que se realice algo cercano al trabajo de tesis que se esta desarrollando, en caso de no encontrar como lograrlo, usar kaggle, el repositorio de la UCI, IEEE Data Port, Papers with code u otra fuente de datos, siempre teniendo en cuenta el alcance que debe tener el trabajo que se desarrolle.
Sesion 08 Sesión 08 - Solución de preguntas sobre el Taller de Churn.
Sesion 09 Sesión 09 - Solución de preguntas sobre el Taller de Churn y explicación detallada de las bases del algoritmo CART (Árbol de Decisión Binario) y de C4.5 (Árbol n-ario).
Sesion 10 Sesión 10 - Pre procesamiento de datos: datos erróneos, datos faltantes, operaciones básicas de JOIN (Natural, Outer y Cross) en SQL, datos atípicos, como detectarlos con conteos, histogramas, normalización de datos, estandarización Z-Score, Rango intercuartílico, y como manejar estos datos faltantes (buscar el valor real, remplazar por valor constante, la media, la moda o datos al azar basado en la distribución de valores de la columna, o eliminar columnas/filas como última opción) o atípicos (buscar el valor real, discretizar, o eliminar columnas/filas como última opción, entre otros).