Preprocesamiento
Base de Datos Masivas (11088)
¿Por qué preprocesar?
Calidad de los datos
Tareas de preprocesamiento
Limpieza de datos
Integración de datos
Reducción de datos
Transformación y discretización de datos
Limpieza de datos
Los datos en el mundo real están sucios: datos incorrectos. Por ejemplo: error del instrumento, error humano o de la computadora, error de transmisión...
Ruido en los datos
Ruido en los datos
¿Cómo manejar el ruido en los datos?
Binning: Ejemplo
Dada una variable Precio ($):
[45, 26, 21, 15, 9, 64, 24, 21, 8, 28, 4, 25]
Ordenada de menor a mayor:
4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 45, 64
Particionar los bins (igual-frecuencia):
Bin 1: 4, 8, 9, 15
Bin 2: 21, 21, 24, 25
Bin 3: 26, 28, 45, 64
Suavizado por medias:
Bin 1: 9, 9, 9, 9
Bin 2: 23, 23, 23, 23
Bin 3: 40.75, 40.75, 40.75, 40.75
Suavizado por límites:
Bin 1: 4, 4, 4, 15
Bin 2: 21, 21, 21, 25
Bin 3: 26, 26, 26, 64
Outliers
Análisis de Outliers
“Un outlier es una observación que se desvía tanto de las otras observaciones como para despertar sospechas que fue generado por un mecanismo diferente”
D. Hawkins. Identification of Outliers
Tipos de outlier
Univariado
Multivariado
Outliers
Métodos Univariados
Métodos Multivariados
Análisis de Box-Plot
Los Box-Plots permiten visualizar valores extremos univariados.
Las estadísticas de una distribución univariada se resumen en términos de cinco cantidades:
Limitaciones del Box-Plot
En el scatter se observan dos valores atípicos.
¿Qué pasa con el box-plot?
Limitaciones del Box-Plot
Podemos intervenir modificando el largo de los bigotes del gráfico.
En R podemos hacerlo con el parámetro range.
También es posible modificar los cuantiles para regular el tamaño de las cajas.
Identifica el -1.5
Identifica otros valores que no son outliers
Z-Score
Z-Score es una métrica que indica cuántas desviaciones estándar tiene una observación de la media muestral, asumiendo una distribución gaussiana.
Z-Score Modificado
Z-Score Modificado
Integración de datos
Integración de datos
Herramientas de integración
Se puede implementar cada parte de este proceso o utilizar herramientas como Pentaho Data Integration (Kettle) u otras.
Redundancia en la integración de datos
Análisis de Correlación (Datos Nominales)
Prueba de X2: Ejemplo
Verificamos si las variables play_chess = Si/No y like_science_fiction = Si/No están correlacionadas.
Armamos la tabla de contingencia
Calculamos los valores esperados.
Son los que están entre paréntesis.
Calculamos el estimador de X2
Se rechaza la hipótesis que son
independientes y decimos que el juega y el tipo están fuertemente correlacionados.
X2 = 10,82
Análisis de Correlación (Datos Numéricos)
Coeficiente de correlación de Pearson
Si rA,B > 0, A y B están positivamente correlacionadas.
rA,B = 0: no hay relación
rAB < 0: relacionadas de forma negativa.
Covarianza (Datos Numéricos)
Transformación
Feature Engineering
Normalización y Discretización Binning
Feature Engineering
Normalización
La normalización consiste en escalar los features (numéricos) de manera que puedan ser mapeados a un rango más pequeño.
Por ejemplo: 0 a 1 ó -1 a 1.
La normalización es particularmente utilizada en:
Ayuda a evitar que atributos con mayores magnitudes tengan mayor peso que los rangos pequeños.
Los métodos más utilizados para normalizar son:
Normalización Decimal Scaling
Decimal Scaling asegura que cada valor normalizado se encuentra entre - 1 y 1.
donde d representa el número de dígitos en los valores de la variable con el valor absoluto más grande.
Sepal.Length� �Min. 4.300�Median 5.800�Mean 5.843�Max. 7.900
SD 0.828
Normalización Min-Max
La Normalización Min-Max funciona al ver cuánto más grande es el valor actual del valor mínimo min(X) y escala esta diferencia por el rango.
Los valores de normalización min-max van de 0 a 1.
Sepal.Length � �Min. 4.300�1st Qu. 5.100�Median 5.800�Mean 5.843�3rd Qu. 6.400�Max. 7.900
Para los valores extremos es 0 y 1
Ejemplo: Dataset Iris y variable Sepal.Length
Normalización Z-Score
Los valores para un atributo X, se normalizan en base a la media y desviación estándar de X.
Este método de normalización es útil cuando el verdadero mínimo y máximo del atributo X son desconocidos, o cuando hay valores atípicos que dominan la normalización min-max.
Sepal.Length� �Min. 4.300�Median 5.800�Mean 5.843�Max. 7.900
SD 0.828
Para una Iris con el largo del sépalo
más corto:
Para una Iris con el largo del sépalo
más largo:
Comparación de métodos
Transformaciones para lograr Normalidad
Los histogramas de la diapo anterior, existía un leve sesgo positivo:
> print(sesgo.ori)�[1] 0.1569923�> print(sesgo.mm)�[1] 0.1569923�> print(sesgo.z)�[1] 0.1569923�> print(sesgo.d)�[1] 0.1569923
Podemos reducir este sesgo a partir de transformaciones:
> print(sesgo.tr.sq)�[1] 0.052761�> print(sesgo.tr.ln)�[1] -0.05237737
Discretización
Discretización: Características
La discretización puede ser caracterizada según cómo se realiza:
Si se realiza una discretización para cada sub-rango de manera recursiva se obtiene una Jerarquía.
Discretización: Binning
A su vez para cada uno de los agrupamientos podemos hacer:
No se utiliza la información de la clase, por lo tanto es no supervisado.
Binning: Ejemplos
Supongamos que vamos a discretizar X en 3 categorías.
X = {1, 1, 1, 1, 1, 2, 2, 11, 11, 12, 12, 44}
Igual ancho
Bajo: 0 ≤ X < 15
Medio: 15 ≤ X < 30
Alto: 30 ≤ X < 45
Igual frecuencia
n = 12
bins = 3
n/bins = 4
K-means
Identifica lo que parece ser la partición intuitivamente correcta
Discretización: Otros no supervisados
Discretización: Otros no supervisados
summary(x)� Min. 1st Qu. Median Mean 3rd Qu. Max. � 69 12958 23680 30513 44262 88312
x = sample(10:100000, size = 100, replace = T, prob = seq(1.0, 0.0001,-0.00001))
unique(floor(log(x)))�[1] 11 10 8 9 5 7 6 4
Discretización basada en Entropía
Discretización basada en Entropía: Ejemplo
Discretizar la variable de temperatura usando el algoritmo basado en entropía.
Paso 1: Calculamos Entropía para la variable objetivo.
Paso 2: Calculamos Entropía para la variable objetivo dado un bin.
Paso 3: Calculamos Ganancia de Información} (GI) dado un bin.
Variables Flags
If sex = female = then sex_flag = 0;
if sex = male then sex_flag = 1.
north_flag: If region = north then north_flag = 1; otherwise north_flag = 0.
east_flag: If region = east then east_flag = 1; otherwise east_flag = 0.
south_flag: If region = south then south_flag = 1; otherwise south_flag = 0.
Variables con dos categorías
Variables con N categorías
Tratamiento de datos faltantes
Datos Faltantes
Datos faltantes
Las opciones al enfrentarnos con datos faltantes son: eliminar registros o trabajar con métodos de imputación.
Razones de la inconsistencia
Formularios mal diseñados, errores de programación, etc.
Ej: Cuestiones relacionadas con la edad, ¿cuánto gana? afiliación política, religión, etc.
Ej: ¿Cuánto gasto en juguetes para sus hijos el último año?...no tengo hijos cuack!
Problemas de trabajar con faltantes
Hay tres tipos de problemas que se asocian con los DF en minería de datos:
Tipos de datos faltantes
Existen diferentes mecanismos de faltantes, los tipos estándar de DF son:
Tipos de datos faltantes
Métodos para tratar con datos faltantes
Imputación de datos
Imputación de Datos Faltantes
Hay tres desventajas en el uso de la media:
Imputación: Cold Deck
Cold Deck
Imputación: Hot Deck
Hot Deck: Reemplaza los faltantes con valores obtenidos de registros que son los más similares.
Ventajas de hot deck:
Desventajas:
Imputación utilizando regresiones
Reducción de Dimensionalidad
Reducción de Dimensionalidad
¿Cuál es el problema?
¿Qué pasa con valores muy grandes de d?
d=2
d=3
d=1
Covarianza
La covarianza de un conjunto de datos con p variables puede ser representada a partir de una matriz de p x p llamada matriz de varianzas y covarianzas:
Cálculo de covarianzas:
El resto de la matriz tiene las covarianzas
La diagonal tiene las varianza de cada feature
Correlación
La correlación es una versión estandarizada de la covarianza:
Combinación Lineal
mi.iris$p1 = 0.5*mi.iris$Sepal.Length + 0.5*mi.iris$Sepal.Width
mi.iris$p2 = 0.5*mi.iris$Petal.Length + 0.5*mi.iris$Petal.Width
Una combinación lineal de dos o más columnas es la suma de sus componentes multiplicados por escalares.
Análisis de Componentes Principales
El análisis de componentes principales (PCA) se emplea cuando deseamos obtener una representación más simple (y en menor dimensión) para un conjunto de variables correlacionadas.
Para examinar las relaciones entre un conjunto de p variables correlacionadas, transformamos el conjunto original de variables a un nuevo conjunto no correlacionado usando una rotación ortogonal en el espacio p-dimensional.
Estas nuevas variables serán llamadas componentes principales.
Son obtenidas en orden decreciente de importancia, de modo que la primer componente resume la mayor cantidad de variabilidad de las variables originales.
Otra observación importante sobre el PCA es que depende de las escalas en las que las variables son medidas.
Componentes Principales
Análisis de Componentes Principales
¿Qué pasa con la varianza cuando proyectamos los datos sobre el eje vertical?
¿Y en el horizontal?
Análisis de Componentes Principales
1
2
3
4
El segundo eje es ortogonal al primero
Varianza
¿Cómo se obtienen las CP?
Las CP las podemos obtener:
(Hay que normalizar)
Matriz de correlaciones
Elegancia Comodidad Deportividad
Elegancia 1.0000000 0.2029821 0.4371275
Comodidad 0.2029821 1.0000000 -0.6460583
Deportividad 0.4371275 -0.6460583 1.0000000
Conjunto de datos
La forma de encontrar las CP es a través de los Autovectores y Autovalores de la matriz de correlaciones o de covarianzas
Autovalores y Autovectores
Autovectores
Muestran el grado de correlación entre las CP y las variables originales.
[,1] [,2] [,3]
[1,] 0.290 0.838 0.463
[2,] -0.604 0.535 -0.590
[3,] 0.742 0.109 -0.661
Autovalores
Muestran cuánta varianza es capturada por esa componente
[1] 1.696 1.186 0.117
Es el vector que describen la dirección
Explica cuánto se aleja
Existe una combinación lineal (loadings) entre las variables originales que y las componentes.
CP1 = 0.290 * elegancia - 0.604 * comodidad + 0.742 * deportividad
Interpretación
Loadings:
Comp.1 Comp.2 Comp.3
Elegancia 0.290 0.838 0.463
Comodidad -0.604 0.535 -0.590
Deportividad 0.742 0.109 -0.661
Comp.1 Comp.2 Comp.3
0.66976320 0.30416297 0.02607383
0.6697632 0.9739262 1.00000000
% de Varianza capturada
97%
Corte en Varianzas mayores a 1
Biplot
Consideraciones
Ejemplo
# Descomposición en Autovalores y Autovectores
# Calculamos la matriz de correlaciones
X = cor(iris[1:4])
# Obtenemos los autovalores y autovectores
eigen.X = eigen(X)
# Varianza explicada por cada una de las componentes
print(eigen.X$values)
# Proporción de Varianza explicada
print(eigen.X$values/sum(eigen.X$values))
# Proporción acumulada de Varianza explicada
print(cumsum(eigen.X$values/sum(eigen.X$values)))
# Loadings
print(eigen.X$vectors)
Bibliografía