Tema 5

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 41

27/11/20

Gestión de Datos

Transformación
de Datos

Alvaro Ortigosa

[email protected]

1
27/11/20

Contenidos

01 Valores perdidos
02 Normalización
02 Detección de outliers

Gestión de Datos – Alvaro Ortigosa

1.- Valores perdidos

2
27/11/20

Si completamos los datos perdidos con


datos equivocados, estaremos agregando
sesgos

3
27/11/20

Qué son los valores perdidos


Porque no vivimos en un mundo perfecto

• Por diversos motivos, es posible (y muy probable en situaciones


reales) que los datos de entrada estén incompletos
• Casos de análisis / aprendizaje para los que nos faltan algún valor de atributo
(o más de uno): casos incompletos
• Muchas veces codificados como NaNs, blancos u otros discernibles.

• Dependiendo la técnica de análisis / aprendizaje utilizada, los valores


perdidos pueden tener un fuerte impacto en el resultado final

Fuentes de valores perdidos

• Los usuarios olvidan completar un campo (y el software de comprobarlo?)

• Los datos se perdieron al transferir ”manualmente” desde una BdD


heredada

• Un error de programación

• Los usuarios eligen no rellenar un campo por creencias sobre cómo se


usarán o interpretarán los datos

4
27/11/20

Detección de valores perdidos

isnull()

Detección de valores perdidos (ii)

NaN

5
27/11/20

Detección de valores perdidos (iii)

A veces puede ser


más difícil detectar
los VVPP

Detección de valores perdidos (iv)

• ¿Tienen sentidos los “0”? Conocimiento de dominio

6
27/11/20

Detección de valores perdidos (v)


• Por ejemplo, se sabe que la columna 2 es ”tensión arterial diastólica”

• Normalmente estos “0” se reemplazan por “NaN” para un


tratamiento adecuado

Detección de valores perdidos (vi)


• Algunas preguntas que debemos hacernos:
• ¿Cuáles son los atributos?
• ¿Cuáles son los tipos esperados? (int, float, string, boolean)

• ¿Hay VVPP obvios (detectados por Pandas)?


• ¿Hay VVPP no tan obvios (y no detectados por Pandas)?

7
27/11/20

Detección de VVPP (ejemplo)

Detección de VVPP (ejemplo ii)


• Primera inspección con Pandas

8
27/11/20

Detección de VVPP (ejemplo ii)


• Primera pregunta: ¿atributos?

Detección de VVPP (ejemplo ii)


• Segunda pregunta: ¿tipos?

9
27/11/20

Detección de VVPP (ejemplo iii)


• VVPP estándares

Detección de VVPP (ejemplo iv)


• Pandas con VVPP estándares

Tanto NA como celdas vacías son reconocidos


como valores perdidos

10
27/11/20

Detección de VVPP (ejemplo v)


• VVPP no estándares

Detección de VVPP (ejemplo vi)


• VVPP no estándares

11
27/11/20

Detección de VVPP (ejemplo vii)


• VVPP no estándares

Probablemente valores entrados a mano

Detección de VVPP (ejemplo viii)


• VVPP no estándares

12
27/11/20

Detección de VVPP (ejemplo ix)


• VVPP no esperados: si esperamos un texto pero tenemos un número,
¿es un valor perdido?

Detección de VVPP (ejemplo x)


• VVPP no esperados

13
27/11/20

Detección de VVPP (ejemplo xi)


• Conversión de VVPP no esperados

Detección de VVPP (ejemplo xii)


• Resumen de VVPP

14
27/11/20

Mecanismos de pérdida de datos

Se distinguen tres mecanismos de perdida de datos:

• Datos perdidos completamente al azar (MCAR = missing completely at


random)

• Datos perdidos al azar (MAR= missing at random)

• Datos perdidos no ignorables o no debidos al azar (MNI=missing non-


ignorable, o MNAR=missing not at random).

Ejemplo
• El problema de los datos perdidos no es tanto la cantidad sino el mecanismo por el que se han
producido los valores perdidos.

• Imaginemos que preguntamos sobre la ley de matrimonios homosexuales en una escala de 1


(muy desfavorable) hasta 7 (muy favorable) y que relacionamos la opinión con la clase social
medida por el salario. Supongamos que un 40% de los sujetos no nos proporcionan información
acerca de su salario.
• ¿Cómo afectaría a la opinión si sólo analizamos los sujetos con información completa?
• ¿Los datos perdidos en salario corresponden a sujetos con opiniones distribuidas aleatoriamente en el rango
completo de la escala de opinión?

• ¿Los datos perdidos corresponden a las opiniones más desfavorables?


• ¿Son ignorables?

15
27/11/20

Ejemplo
• El problema de los datos perdidos no es tanto la cantidad sino el mecanismo por el que se han
producido los valores perdidos.

