Descarga la aplicación para disfrutar aún más
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 1: Análisis exploratorio de datos (EDA) Fecha de entrega: 16/03/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 análisis realizado a un conjunto de datos perteneciente al sector inmobiliario de la ciudad deMelbourne, Australia. Debido al enorme proceso de urbanización que ha sufrido a lo largo de los últimos años, la demanda inmobiliaria ha sufrido un aumento notable en la ciudad. Por medio de los datos obtenidos dentro del contexto anterior se realiza un Análisis Exploratorio de Datos para llegar a una serie de conclusiones sobre la situación presentada. Introducción El Análisis Exploratorio de Datos (EDA, Exploratory Data Analysis) tiene como objetivo principal comprender y analizar los datos para descubrir patrones, tendencias, relaciones y posibles anomalías. Durante la fase de EDA se veri�ca la calidad de los datos, se detectan valores atípicos y datos faltantes, y se seleccionan las variables relevantes para el modelo de minería de datos. Todo esto para identi�car las técnicas de minería de datos más apropiadas para aplicar en el conjunto de datos. Figura 1. Proceso básico del EDA. En esta práctica, se emplea el Análisis Exploratorio de Datos para analizar la tendencia inmobiliaria en Melbourne, Australia. Debido al aumento de los precios de las unidades de 2 dormitorios en esta ciudad, se ha vuelto cada vez más difícil adquirir una a un precio razonable. Por esta razón, resulta de gran interés encontrar información relevante que permita predecir la próxima tendencia inmobiliaria enMelbourne. Para realizar la actividad anterior, se proporciona un conjunto de datos proveniente del sitio web Kaggle en formato csv el cual será leído empleando Python y la biblioteca pandas para realizar manipulaciones en el mismo, entre otras bibliotecas de visualización. 2 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Figura 2. Fuente de los datos: https://www.kaggle.com/dansbecker/melbourne-housing-snapshot Desarrollo A partir de la información encontrada se puede de�nir el siguiente diccionario de datos, el cual describe y de�ne los datos que se utilizarán para el EDA. Figura 3. Diccionario de datos. A continuación, se de�nen los pasos que se siguieron para llevar a cabo el Análisis Exploratorio de Datos: Paso 0: Importación de bibliotecas y datos. En este paso se revisó la descripción y signi�cado de cada columna de la tabla. 3 https://www.kaggle.com/dansbecker/melbourne-housing-snapshot Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Paso 1: Descripción de la estructura de los datos. a. Forma (dimensiones) del DataFrame El atributo ‘shape’ de pandas se utiliza para obtener las dimensiones de un DataFrame, devuelve una tupla de dos elementos que representan el número de �las y columnas del objeto de datos. Esto es útil para entender la estructura de un DataFrame y puede ser utilizado para realizar operaciones que requieren conocimiento sobre el número de �las o columnas. Output: b. Tipos de datos En Pandas, ‘dtypes’ se utiliza para obtener los tipos de datos de cada columna de un DataFrame, devuelve un objeto ‘Series’ con el nombre de cada columna como índice y el tipo de datos de esa columna como valor. Output: 4 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Es importante destacar que el conjunto de datos contiene tanto variables numéricas (�oat64) como categóricas (object), lo que implica la necesidad de aplicar distintas técnicas de visualización de datos. En particular, las variables categóricas se suelen representar mediante grá�cos de barras o diagramas de sectores, mientras que las variables numéricas se representan a través de histogramas o grá�cos de dispersión. Paso 2: Identi�cación de datos faltantes. Detectar datos faltantes en un dataset es esencial, ya que la ausencia de información puede tener un impacto signi�cativo en los resultados del análisis. Si los datos faltantes no se detectan, los análisis pueden producir resultados incorrectos o engañosos, lo que puede sesgar los resultados de manera negativa. Por lo tanto, es crucial detectar los datos faltantes para reducir cualquier sesgo en los resultados obtenidos. En Pandas se puede usar la función ‘isnull.sum( )’ para detectar la suma de todos los valores nulos en cada variable. Output: 5 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ También se puede usar ‘info( )’ para obtener el tipo de dato de cada columna, la cantidad de valores no nulos y la cantidad de memoria utilizada por el DataFrame. Output: Después de identi�car la cantidad de valores nulos en un DataFrame, es importante tomar medidas para manejarlos de manera efectiva. Las decisiones que se tomen dependerán del tipo de datos y del análisis que se vaya a realizar. Una de las opciones para manejar los valores nulos es la eliminación directa de las �las o columnas que contienen datos faltantes, pero esto puede generar una reducción signi�cativa en el tamaño del DataFrame y, por lo tanto, en la cantidad de información disponible para el análisis. Es importante evaluar cuidadosamente el impacto de esta opción antes de tomar una decisión. Otra solución para manejar los valores nulos es completarlos con diferentes técnicas de imputación, como el uso de la media, la mediana o la moda. Estas técnicas pueden ayudar a reducir la cantidad de valores nulos, pero también pueden introducir ruido o sesgo en los 6 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ datos, especialmente si los valores faltantes representan una proporción signi�cativa del conjunto de datos. La toma de decisiones informadas para manejar los valores nulos de manera adecuada es una responsabilidad compartida entre el analista de datos y las partes interesadas en el proyecto. Es crucial considerar los impactos que esto pueda tener en el tamaño y calidad de los datos, así como en la precisión del análisis. Más adelante explicaremos qué decisión tomamos respecto a los datos faltantes y en qué fundamentamos nuestra elección. Paso 3: Detección de valores atípicos. Una forma de detectar valores atípicos es a través de la visualización de los datos y el análisis estadístico, esto nos permite resumir los datos y tener una idea general de su distribución, con distribución se hace referencia a cómo se comportan los valores en una variable o con qué frecuencia ocurren. En el caso de las variables numéricas, la distribución se puede observar mediante histogramas o grá�cos de densidad, los cuales permiten ver cuántas veces aparecen grupos de números en una columna. Por otro lado, para las variables categóricas, la distribución se puede observar a través de grá�cos de barras o diagramas de sectores, los cuales muestran las clases de cada columna y su frecuencia. a. Variables numéricas Existen 3 formas en las que se pueden identi�car datos atípicos en variables numéricas, a continuación se muestran cada una de ellas. i. Distribución de variables numéricas Se utilizarán histogramas para agrupar los números en rangos, en donde la altura representa cuántos números caen en ese rango. En Pandas se emplea ‘hist( )’ con los parámetros �gsize y xrot para trazar el histograma, aumentar el tamaño de la cuadrículay rotar el eje x 45 grados respectivamente. 7 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Output: Al observar las grá�cas podemos identi�car posibles valores atípicos y límites que no tienen sentido. Por ejemplo, en BuildingArea, Landsize y Price existen valores sesgados a la izquierda, y en el histograma de YearBuilt se aprecia un sesgo hacia la derecha además de que uno de sus límites no parece tener sentido al comenzar en 1200. ii. Resumen estadístico Para obtener un resumen estadístico de las variables numéricas se usa la función ‘describe( )’ de Pandas. 8 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Output: Dicho resumen incluye un recuento de la media, desviación, valor mínimo, valor máximo y percentiles de 25%, 50% y 75%. Estos datos son útiles para con�rmar lo visualizado en los histogramas, como que el valor mínimo en el año de construcción de una propiedad es 1196, un dato que muy probablemente sea incorrecto. iii. Diagramas de caja Para este tipo de grá�cas se utiliza la biblioteca ‘Seaborn’. Output: 9 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Mediante el uso de diagramas de caja, es posible identi�car de manera sencilla aquellos valores que se encuentran por fuera del rango "común" de los valores, lo que sugiere la presencia de valores atípicos o excepcionales en los datos. b. Variables categóricas Para las variables categóricas, utilizaremos grá�cos de barras para visualizar la frecuencia de cada categoría y obtener una idea general de su distribución. Posteriormente, complementaremos esta información con un análisis estadístico adecuado para comprender mejor la relación entre las variables y poder extraer conclusiones más precisas. Output: En esta tabla se muestra el recuento de los valores de cada variable, el número de clases únicas, la clase más frecuente y con qué frecuencia ocurre esa clase en el DataFrame. Una observación casi inmediata es que algunas variables tienen demasiadas clases únicas, como Address, lo cual tiene sentido porque cada propiedad tiene una dirección diferente. 10 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Por otro lado, existen variables que tienen menos de 10 clases únicas, lo que hace necesario gra�car dichas variables para observar su comportamiento. Para hacer las grá�cas de barras se utiliza ‘Seaborn’, donde cada barra representa una clase. Se crea un For para el conteo y distribución de las clases, con la sentencia select_dtypes(include = ‘object’) se selecciona las columnas categóricas con sus valores y las muestra, además se incluye un if para elegir solo las columnas con 10 o menos clases usando nunique( ) < 10. Output: De estas grá�cas podemos concluir que la mayoría de ellas son de tipo h (casa, cabaña, villa, terraza), que son propiedades vendidas y que regularmente se encuentra ubicada en SouthernMetropolitan. Dado el análisis anterior, no se identi�caron variables categóricas atípicas. 11 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Paso 4: Identi�cación de relaciones entre pares de variables. Una matriz de correlaciones es útil para analizar la relación o qué tan dependientes son unas variables numéricas de otras. Para hacer esto se emplea la función ‘corr( )’. Output: Sin embargo, esta tabla es muy poco intuitiva y didáctica al momento de analizarla, por lo que es mejor hacer un mapa de calor mediante la biblioteca ‘Seaborn’. Output: 12 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ De esta forma es más fácil identi�car la correlación entre pares de variables. Una correlación es un valor entre -1 y 1 que equivale a qué tan cerca se mueven simultáneamente los valores de dos variables. Una correlación positiva signi�ca que a medida que una característica aumenta, la otra también aumenta. Una correlación negativa signi�ca que a medida que una característica disminuye, la otra también disminuye. Las correlaciones cercanas a 0 indican una relación débil, mientras que las más cercanas a -1 o 1 signi�can una relación fuerte. Del heatmap podemos identi�car sólo una correlación fuerte de interés, y esta ocurre entre las variables Rooms y Bedroom2, lo cual es de esperarse por ser la misma variable de fuentes diferentes. Paso 5: Preparación de los datos. Una vez identi�cados aquellos registros con valores atípicos e inconsistencias, a continuación se realiza un proceso de limpieza de los datos, en donde se eliminarán por completo aquellos registros que contengan valores nulos y, además, que contengan datos incongruentes y que, en consecuencia, puedan añadir un sesgo que altere la información obtenida a partir del análisis exploratorio. A través de los pasos anteriores se identi�caron los siguientes registros con valores nulos en el dataset: 13 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Figura 4. Conteo total de registros con valores nulos. Adicionalmente, se presentaron 3 casos de inconsistencias en los datos de las columnas Landsize, BuildingArea, Price y YearBuilt donde existen ciertos registros que sobrepasan por mucho los valores de otros. Figura 5. Valores inconsistentes re�ejados en los histogramas. Con lo anterior en mente, se procede a iniciar la eliminación de los registros con valores nulos utilizando el método dropna y delimitando un subconjunto de forma que se eliminen aquellos registros que tengan un nulo en Car, BuildingArea, YearBuilt y CouncilArea. Este procedimiento se realiza con el �n de quedarnos con registros lo más completos posibles en todas las columnas del dataset. La opción any indica que, si en cualquier registro se encuentra por lo menos un nulo en las columnas seleccionadas, se descarte por completo el registro. Figura 6. Eliminación de nulos en el dataset. 14 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Figura 7. Veri�cación de ausencia de nulos con isnull().sum(). Como se observa, de esta manera nuestro dataset queda depurado de aquellos registros con datos faltantes. De este modo, el total de registros en el mismo se reduce a un total de 6196 entradas. Hecho esto, ahora se realiza la depuración de los valores atípicos en Landsize, BuildingArea, Car y YearBuilt como se observa a continuación. Figura 8. Eliminación de elementos atípicos. Para lograr lo anterior se requiere el uso de condicionales que especi�quen qué valores se desean conservar en el dataset. En principio, se usa el método loc para seleccionar y mantener aquellos registros con un valor menor a 1270.0 en Landsize, 2e6 en Price y 250.0 en BuildingArea. Para el caso del año, se muestra otra forma de realizar lo anterior estableciendo una condición simple para los registros del conjunto de datos. Realizado lo anterior, se comprueba que efectivamente se han eliminado esos registros anómalos y como resultado tenemos diagramas de caja limpios y sin puntos aislados: Figura 9. Diagramas de caja con los registros anómalos eliminados. Es importante señalar que el enfoque considerado para la depuración consistió en eliminar por completo aquellos valores aislados presentes en los diagramas de caja con el �n 15 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ de obtener losregistros más representativos del caso de estudio con el �n de que puedan brindarnos un panorama general de las propiedades de la ciudad sin considerar propiedades con características muy especí�cas que puedan alterar la percepción del mercado (como las mansiones o terrenos). Para los propósitos de la práctica, se considera que la depuración realizada es adecuada, sin embargo, en un caso de uso real resultaría necesario consultar con el proveedor de los datos si aquellos registros con valores extremos corresponden a la realidad y se ajustan a las necesidades del proyecto realizado; veri�cando si existen restricciones especí�cas que involucren a aquellos datos extremos. Figura 10. Tamaño �nal del dataset. Conclusiones Por medio del análisis exploratorio de datos realizado es posible llegar a las siguientes conclusiones con respecto al mercado inmobiliario de Melbourne empleando los datos depurados previamente: 16 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ ● Una propiedad media de Melbourne tiene aproximadamente 3 habitaciones, un precio en promedio de 9,103,23.6 USD, una extensión de 354.48, una área de 121.59 y un año de construcción de 1964. Figura 11. Descripción estadística de los datos depurados. ● La mayor cantidad de propiedades son del tipo h (casa, cabaña, villa, semi, terraza), seguidas del tipo u (unidad, dúplex) y t (casa adosada). La mayor parte de ellas son propiedades vendidas S y las mayores concentraciones se encuentran en las zonas metropolitanas del norte, sur y el oeste de la ciudad. Figura 12. Distribución de propiedades con base en su tipo, ● El análisis de correlaciones empleando un heatmap arroja una alta correlación entre Rooms Y Bedroom2 (lo cual tiene sentido considerando que representan al mismo valor pero de distinta fuente). Por otra parte, se encuentran dos correlaciones medias-altas entre Rooms, Bedroom2 y BuildingArea (0.74 y 0.72). También se encuentran dos correlaciones medias adicionales: entre BuildingArea y los valores Price y Bathroom. 17 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Figura 13. Distribución de propiedades con base en su tipo, La primera conclusión posible a obtener es que el área de construcción de las propiedades guarda una relación relativamente alta con el número de habitaciones presentes y en menor medida, los baños. Así mismo, el área de la construcción puede determinar a un nivel moderado el precio �nal de la propiedad. ● Se detectaron 239 registros que cuentan con valores de precio superiores a 2,000,000 USD; los cuales fueron depurados del dataset �nal para obtener una muestra más representativa de la mayor parte de propiedades de Melbourne. Sin embargo, existe alta probabilidad de que estos valores sean reales; lo que podría indicar una tendencia latente de in�ación desproporcionada de los precios del mercado inmobiliario. Esto se encuentra acorde a la percepción general de que encontrar una vivienda accesible se vuelve más complicado. Figura 14. Detección de propiedades con precios demasiado in�ados. 18 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ ● El problema central aborda especí�camente el caso de las viviendas de 2 dormitorios por lo menos. Si usamos el método loc para seleccionar aquellos registros con 2 o menos dormitorios y aplicamos una media sobre todos ellos, lo anterior arroja un valor promedio de 674,547 USD; lo cual al cambio en moneda mexicana resulta en un total de 12,378,207.27 MXN. Por tanto, resulta evidente que la premisa central es cierta y el mercado inmobiliario de Melbourne se encuentra en una alza de precios desmedida que impide a muchas personas adquirir una vivienda a un precio razonable y acorde a sus ingresos (los cuales no crecen al mismo nivel que el de las viviendas). Figura 15. Precio promedio de una vivienda de 2 habitaciones. Cruz Rangel Leonardo Said: Una de las metodologías más ampliamente utilizadas en el ámbito del minado de datos es la que se divide en seis etapas principales: análisis del problema, análisis de los datos, preparación de los datos, modelado, evaluación e implementación. La adopción de una metodología como esta tiene varios propósitos, siendo uno de los más importantes el de mitigar el impacto de los principales problemas que pueden presentarse en la minería de datos, como son la privacidad, la presencia de datos incompletos y la existencia de información irrelevante. Dentro de la etapa de análisis de datos, una herramienta fundamental es el Análisis Exploratorio de Datos (EDA), que nos permite identi�car y eliminar datos faltantes e irrelevantes del conjunto de datos con el que estemos trabajando. Esto contribuye signi�cativamente a reducir el sesgo en los resultados obtenidos y a garantizar la calidad de los mismos. Además, el EDA también puede ayudar a detectar patrones interesantes en los datos, lo que puede resultar útil para la identi�cación de oportunidades de negocio o para la toma de decisiones estratégicas. 19 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Téllez González Jorge Luis: La experiencia obtenida con la práctica realizada nos ha permitido aprender a generar inferencias a partir de la información presentada por medio de grá�cas y análisis correlativos. Así mismo, se ha aprendido a identi�car valores atípicos y/o nulos dentro de un dataset. Uno de los mayores aprendizajes obtenidos a través del desarrollo de la práctica fue observar que, a través de un conjunto de datos que en primera instancia no parece mostrar mucha información, con el debido procedimiento se puede transformar en un cúmulo importante de información que permite comprender una determinada situación con un cierto nivel de con�abilidad; en dependencia directa con la calidad de los datos recopilados. Con lo anterior, el equipo cuenta con las habilidades necesarias para poder realizar análisis exploratorios por nuestra cuenta con el objetivo de iniciar el desarrollo de nuestro caso de estudio para el curso y ha adquirido las habilidades necesarias para llevar a cabo un análisis inicial de una situación presentada en un conjunto de datos para comprenderla y obtener insights iniciales. Referencias Danb. (2018). Melbourne Housing Snapshot. Kaggle. Recuperado el 12 de marzo de 2023 desde: https://normas-apa.org/referencias/citar-pagina-web/ w3resource. (2022). Pandas DataFrame: dropna() function. Recuperado el 12 de marzo de 2023 desde: https://www.w3resource.com/pandas/dataframe/dataframe-dropna.php NNK. (2022). Pandas loc[] Multiple Conditions. Recuperado el 12 de marzo de 2023 desde: https://sparkbyexamples.com/pandas/pandas-loc-multiple-conditions/ 20 https://normas-apa.org/referencias/citar-pagina-web/ https://www.w3resource.com/pandas/dataframe/dataframe-dropna.php https://sparkbyexamples.com/pandas/pandas-loc-multiple-conditions/
Compartir