-
Porque???
- Lo ideal seria tener conocimiento previo de los datos
y poder inferir ciertas hipotesis o relaciones entre los atributos.
- Sin embargo, no siempre se tiene este conocimiento.
Con grandes volumenes de datos se recomienda EDA o GDA
(análisis gráfico de datos).
-
EDA o GDA permite
- Profundizar en el conjunto de datos.
- Examinar las interrelaciones entre los atributos.
- Identificar subconjuntos de casos interesantes.
- Desarrollar una idea inicial de las posibles relaciones
entre los atributos y los objetivos de clase.
-
Conociendo los datos
-
Pero primero, que son los datos?
- AttributesVsObjects.png
- Una colección de objetos describen los datos.
- Los objetos también son conocidos como
instancias, registros, casos, ejemplos u observaciones.
- Una colección de atributos describen a un objeto.
- Los atributos también son conocidos como
variables, campos o características.
-
Tipos de datos
-
Cualitativos o Categóricos
-
Atributos representan distintas categorias en lugar de números.
Operaciones matemáticas no tienen sentido
- Nominales
- Categorias sin orden.
- Color de ojos: Azul, Verde, Negros.
- Ordinales
- Categorias donde el orden es significativo
- Talla: S, M, L, XL
- Códigos de área, color de ojos, IP Address, talla.
- Poseen solamente un conjunto finito de valores.
- A menudo son representados por valores enteros.
EJ: Estrato, Notas.
- Tipo String, Boolean, Enum, ...
-
Cuantitativos o numéricos
-
Los atributos son números y pueden ser tratados como tales.
- Intervalos
- No hay cero absoluto. La división no tiene sentido.
- Fechas, puntajes de examenes
- Radios
- Existe el cero absoluto. La división aplica.
- Longuitud, Tiempo, Peso.
- Fechas, Calificaciones, Peso, fallas por hora, temperatura.
- Aunque son numerales poseen un numero finito de valores,
dependiendo del tamaño del conjunto de datos.
- Pueden ser calculados tan precisamente como los instrumentos lo permitan.
- Tipo integer, float, double, ...
-
Propiedades de los atributos.
- Comparación
- Orden
- Adición
- Multiplicación
-
Obtención de los datos
-
Experimental
- Describe datos que fueron recogidos por alguien quien ejerció
un estricto control sobre todos los atributos
- Generalmente la info se extrae a travéz de instrumentos y experimentos.
- Dioxdio de carbono en la atmosfera Vs Temperatura de la tierra.
-
Observacional
- Describe datos que fueron recopilados sin mayor control.
Muchas veces los datos ya estaban ahi cuando llegamos.
- Generalmente la info se recoge a travéz del uso de formularios o encuestas.
- Consumo de Diet-Coke Vs Peso
- El problema radica en que mucha de la información usada en proyectos
de minería de datos es observacional asi que hay que tomar precauciones.
-
Trabajando con
conjuntos de datos
-
Paquetes de software
- R Project
- Mondrian
- WEKA
-
Conjunto Churn.csv
- Entiendase por churn la persona que abandona
los servicios de una compañia
- 20 variables, 3333 registros
-
Detectando Correlación en las variables.
- Se dice que existen variables correlacionadas cuando unas
variables dependen de otras.
- Proveer de datos correlacionados a un modelo puede
volverlo inestable o generar resultados poco confiables.
- Ej: Day minutes, Day calls, Day charge
-
Técnicas de detección
-
Graficos de dispersión
- > data<-read.csv(".../churn.csv")
- > plot(data[,c(8,9,10)])
-
Matrices de correlación
- > cor(data[,8:10])
-
Regresión lineal
- > lm(data[,10] ~ data[,8])
- > summary(lm(data[,10] ~ data[,8]))
- Después de idetificar variables correlacionadas se debería
eliminar una de ellas
- Se reduce la dimensionalidad del conjunto
beneficiando el desempeño de los algoritmos
-
Usando EDA para descubrir
datos anómalos.
-
El campo area code solo tiene 3 valores
y todos pertenecen al estado de California
- Topic
- Sin embargo, una tabulación cruzada muestra una (+/-) igual
distribución sobre todos los estados.
- Esto puede reflegar un error de los datos en los campos
area code o state. Un análisis más profundo es requerido.
-
Explorando variables categóricas
- A travéz de EDA nos podemos hacer una idea
de la variables que harán parte de nuestro modelo.
-
Uso de gráficas de barras para comparar la clase
contra variables categóricas
-
International Plan Vs Churn?
- Barchart normal
- Barchar con igual longuitud de barras
- > table(data[,5],data[,21])
- Mosaic Chart con Mondrian
- Qué concluimos?
- Debemos investigar porque los usuarios del
Plan internacional tienden a abandonar la compañia.
- Futuras implementaciones de minería de datos
deberían incluir la variable Plan Internacional.
- Voice Plan Vs Churn?
-
Explorando variables numéricas.
-
Medidas sobre datos numéricos.
- Metricas de resumen como el máximo, el mínimo y el rango de los datos.
- Métricas de centro como media,
mediana y moda.
- Métricas de variabilidad como varianza,
desviación estandar e Indice Intercuartil.
-
Varias son accesible a travéz de R con la
función summary(data). Otras funciones utiles son...
- mean(x)
- median(x)
- min(x)
- max(x)
- sd(x)
-
Una diferencia considerable entre la media y
la mediana puede indicar asimetria de los datos.
- Caso Voice mail messages y
Customer service calls
- Pueden indicar la presencia de outliers o un particular comportamiento de los datos.
-
Usando funciones personalizadas en R
para determinar una 'Diferencia considerable'.
- Funcion getDifference devuelve una lista con la
informacion de una columna en particular.
- Podemos programar directamente desde la línea de
comandos pero es más comodo usar cualquier editor de texto.
- Por comodidad seteamos nuestro directorio de trabajo con...
> setwd("/mi/directorio/de/trabajo")
- En un archivo con extension .R programo
mis funciones.
- Llamamos las fuentes desde R con...
> source("Archivo.R")
- Funcion showDifferenceMeanMedian devuelve una data.frame
con la información de todas las columnas consultadas.
- El resultado final
- Consultando la documentación en R
> ?row.names
- Asignación:
Construir una función que resuma información relevante a la
correlación entre las variables indicando si existe una relación
Débil, Mediana o Fuerte.
- > cor(data[,7:20], data[,8])
- Los valores del coeficiente de correlacion varian de -1 a 1.
- 1 implica una alta correlacion positiva
(directamente proporcianales).
- 0 significa que no existe ninguna relación entre las variables.
- -1 implica una alta correlación negativa
(inversamente proporcionales).
- Los parametros de la función deberán ser el conjunto de datos, las variables comparadas, la variable a comparar.
Ej: > new_cor(data, 7:20, 8)
- La función retorna un data.frame con dos columnas: el coeficiente de correlación y la etiqueta Débil, Mediana o Fuerte según sea el caso.
- Si 0 <= coeficiente <= 0.33 entonces "Débil".
- Si 0.33 < coeficiente <= 0.66 entonces "Mediana".
- Si 0.66 < coeficiente <= 1 entonces "Fuerte".
- ¿¿¿Diferencia considerable???
-
Usando histogramas para analizar el
comportamiento de variables númericas.
-
Customer service calls
- Histograma de Customer service calls.
- Histograma normalizado de Customer service calls.
- Conclusiones
- A la tercera llamada deben prestarse atención e intensivos especiales.
- Indagar al interior del departamento de atención al cliente.
- Incluir la variable Customer service calls dentro de futuros proyectos KDD.
-
Day minutes
- Se aplica la misma metodología.
- Que concluimos...
- Cuando el número de minutos pase de 200 deben aplicarse incentivos especiales.
- Investigar porque usuarios tan frecuentes tienden a dejar la compañia.
- Incluir Day minutes en futuros proyectos KDD.
- ¿Que ocurre con la variable Evening minutes?
-
Explorando relaciones multivariables.
- Debido a la interacción entre las variables es posible identificar subconjuntos de datos que cumplen cierto patron.
-
Day Minutes Vs Customer Service Calls
- Gráfico de dispersión Day Mins Vs Customer Service Calls
-
Que concluimos...
- Consumidores con alto número de llamadas a atención al cliente
y bajo número de llamadas durante el día tienden a dejar la compañia.
- Las personas con varias llamadas al dia casi no consultan el servicio de atención al cliente y abandonan la compañia.
-
Evening Minutes Vs Day Minutes
- Gráfico de dispersión Eve Mins Vs Day Mins
- Los consumidores con alto indice de llamadas en el día y en la tarde son tres veces mas probables de que dejan la compañia.
-
Resumen del análisis exploratorio de datos
sobre el conjunto churn.
-
Resumen EDA sobre churn.csv
-
1
- Anomalo. Omitido.
- State
-
2
- Account length
- No existe relación obvia con churn pero retenido.
-
3
- Area code
- Anomalo, Omitido.
-
4
- Phone number
- ID, Omitido.
-
5
- Intenational plan
- Predictor de churn, Retenido.
-
6
- VoiceMail plan
- Predictor de churn, Retenido.
-
7
- VoiceMail messages
- No existe relación obvia con churn pero retenido.
-
8
- Total day minutes
- Predictor de churn, Retenido.
-
9
- Total day calls
- No existe relación obvia con churn pero retenido.
-
10
- Total day charge
- Función de minutes, Omitido.
-
11
- Total evening minutes
- Posible predictor de churn, Retenido.
-
12
- Total evening calls
- No existe relación obvia con churn pero retenido.
-
13
- Total evening charge
- Función de minutes, Omitido.
-
14
- Total night minutes
- No existe relación obvia con churn pero retenido.
-
15
- Total night calls
- No existe relación obvia con churn pero retenido.
-
16
- Total night charge
- Función de minutes, Omitido.
-
17
- Total international minutes
- No existe relación obvia con churn pero retenido.
-
18
- Total international calls
- No existe relación obvia con churn pero retenido.
-
19
- Total international charge
- Función de minutes, Omitido.
-
20
- Customer service calls
- Predictor de churn, Retenido.