• Imaginemos que preguntamos sobre la ley de matrimonios homosexuales en una escala de 1


(muy desfavorable) hasta 7 (muy favorable) y que relacionamos la opinión con la clase social
medida por el salario. Supongamos que un 40% de los sujetos no nos proporcionan información
acerca de su salario.
os
d
rdiinformación completa?
• ¿Cómo afectaría a la opinión si sólo analizamos los sujetos con
e
• ¿Los datos perdidos en salario corresponden a sujetosp
re s con opiniones distribuidas aleatoriamente en el rango
alo
completo de la escala de opinión?

• ¿Los datos perdidos corresponden a lasv


l i s is opiniones más desfavorables?

á
An
• ¿Son ignorables?

Mecanismos de pérdida de datos: MCAR


• Las características de los sujetos con información son las mismas que las de los sujetos
sin información.

• La probabilidad de que un sujeto presente un valor ausente en una variable no depende


ni de otras variables del cuestionario ni de los valores de la propia variable con valores
perdidos.

• Las observaciones con datos perdidos son una muestra aleatoria del conjunto de
observaciones.

• Ejemplo de MCAR:
1. Las personas que no nos proporcionan su salario tienen, en promedio, el mismo salario que las personas que
nos lo proporcionan.

2. Las características estadísticas (media, porcentajes) del resto de las variables son las misma para los sujetos
que nos proporcionan su salario y para los que no lo proporcionan.

16
27/11/20

Mecanismos de pérdida de datos: MCAR (ii)


• En presencia de MCAR, los análisis efectuados sobre esos datos no
tendrán sesgos.

• De todas formas, este tipo de datos perdidos no son frecuentes.

• En otras palabras, es una presunción estadística demasiado fuerte

Mecanismos de pérdida de datos: MAR


• La pérdida de datos no es aleatoria, sino que puede ser explicada por las variables con datos
completos

• Los registros con datos incompletos son diferentes significativamente de los que presentan datos
completos, y el patrón de ausencia de datos puede ser predecible a partir de variables con datos

• La probabilidad de que se produzca la ausencia de una observación depende de otras variables


pero no de los valores de la variable con el valor ausente.

• Es imposible probar si la condición MAR es satisfecha y la razón es que dado que no conocemos
la información faltante no podemos comparar los valores de aquellos sujetos que tienen
información con los que no la tienen.

17
27/11/20

Mecanismos de pérdida de datos: MAR (ii)


• Ejemplos de MAR

1. La pérdida de valores en la variable sueldo es MAR si depende del estado civil


pero dentro de cada categoría, la probabilidad de missing no está
relacionada con el sueldo.

2. Los hombres son menos propensos a completar encuestas sobre depresión,


pero eso no tiene nada que ver con su nivel de depresión, una vez
considerado que son hombres.

• Normalmente una estimación por Full information maximum


likelihood producirá valores sin sesgos significativos

Mecanismos de pérdida de datos: MNAR

• La probabilidad de los datos perdidos sobre una variable Y depende de los valores
de dicha variable una vez que se han controlado el resto de las variables.

• En otras palabras, los valores perdidos están relacionados con la razón para estar
perdidos

• Ejemplos:
1. Si son los hogares de renta mayor los que con menos probabilidad nos proporcionan el salario (vergüenza,
pudor, miedo, etc.), una vez controladas el resto de las variables, entonces la pérdida de datos no es
aleatoria ni ignorable.

2. Los hombres no completaron el cuestionario sobre depresión a causa de su nivel de depresión

18
27/11/20

Punto de vista

• Es mejor no pensar que se están “arreglando” los datos

• En realidad, lo que hacemos es aprender a lidiar con ellos: cómo


podemos hacer en análisis considerando que tenemos valores
perdidos.

• El tipo de dato perdido va a determinar la estrategia para gestionarlos

• Distintos atributos (columnas) pueden requerir diferentes estrategias

Gestión de valores perdidos

• Una opción es no hacer nada (ignorar VVPP)

• Podría resultar si los VVPP son MCAR (pero ya vimos que no es lo normal) y
pocos.

• El número de datos completos (sin VVPP) debe ser suficientemente grande

19
27/11/20

Gestión de valores perdidos (ii)

• Omitir / Borrar

• Imputar

• Métodos de análisis basados


en la información
disponible

Omitir / Borrar: descartar variable

• Si los VVPP son MCAR o MAR y el número de VVPP es muy alto, el


atributo debería eliminarse.

• Empíricamente se estima en 5%de VVPP como límite máximo para no quitarlo

• Si los VVPP corresponden a una variable objetivo (dependiente) es


recomendable quitar la variable

20
27/11/20

Omitir / Borrar: descartar caso

• Si el número de casos con VVPP ese bajo, lo mejor es quitarlos.

