Logo Studenta

CRLS_TGJL_Practica8

¡Este material tiene más páginas!

Vista previa del material en texto

Universidad Nacional Autónoma de México
Facultad de Ingeniería
Minería de Datos
Grupo: 03 - Semestre: 2023-2
Práctica 8:
Fusión de Datos.
Fecha de entrega: 11/04/2023
Profesor:
Dr. Guillermo Gilberto Molero Castillo
Alumnos:
Cruz Rangel Leonardo Said
Téllez González Jorge Luis
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Resumen
En el siguiente reporte se aborda el proceso de análisis exploratorio y la metodología a realizar para
la fusión de datos de un dataset correspondiente a diversas mediaciones realizadas a pacientes
diabéticos con retinopatía, empleando 3 métodos de fusión: por media, mediana y aproximación
lineal.
Introducción
La Fusión de Datos se re�ere al proceso de estimación de valores, en múltiples niveles, para la
caracterización de un objeto de estudio. Dicho de otro modo, se trata de la integración de
múltiples valores para obtener un único valor representativa que se conoce como
estimación.
Figura 1. Métodos de fusión a partir de fuentes heterogéneas.
Este proceso resulta especialmente relevante a partir del desarrollo del Internet of
Things (IoT) y la aparición de sensores de medición a escala masiva en múltiples industrias.
Por ejemplo, en la actualidad los sensores orientados a la medición de parámetros de la salud
han presentado una adopción masiva que ha permitido su uso tanto a nivel hospitalario
como a nivel personal; con distintos niveles de precisión de acuerdo a su naturaleza.
Lo anterior lleva a uno de los retos más importantes de la fusión: la inconsistencia en
las mediciones de los datos. Entre otros factores externos, las mediciones de baja �abilidad y
el uso de múltiples sensores de características distintas puede provocar una serie de
complicaciones importantes al momento de realizar el proceso de fusión; lo que puede
impactar en consecuencia al resultado �nal de la fusión.
2
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Como resultado de realizar este proceso, es posible obtener una vista generalizada y
uni�cada de un fenómeno particular que ha sido muestreado; por lo que el proceso de
reconocimiento de patrones y el entrenamiento de algoritmos de aprendizaje automático se
puede simpli�car de forma notoria.
Figura 2. La Fusión de Datos permite obtener una vista general de un fenómeno.
El propio método de fusión elegido también representa una consideración importante:
● Los métodos tradicionales incluyen el cálculo de medias o medianas para obtener un
promedio de todos los valores de un conjunto de datos. Generalmente, el resultado
obtenido es de baja �delidad y representatividad con respecto a todos los valores
considerados.
● Los métodos por algoritmos especializados permiten obtener fusiones de datos
mucho más precisas y de mejor calidad a comparación de la categoría anterior. Esto
incluye, entre otros algoritmos, las aproximaciones lineales, polinomiales y
exponenciales.
3
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Desarrollo
El trabajo a desarrollar en el presente reporte se realiza con base en un dataset
proporcionado que contiene mediciones realizadas a pacientes diabéticos con respecto a su
azúcar en la sangre. A continuación se lleva a cabo un análisis exploratorio inicial por medio
de la carga del dataset en csv hacia un DataFrame de la biblioteca pandas:
Análisis Exploratorio de Datos
Paso 1: Descripción de la estructura de datos.
Se accede al atributo shape de pandas, que devuelve una tupla con la cantidad de �las y
columnas.
Figura 3. Dimensiones del dataset a explorar.
Posteriormente, observamos los tipos de datos almacenados en cada columna con el
atributo dtypes y se emplea el método value_counts() para determinar la cantidad de veces
que aparece cada tipo de dato en el DataFrame.
Figura 4. Tipos de datos en el DataFrame.
4
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Se observa que el conjunto presenta variables categóricas y variables numéricas del tipo float
e int.
Paso 2: Identificación de datos faltantes.
Empleando el método isnull().sum() de Pandas, es posible obtener la suma de todos los
valores nulos de cada columna. También es posible usar info(), que muestra una
descripción general del DataFrame, incluyendo los nombres de las columnas, el número de
valores no nulos, el tipo de dato de cada columna y el uso de memoria del DataFrame.
Figura 5. Identi�cación de nulos en el DataFrame.
No se detectaron valores nulos en el DataFrame, pero si los hubiera, se pueden seguir dos
alternativas:
● Eliminar los datos faltantes directamente, dependiendo del contexto y el objetivo del
análisis. Puede afectar el tamaño del DataFrame y afectar la representatividad de los
datos.
● Imputar los datos faltantes, es decir, sustituir los valores faltantes por estimaciones
basadas en los datos disponibles.
5
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Paso 3: Detección de valores atípicos.
En este contexto, los grá�cos son una herramienta ampliamente empleada para obtener una
visión general de la distribución de datos. Además, permiten generar resúmenes de la
información obtenida. El término distribución hace referencia a cómo los valores se
distribuyen en una variable o la frecuencia con que aparecen.
En el caso de las variables numéricas, se utilizan histogramas, diagramas de caja y
resúmenes estadísticos para observar la frecuencia con que aparecen grupos de números en
una columna. Por otro lado, para las variables categóricas, se recurre a grá�cos de barras y
resúmenes estadísticos para visualizar las clases y su frecuencia en cada columna.
En principio, empleando histogramas se observa el sesgo evidente de los sensores,
mientras que se observa variabilidad en las variables categóricas del DataFrame.
Figura 6. Histogramas de las variables en el dataset. Los histogramas de los sensores son semejantes.
6
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Posteriormente, se emplea el método describe() para obtener un recuento de la media,
desviación estándar, mínimo, máximo, percentiles, etc. del conjunto de datos.
Figura 7. Descripción estadística básica del DataFrame.
Por último, se obtienen diagramas de caja de una selección de sensores para observar
la distribución de las mediciones:
7
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Figura 8-15. Diagramas de caja de los sensores especi�cados.
Es posible notar a simple vista que todos los sensores tienen valores atípicos que no pueden
ser descartados fácilmente por su propia naturaleza, es decir, provienen de la naturaleza
intrínseca de los sensores.
En estos casos resulta ideal llevar a cabo un proceso de fusión de datos, para que de
este modo se puedan obtener valores representativos para un conjunto de sensores y que
cada medición in�uya de manera equitativa en el resultado fusionado.
Para el caso de las variables categóricas se emplea el método describe(include =
‘object’) para mostrar un resumen estadístico de las variables:
Figura 16. Resumen estadístico categórico.
En este contexto, se puede apreciar que la muestra de pacientes está conformada por 1,112
individuos, cada uno de ellos con un identi�cador único. En cuanto a la variable
health.status, se observa la presencia de dos opciones: health y disorder, siendo la primera la
8
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________que presenta mayor frecuencia en la muestra. Por último, en la variable group se evidencia
que solo se presenta un valor, especí�camente none, el cual muestra también la mayor
frecuencia en la muestra de pacientes.
Paso 4: Identificación de relaciones entre pares variables.
Uno de los propósitos fundamentales del proceso de Análisis Exploratorio de Datos es
detectar relaciones entre pares de variables con el �n de obtener evidencia que permita
realizar un análisis de componentes principales y así reducir la dimensionalidad del
conjunto de datos.
No obstante, es importante tener en cuenta que en este caso particular las variables
corresponden a mediciones tomadas por varios sensores y, por consiguiente, se espera una
fuerte correlación entre ellas. Por lo tanto, realizar un mapa de calor (heatmap) para
identi�car relaciones especí�cas puede no ser necesario, pudiéndose obviar este paso.
Adicionalmente, debido a la naturaleza de los datos, una estrategia más adecuada
para reducir la dimensionalidad podría ser la fusión de datos en lugar de un análisis de
componentes principales. En lo sucesivo, se presenta el procedimiento pertinente para llevar
a cabo la fusión de datos empleando métodos tradicionales y regresiones lineales.
Fusión de datos tradicional
En principio, se identi�can y gra�can los valores a fusionar para obtener una vista previa de
la distribución de estos valores a lo largo de todo el DataFrame:
Figura 17. Grá�ca de sensores en el DataFrame sin procesar.
Para llevar a cabo del procedimiento, es importante eliminar todas las columnas
irrelevantes para la fusión de datos, así como las variables categóricas. Para este caso
9
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
particular, el interés para reducir la dimensionalidad del DataFrame consistirá en fusionar
los datos de los sensores en bloques de 5 sensores; por un total de 14 bloques en total
considerando la presencia de 70 sensores en total.
Figura 18. Eliminación de variables irrelevantes.
Con estas variables fuera del DataFrame, ahora se lleva a cabo un proceso de fusión,
en donde en principio se seleccionan todas las columnas numéricas y se almancenan en
num_cols y, posteriormente, se dividen en grupos de 5 dentro de una lista llamada
col_groups. Esto se realiza usando una lista por comprensión, donde se recorre el rango de
longitud de num_cols con un paso de 5, y se seleccionan las columnas de cada grupo
mediante el índice de lista.
Figura 19. Generación de los bloques de 5 sensores cada uno.
10
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Con los bloques realizados, por medio de un bucle for se itera a través de cada uno de los
grupos de columnas en col_groups, utilizando la función enumerate() para obtener el índice
i de cada grupo y la variable group para almacenar el grupo actual de columnas.
Dentro del bucle, se utiliza la sintaxis de indexación para seleccionar todas las
columnas en el grupo actual, y luego se llama al métodomean() en el objeto resultante para
calcular el promedio de cada �la en el grupo. El argumento axis=1 se utiliza para indicar
que se debe calcular el promedio a lo largo de las �las (es decir, para cada �la en el grupo).
Finalmente, se utiliza la sintaxis de indexación nuevamente para asignar los valores
calculados a una nueva columna en el DataFrame Fusion, con el nombre de columna
Mean{i+1}, donde i+1 es el índice del grupo actual más uno (ya que los índices comienzan
en cero, pero queremos comenzar a contar desde 1). Este mismo proceso se lleva a cabo para
calcular de forma semejante la mediana.
Figura 20 y 21. Cálculo de la media y la mediana en cada bloque de columnas.
Figura 22. Medias obtenidas para cada uno de los 14 bloques.
11
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Figura 23. Medianas obtenidas para cada uno de los 14 bloques.
Para ejempli�car el proceso realizado, se añade a la grá�ca inicial de los sensores lo obtenido
por medio de la Media 1 y la Mediana 1.
Figura 24, 25 y 26. Comparación entre mediana, mediana y con respecto a los datos originales.
12
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Con el �n de reducir la cantidad de grá�cas a un total de una sola, para cada conjunto de 5
sensores se representarán sus medidas de tendencia central, como lo son la media y mediana.
De esta manera, se podrá comparar el resultado de la Fusión de datos con ML de manera
más e�ciente y precisa.
Figura 27. Grá�cas de las 14 medias y medianas obtenidas previamente.
Fusión de datos con ML
Para llevar a cabo este proceso consideramos nuevamente el DataFrame Fusion, donde
nuevamente realizaremos el proceso de generación de bloques. Sin embargo, en este caso se
empleará una regresión lineal usando sklearn y sus métricas para la detección de error en
cada iteración. Debido a que se trata de un método de aprendizaje supervisado, se requiere
contar con una variable dependiente y una serie de variables predictoras para el
entrenamiento del modelo lineal.
Figura 28. Construcción de los bloques de entrenamiento con un ciclo for.
13
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Entonces, se decide tomar la primera columna de cada bloque como la variable dependiente
y las siguientes 4 columnas como las variables predictoras; de modo que se tendrán un total
de 14 regresiones para cada uno de los bloques construidos. Así mismo, se tendrán 14 listas
dependientes consistentes en la primera columna de cada bloque y 14 listas predictoras con
las siguientes 4 columnas de cada bloque. Cada una de estas listas se guardarán, a su vez, en
una lista de variables predictoras y dependientes.
Previamente, se genera una lista que contiene los límites de los bloques a construir;
considerando que corresponden a los límites de cada bloque con respecto a las variables
predictoras (sin considerar a la dependiente). A continuación, el ciclo for itera a través de la
lista de límites de bloques de datos. En cada iteración del bucle, los límites del bloque se
desempaquetan en las variables start y end.
A continuación, se crea una lista X_cols que contiene las columnas
correspondientes a las variables dependientes del conjunto de datos que se utilizarán para
entrenar el modelo por cada uno de los 14 bloques. Estas variables se seleccionan utilizando
un bucle for que genera una lista de nombres de columna con el formato f_0000xx, donde
xx es un número de dos dígitos que va desde start hasta end.
Después, se crea una lista Y_cols que contiene una sola columna correspondiente al
valor dependiente de cada bloque que se utilizará para entrenar el modelo. El valor objetivo
es la columna que corresponde al número de columna start - 1. Por último, se extraen los
datos de entrenamiento para cada uno de los bloques y se almacenan en las listas de
entrenamiento respectivas.
Figura 29 y 30. Muestra del resultado obtenido para el primer bloque.
14
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Siguiendo esta misma lógica de emplear bucles, y con las listas de entrenamiento y
validación ordenadas 1:1 en los índices de ambas listas, es posible realizar un ciclo for simple
de 0 a 14, en donde se recuperará cada una de las listas de entrenamiento y validación y se
generará el modelo lineal para cada uno de ellos. El resultado de la regresión se almacena en
una lista llamada Y_estimacion_list, y en cada uno de los entrenamientos se imprimen los
coe�cientes, interceptos, MSE, RMSE y la bondadde ajuste de cada uno de los bloques
modelados.
Figura 31. Entrenamiento iterativo de cada uno de los bloques.
Figura 32 y 33. Impresión de los parámetros por cada modelo generado.
Como resultado �nal, dentro de la lista Y_estimacion_list se tienen un total de 14
modelos lineales correspondientes a los 14 bloques construidos previamente a partir de los
15
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
datos de los sensores del DataFrame original. A continuación, se gra�can cada una de las
fusiones realizadas:
Figura 34 y 35. Grá�ca de los valores fusionados en los 14 bloques.
Para integrar estos valores como columnas al DataFrame Fusion, es necesario realizar
una conversión de la lista de listas a un DataFrame que contenga a cada una de las listas
como columnas con el nombre de su respectivo bloque. Para esto, se realiza una conversión
de cada lista usando un ciclo for que itere sobre la lista y le asigne su respectivo nombre,
como se observa a continuación:
Figura 36. Bloques transformados a un DataFrame de Pandas.
16
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Por último, concatenamos los dataframes de forma horizontal; lo que nos da como
resultado la incorporación de los valores obtenidos por regresión lineal de los 14 bloques
junto a lo obtenido por métodos tradicionales.
Figura 37. DataFrame �nal con todas las fusiones de datos llevadas a cabo.
Figura 38 y 39. Fusión de datos tradicional vs regresión lineal. Se aprecia más detalle en el modelo conML.
17
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
Conclusiones
Cruz Rangel Leonardo Said:
En esta práctica vimos cómo usar la Fusión de datos para combinar la información
recolectada por múltiples sensores para crear un conjunto de datos más compacto y
signi�cativo. Al fusionar los datos, eliminamos características redundantes y combinamos
aquellas que son complementarias para crear una representación más completa del
fenómeno que se está observando. Esto mejora en gran medida la calidad de los resultados
de análisis y, al mismo tiempo, redujo la dimensionalidad de los datos.
Para el desarrollo de las actividades, utilizamos tres métodos de Fusión de datos: basado en
promedio, basado en mediana y a través de un algoritmo de aprendizaje automático. La
principal diferencia entre estos métodos está en el nivel de representación que proporciona
cada una. Los métodos “tradicionales” basados en el promedio y la mediana proporcionan
una integración más pobre de los datos al sólo ofrecer una estimación del valor central.
Además, estos métodos no consideran la complejidad y heterogeneidad de los datos, por
ejemplo, los valores atípicos afectan el promedio signi�cativamente, mientras que la
mediana no es lo su�cientemente sensible a valores extremos. Esto puede llevar a una
representación inadecuada del conjunto de datos y a una falta de precisión en el análisis.
Por otro lado, el método de Fusión de datos por medio de técnicas de aprendizaje
automático realizan una fusión de datos más so�sticada y precisa de los datos, ya que tienen
en cuenta una amplia gama de características y relaciones entre ellos, esto resulta en que
cada uno de los valores aporte por igual al resultado �nal.
Téllez González Jorge Luis:
Por medio del trabajo realizado en la práctica fue posible observar las ventajas que conlleva
realizar una fusión de datos a partir de un conjunto de datos provenientes de una fuente de
características semejantes. Debido a que llevar a cabo una reducción por medio de
componentes principales carece de sentido debido a la naturaleza de los datos obtenidos por
los sensores, resulta más ideal realizar una fusión de cada uno de ellos para obtener un único
valor representativo de cada uno de ellos.
Resulta notable señalar la ventaja que tienen los algoritmos especializados en este
aspecto, ya que los modelos generados con regresión lineal permitieron obtener una mejor
18
Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________
representación de los valores contenidos en cada uno de los sensores en sus bloques
respectivos. Por otra parte, aunque los métodos tradicionales permiten realizar una fusión
simplificada, esto puede dar como resultado que no todos los valores aporten por igual a la
fusión; vulnerando un principio clave de fairness que pueda dar como resultado sesgos al
momento de emplear los datos fusionados en algún algoritmo de modelado.
Por último, considerando los resultados exitosos para la fusión de bloques y la
obtención de un DataFrame mucho más fácil de manejar por medio de algún algoritmo de
modelado, es posible a�rmar que el objetivo principal ha sido cumplido con éxito. Por
medio de esta técnica, se cuenta con una forma e�caz de representar valores de múltiples
fuentes con respecto a una única variable, respetando el principio de fairness entre todas las
fuentes de datos.
19