Gestión de Duplicados y Valores Atípicos
Al trabajar con conjuntos de datos del mundo real, es común encontrar registros duplicados y valores atípicos. Ambos pueden afectar significativamente el análisis de datos y el rendimiento de los modelos de aprendizaje automático. Los duplicados pueden aumentar artificialmente la importancia de ciertos patrones, lo que conduce a resultados sesgados, mientras que los valores atípicos pueden distorsionar los resúmenes estadísticos y las predicciones de los modelos. Identificar y tratar adecuadamente estos problemas es una parte fundamental de la limpieza de datos.
1234567891011121314151617import pandas as pd import seaborn as sns # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Find duplicate rows in the Titanic dataset duplicates = df.duplicated() print("Duplicate row indicators:") print(duplicates.value_counts()) # Show how many duplicates exist # Remove duplicate rows df_no_duplicates = df.drop_duplicates() print("\nNumber of rows before removing duplicates:") print(len(df)) print("Number of rows after removing duplicates:") print(len(df_no_duplicates))
Valores atípicos son puntos de datos que se desvían significativamente de la mayoría de un conjunto de datos. Los métodos comunes para detectar valores atípicos incluyen visualizaciones (como diagramas de caja), medidas estadísticas (como el Z-score) y el método del rango intercuartílico (IQR).
Z-score y rango intercuartílico (IQR) son dos medidas estadísticas comunes utilizadas para identificar valores atípicos en un conjunto de datos:
- Z-score:
- Mide cuántas desviaciones estándar se encuentra un dato respecto a la media;
- Un Z-score se calcula con la fórmula:
(valor - media) / desviación estándar; - Los datos con Z-scores mayores a 3 o menores a -3 suelen considerarse valores atípicos, ya que están lejos del valor promedio.
- Rango Intercuartílico (IQR):
- Representa el rango entre el primer cuartil (Q1, percentil 25) y el tercer cuartil (Q3, percentil 75);
- El IQR se calcula como
Q3 - Q1; - Los valores atípicos se definen típicamente como aquellos datos por debajo de
Q1 - 1.5 * IQRo por encima deQ3 + 1.5 * IQR, lo que significa que se encuentran fuera de la dispersión típica del 50% central de los datos.
Ambos métodos permiten medir cuánto se desvían los valores del rango esperado. El Z-score se centra en la distancia respecto a la media, mientras que el IQR identifica valores fuera de la porción central del conjunto de datos.
12345678910111213141516171819202122import seaborn as sns import pandas as pd # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Drop rows with missing 'fare' values df_fare = df.dropna(subset=["fare"]) # Calculate Q1 and Q3 for the 'fare' column Q1 = df_fare["fare"].quantile(0.25) Q3 = df_fare["fare"].quantile(0.75) IQR = Q3 - Q1 # Define outlier bounds lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Detect outliers in 'fare' outliers = df_fare[(df_fare["fare"] < lower_bound) | (df_fare["fare"] > upper_bound)] print("Outliers detected in 'fare' using IQR method:") print(outliers[["fare"]])
Al tratar valores atípicos, se puede optar por eliminarlos o transformarlos (por ejemplo, limitando valores extremos o aplicando una transformación log). La mejor estrategia depende del conjunto de datos y de los objetivos del análisis.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 8.33
Gestión de Duplicados y Valores Atípicos
Desliza para mostrar el menú
Al trabajar con conjuntos de datos del mundo real, es común encontrar registros duplicados y valores atípicos. Ambos pueden afectar significativamente el análisis de datos y el rendimiento de los modelos de aprendizaje automático. Los duplicados pueden aumentar artificialmente la importancia de ciertos patrones, lo que conduce a resultados sesgados, mientras que los valores atípicos pueden distorsionar los resúmenes estadísticos y las predicciones de los modelos. Identificar y tratar adecuadamente estos problemas es una parte fundamental de la limpieza de datos.
1234567891011121314151617import pandas as pd import seaborn as sns # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Find duplicate rows in the Titanic dataset duplicates = df.duplicated() print("Duplicate row indicators:") print(duplicates.value_counts()) # Show how many duplicates exist # Remove duplicate rows df_no_duplicates = df.drop_duplicates() print("\nNumber of rows before removing duplicates:") print(len(df)) print("Number of rows after removing duplicates:") print(len(df_no_duplicates))
Valores atípicos son puntos de datos que se desvían significativamente de la mayoría de un conjunto de datos. Los métodos comunes para detectar valores atípicos incluyen visualizaciones (como diagramas de caja), medidas estadísticas (como el Z-score) y el método del rango intercuartílico (IQR).
Z-score y rango intercuartílico (IQR) son dos medidas estadísticas comunes utilizadas para identificar valores atípicos en un conjunto de datos:
- Z-score:
- Mide cuántas desviaciones estándar se encuentra un dato respecto a la media;
- Un Z-score se calcula con la fórmula:
(valor - media) / desviación estándar; - Los datos con Z-scores mayores a 3 o menores a -3 suelen considerarse valores atípicos, ya que están lejos del valor promedio.
- Rango Intercuartílico (IQR):
- Representa el rango entre el primer cuartil (Q1, percentil 25) y el tercer cuartil (Q3, percentil 75);
- El IQR se calcula como
Q3 - Q1; - Los valores atípicos se definen típicamente como aquellos datos por debajo de
Q1 - 1.5 * IQRo por encima deQ3 + 1.5 * IQR, lo que significa que se encuentran fuera de la dispersión típica del 50% central de los datos.
Ambos métodos permiten medir cuánto se desvían los valores del rango esperado. El Z-score se centra en la distancia respecto a la media, mientras que el IQR identifica valores fuera de la porción central del conjunto de datos.
12345678910111213141516171819202122import seaborn as sns import pandas as pd # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Drop rows with missing 'fare' values df_fare = df.dropna(subset=["fare"]) # Calculate Q1 and Q3 for the 'fare' column Q1 = df_fare["fare"].quantile(0.25) Q3 = df_fare["fare"].quantile(0.75) IQR = Q3 - Q1 # Define outlier bounds lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Detect outliers in 'fare' outliers = df_fare[(df_fare["fare"] < lower_bound) | (df_fare["fare"] > upper_bound)] print("Outliers detected in 'fare' using IQR method:") print(outliers[["fare"]])
Al tratar valores atípicos, se puede optar por eliminarlos o transformarlos (por ejemplo, limitando valores extremos o aplicando una transformación log). La mejor estrategia depende del conjunto de datos y de los objetivos del análisis.
¡Gracias por tus comentarios!