• Aunque es una solución sencilla, puede disminuir mucho el tamaño


del conjunto de datos

• Si los datos no están perdidos al azar, puede provocar sesgos

Imputación

• Proceso de sustituir los valores perdidos usando algún método


estadístico

• Valor estimado en función de otros datos (conocidos)

• Permite preservar todos los casos

• Hay que ser cuidadoso porque la mayoría de los métodos introducen


sesgos y reducen la varianza de los datos

21
27/11/20

Imputación Mediana / Media / Moda

• Si los valores son numéricos, los VVPP se pueden reemplazar por la


media de los valores presentes

• En cambio usamos la mediana si sospechamos de la existencia de


muchos outliers.

• En el caso de atributos categóricos, se puede usar la moda como


reemplazo de los VVPP

Imputación M/M/M: desventajas

• Aunque fáciles de calcular, reducen la varianza

• También reducen correlación entre variables

• Hay quienes directamente desaconsejan estos métodos

• Ver https://github.com/matthewbrems/ODSC-missing-data-may-
18/blob/master/Analysis%20with%20Missing%20Data.pdf

22
27/11/20

Imputación Regresión lineal

• Las variables con con VVPP son tratadas como variables


dependientes, mientras que las variables completas son usadas como
predictores.

• Predicción basada en regresión lineal

• Desventajas

• Presupone relación lineal

• Puede crear cierto sobre ajuste en los valores calculados

Imputación KNN

• Selección de K vecinos (completos) de acuerdo a un criterio de


distancia, asignación de la media de los valores de esos vecinos.

• Si es un atributo cualitativa, se usa el valor más frecuente

• Como es habitual en KNN, probar con distintos K y medidas de


distancia.

• Euclídea si los atributos son similares

• Manhattan si no lo son

23
27/11/20

Imputación KNN: desventaja

• Simple de implementar, pero sufre de la “maldición de las


dimensiones”à Computacionalmente ineficiente para un número
grande de variables

Imputación Imputación múltiple

• Método iterativo en el cual se calculan múltiples estimaciones para


los VVPP usando la distribuciones observadas en los datos.

• De alguna forma este método refleja la incertidumbre alrededor del


valor verdadero, y tiene a producir estimaciones menos sesgadas

24
27/11/20

Valores perdidos: resumen

• La gestión de VVPP no debe modificar la distribución de los datos.

• Condiciones sobre el método a aplicar:

• Estimaciones sin sesgos (no cambiar distribución)

• Las relaciones entre los atributos se deben mantener

Valores perdidos: referencias

• https://machinelearningmastery.com/handle-missing-data-python/

• https://stats.idre.ucla.edu/stata/seminars/mi_in_stata_pt1_new/
• https://towardsdatascience.com/practical-strategies-to-handle-
missing-values-626f9c43870b
• https://towardsdatascience.com/6-different-ways-to-compensate-for-
missing-values-data-imputation-with-examples-6022d9ca0779
• https://towardsdatascience.com/data-cleaning-with-python-and-
pandas-detecting-missing-values-3e9c6ebcf78b

25
27/11/20

Imputación Imputación: implementación

• Scikit-learn tiene métodos (impute.SimpleImputer para 1 variable y


impute.IterativeImputer para múltiples variables) de imputación.

• Experimental todavía en 0.23.2

• Aunque no soporta directamente Imputación Múltiple, se puede hacer con


sample_posterior=True (ver instrucciones)

2.- Normalización

26
27/11/20

Escalado de atributos (features scaling)

• Un problema significativo en los conjuntos de datos es cuando el rango de las


variables difiere mucho.

• Usando la escala original puede provocar que se otorgue más peso a las
variables con un rango mayor.

• El objetivo del escalado de atributos es asegurar que los atributos estén en


(casi) la misma escala, de forma que todos tengan la misma importancia y
haga más sencillo el proceso a los algoritmos de aprendizaje automático

Ejemplo

27
27/11/20

Ejemplo (ii)

• En el caso anterior algunos modelos de aprendizaje tendrán problemas. Por


ejemplo KNN y K-means se basan en la distancia Euclídea

Algoritmos que necesitan escalado

28
27/11/20

Tipos de escalado

• Normalización y estandarización

• Normalmente se usan de forma intercambiable, pero en realidad


estandarización es una forma de normalización

Estandarización

• También llamada normalización de Z-score o de zero-mean

• Se re-escalan los atributos para que la media sea = 0 y la desviación estándar


= 1.

• Ecuación

29
27/11/20

Estandarización (ii)

Estandarización (iii)

• Útil para los algoritmos de optimización (descenso x gradiente) usados en


algunas técnicas de ML que pesan las entradas (regresiones y NN).

• También usada para algoritmos basados en medidas de distancia, como por


ejemplo KNN
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
sc_X = sc_X.fit_transform(df)
#Convert to table format - StandardScaler sc_
X = pd.DataFrame(data=sc_X, columns=["Age", "Salary","Purchased",
"Country_France","Country_Germany", "Country_Spain"])
sc_X

30
27/11/20

Normalización Min-Max

• Se re-escalan los valores para que estén entre un nuevo mínimo y un nuevo
máximo.

• Para transformar los datos a un intervalo [new_minf , new_maxf] para un


atributo f

donde v’ es el nuevo valor del atributo

Normalización Min-Max (ii)

• Si el re-escalado es entre 0 y 1:

• Código:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(df) scaled_features = scaler.transform(df)
#Convert to table format - MinMaxScaler
df_MinMax = pd.DataFrame(data=scaled_features, columns=["Age", "Salary","Purchased",
"Country_France","Country_Germany", "Country_Spain"])

31
27/11/20

Normalización de escala decimal

• Transformar los datos moviendo la coma decimal de cada valor del


atributo f.

• La cantidad de posiciones a mover depende del máximo valor


absoluto de f

donde j es el mínimo entero tal que Max(|v’|) < 1

Normalización de escala decimal: ejemplo

32
27/11/20

Estandarización Vs. Normalización Min-Max

• En la normalización Min-Max se obtienen desviaciones más


pequeñas; es decir, los datos están más concentrados alrededor de la
media.

• Por este motivo, en general Estandarización es más robusta ante


outliers y facilita la convergencia de algoritmos como el descenso por
gradiente

Escalado de atributos: Referencias

• https://towardsdatascience.com/understand-data-normalization-in-
machine-learning-8ff3062101f0

• https://www.kdnuggets.com/2020/04/data-transformation-
standardization-normalization.htm

• https://www.kdnuggets.com/2019/04/normalization-vs-
standardization-quantitative-analysis.html

• https://scikit-learn.org/stable/modules/preprocessing.html

33
27/11/20

3.- Detección de
outliers

Outliers (datos aislados)

• Datos extremos que se alejan de las otras observaciones

Observaciones que difieren del patrón general de la muestra

• Pueden indicar una variación en el método de medición, errores


experimentales o algún tipo de novedad.

34
27/11/20

Outliers: ejemplos

Tipos de Outliers

• Univariados: respecto a la distribución de valores de un único atributo

• Multivariados: en espacios n-dimensionales.

35
27/11/20

Tipos de Outliers (ii)

• Outliers puntuales: punto de datos que cae lejos del resto

• Outliers contextuales: pueden representar ruido en los datos.

• Ej: símbolos de puntuación analizando textos o ruido de fondo en


reconocimiento de voz

• Outliers colectivos: subconjunto de novedades que pueden estar


indicando un fenómeno nuevo

Consecuencia outliers

36
27/11/20

Causas más frecuentes de Outliers

• Errores humanos en el ingreso de datos

• Errores de instrumentos de medición

• Intencionales (validación de los métodos de detección)

• Errores en el procesamiento de los datos

• Errores en el muestreo

• Naturales (no es un error, si no una novedad)

Detección de outliers

• ¿Cuántos atributos voy a considerar?

• Univariado / Multivariado

• ¿Puedo asumir una distribución específica de los datos?

• Paramétrico / No paramétrico

37
27/11/20

Métodos populares de detección de outliers

Z-Score o standard score

• Presume una distribución gaussiana de los datos à es paramétrico

• Mide a cuántas desviaciones estándares de la media está un punto


dado

• Si los datos no tienen distribución gaussiana, se puede convertir con


escalado de atributos.

• Cálculo z-score:

38
27/11/20

Z-Score o standard score (ii)

• Debemos definir un umbral (2.5; 3; 3.5 son buenas medidas)

• Todo dato más allá del umbral es descartado

Z-Score o standard score (ii)

• Este método es simple y funciona bien:

• con distribuciones paramétricas (o convertibles)

• Con baja dimensionalidad

• Para otros casos, Dbscan y Isolation Forests pueden ser buenas


soluciones

39
27/11/20

Uso de visualizaciones simples

• Los Box Plots son un método simple de detectar outliers univariados

Gestión de Outliers

• Normalmente los outliers se descartan

• También se les pueden poner “abrazaderas”: darles el valor del


umbral más cercano

• Una técnica habitual es probar con y sin abrazaderas para verificar si los
outliers afectan al algoritmo utilizado

• También se pueden usar algoritmos robustos a los outliers (p.e.,


árboles o boosting)

40
27/11/20

Outliers: referencias

• https://towardsdatascience.com/a-brief-overview-of-outlier-
detection-techniques-1e0b2c19e561

• https://www.edvancer.in/data-cleaning

Fín de capítulo
Alvaro Ortigosa

41

También podría gustarte