Aprender los conceptos clave

1

Todo lo que aprenderás sobre MA con Scikit-Learn

2

¿Cómo aprenden las máquinas?

3

Problemas que podemos resolver con Scikit-learn

4

Las matemáticas que vamos a necesitar

Iniciar un proyecto con sklearn

5

Configuración de nuestro entorno Python

6

Instalación de librerías en Python

7

Datasets que usaremos en el curso

Optimización de features

8

¿Cómo afectan nuestros features a los modelos de Machine Learning?

9

Introducción al PCA

10

Preparación de datos para PCA e IPCA

11

Implementación del algoritmo PCA e IPCA

12

Kernels y KPCA

13

¿Qué es la regularización y cómo aplicarla?

14

Implementación de Lasso y Ridge

15

Explicación resultado de la implementación

16

ElasticNet: Una técnica intermedia

Regresiones robustas

17

El problema de los valores atípicos

18

Regresiones Robustas en Scikit-learn

19

Preparación de datos para la regresión robusta

20

Implementación regresión robusta

Métodos de ensamble aplicados a clasificación

21

¿Qué son los métodos de ensamble?

22

Preparación de datos para implementar métodos de ensamble

23

Implementación de Bagging

24

Implementación de Boosting

Clustering

25

Estrategias de Clustering

26

Implementación de Batch K-Means

27

Implementación de Mean-Shift

Optimización paramétrica

28

Validación de nuestro modelo usando Cross Validation

29

Implementación de K-Folds Cross Validation

30

Optimización paramétrica

31

Implementación de Randomized

32

Bonus: Auto Machine Learning

Salida a producción

33

Revisión de nuestra arquitectura de código

34

Importar y exportar modelos con Sklearn

35

Creación de una API con Flask para el modelo

36

Cierre del curso

37

Material adicional para consultar

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
19 Hrs
29 Min
40 Seg

El problema de los valores atípicos

17/37
Resources

What are outliers?

In the exciting field of data science, we are often faced with the challenge of dealing with outliers. These are data that do not behave according to the general pattern of the data set, i.e., they are exceptional and do not fit in with the others. These values can arise for a variety of reasons: from errors in measurement and data loading, to model variabilities or even novel data that we have not contemplated. Detecting and identifying these points is essential to avoid model biases and improve prediction accuracy.

Why are outliers problematic?

Ignoring outliers could bias the model and lead to significant errors in future predictions. However, sometimes they do not represent an error, but rather reveal aspects not considered in the model, such as missing variables. They also play a crucial role in the early detection of model failures, helping to improve the performance and accuracy of predictions.

How to identify outliers?

There are mainly two methods to identify outliers: the statistical-mathematical method and the graphical method. Both are effective, but they differ in terms of ease of application and speed.

What is the statistical method?

  1. Calculation of the Z-score: This indicates how far a point is from the mean. It is calculated by measuring the distance in terms of standard deviations from the mean to a point.
  2. Clustering techniques: Uses methods such as DBSCAN to reveal which data points are farther apart and do not belong to the main groups.
  3. Interquartile range formula:
    • A point is considered an outlier if it is below the first quartile minus 1.5 times the interquartile range (IQR) or above the third quartile plus 1.5 times the IQR.

How to use the graphical method?

Box plots are a valuable tool for visualizing the distribution of data and detecting outliers. The median is represented by a line inside the box, which divides the data by 50%. The edges of the box mark the first and third quartiles, comprising 25% and 75% of the data, respectively. Beyond these, the "whiskers" delineate the criteria for outliers, using the same logic as the interquartile range.

How to deal with outliers?

Combining different preprocessing techniques allows you to handle outliers efficiently. However, it is especially useful to use classification and regression models such as those offered by the sklearn library. These models can address the outlier problem automatically, without the need for additional steps, reducing the risk of biasing predictions.

It is essential that you master these techniques and tools in your development as a data scientist. Remember, outliers can not only be obstacles, but also allies in the continuous improvement of your models. Keep exploring and learning, the world of data is vast and exciting!

Contributions 14

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

también esta el paquete seaborn para hacer los boxplot.

import seaborn as sns
sns.boxplot(hearth.sex, hearth.chol, hue = hearth.target)

Si quieren visualizar rápidamente para su dataset los datos atípicos. Pandas permite hacer con facilidad. Dejo el código para el caso del dataset hearth. Claramente se debe entender que para las variables indicadoras no tendría mucho sentido considerarlo.

num_features = hearth[['age', 'trestbps', 'thalach', 'oldpeak']]
num_features

plt.figure(figsize=(10,7))
num_features.boxplot(grid=False)

Clase 17: El problema de los valores atípicos

  • Un valor atípico es cualquier medición que se encuentre por fuera del comportamiento general de una muestra de datos.
  • Pueden indicar variabilidad, errores de medición o novedades.

¿Por qué son problemáticos?

1.- Pueden generar sesgos importantes en los modelos de ML.

2.- A veces contienen información relevante sobre la naturaleza de los datos.

3.- Detección temprana de fallos.

¿Cómo identificarlos?

A través de métodos estadísticos:

  1. Z - Score: Mide la distancia (en desviaciones estándar) de un punto dado a la media.
  2. Técnicas de clustering como DBSCAN.
  3. Si q< Q1-1.5IQR ó q > Q3+1.5IQR

El grafico de caja de una buena forma para detectar los valores atípicos en un set de datos, a su vez también es aconsejable (dependiendo del caso) eliminarlos para que nuestro análisis sea lo más confiable posible.

Me explicó, si sabemos que el promedio de autos que cruza una calle x de cuadra a cuadra es de aproximadamente de 10 segundos, un auto que tenga un tiempo de 100 segundo o de 10 minutos, claramente nos está indicando que tenemos un problema con ese dato.

Los datos atipicos, son muy crueles con los modelos lieneales, o que se midan con distancia. En solociones tipo tree, no le importa tanto los atipicos, ni los valores null. Los arboles son mero amor

Este es el mejor profesor de platzi hasta ahora.

Un valor atípico, también conocido como valor extremo u atípico, es una observación en un conjunto de datos que difiere significativamente de los demás valores en términos de magnitud o distribución. Los valores atípicos pueden ser valores excepcionalmente altos o bajos en comparación con los demás puntos de datos en el conjunto. Son problemáticos porque pueden distorsionar las estadísticas y los resultados de análisis, así como influir negativamente en la precisión y la interpretación de los modelos de machine learning y estadísticas.

Los valores atípicos pueden ser problemáticos por varias razones:

  • Distorsionan Estadísticas

  • Impacto en Modelos

  • Modelos Sensibles

  • Errores en Interpretación

  • Ruido en Datos

Algunos métodos estadísticos comunes para identificar valores atípicos son:

  • Z-Score

  • DBSCAN (Agrupación espacial basada en densidad de aplicaciones con ruido) :

  • Criterio de Tukey
    Este criterio se basa en el rango intercuartil (IQR). Si un punto de datos está por debajo de Q1 - 1.5 * IQR o por encima de Q3 + 1.5 * IQR, se considera un valor atípico.

La elección del método depende del contexto y la naturaleza de los datos. Es importante utilizar múltiples métodos y herramientas visuales para identificar y confirmar la presencia de valores atípicos antes de tomar decisiones sobre su tratamiento.

Qué onda 👋, les comparto mi análisis. * cluster map (Pearson) con todas las columnas menos rank: ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-07-01%20a%20la%28s%29%2011.39.03a.m.-718a23b6-2fc7-4566-9bf4-5c749066b078.jpg) * histograma + iqr, indicando las medias y las medianas de las 6 columnas con mayor correlación: ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-07-01%20a%20la%28s%29%2011.38.48a.m.-b32f7e59-df47-451b-af28-77fdc655c6f9.jpg) El dataset que estuve utilizando es del 2023.

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) es un algoritmo de agrupamiento que también se puede utilizar para identificar datos atípicos. A diferencia de los Z-scores, DBSCAN se basa en la densidad de los puntos de datos en el espacio para identificar áreas densas de puntos y puntos aislados que se considerarán atípicos.

Aquí tienes un ejemplo para ilustrar el uso de DBSCAN en la identificación de datos atípicos:

from sklearn.cluster import DBSCAN
import numpy as np

# Datos de ejemplo (coordenadas x, y)
data = np.array([[1, 1], [1, 2], [2, 2], [8, 7], [8, 8], [25, 80]])

# Crear objeto DBSCAN y ajustar el modelo
dbscan = DBSCAN(eps=3, min_samples=2)
dbscan.fit(data)

# Obtener las etiquetas de los clusters y los valores únicos
labels = dbscan.labels_
unique_labels = np.unique(labels)

# Identificar los índices de los datos atípicos (etiqueta -1)
outlier_indices = np.where(labels == -1)[0]

# Imprimir los resultados
print("Etiquetas de los clusters:", labels)
print("Datos atípicos:", data[outlier_indices])

En este ejemplo, los datos de ejemplo son coordenadas bidimensionales (x, y) que representan puntos en un espacio. Utilizamos DBSCAN con un valor de eps=3 para especificar la distancia máxima entre dos puntos para considerarlos vecinos y min_samples=2 para especificar el número mínimo de puntos necesarios para formar un clúster.

El algoritmo DBSCAN asigna etiquetas a los puntos de datos, donde -1 representa los datos atípicos. Utilizamos np.where para identificar los índices de los datos atípicos basados en la etiqueta -1 y luego los extraemos de los datos originales.

Al ejecutar el código, obtendrás las etiquetas de los clusters asignadas por DBSCAN y los datos atípicos identificados.

Recuerda que los resultados de DBSCAN pueden depender de los parámetros eps y min_samples, por lo que es importante ajustarlos adecuadamente para tu conjunto de datos específico.

n_cols = len(dt_heart.columns)
plt.figure(figsize=(10,50))
for i, col in enumerate(dt_heart.columns):
    
    plt.subplot(n_cols,2,2*i+1)
    sns.boxplot(data=dt_heart[col])
    plt.subplot(n_cols,2,2*i+2)
    sns.violinplot(data=dt_heart[col])
Use este código para mostrar el **IQR**: ```python import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # Generar un conjunto de datos con más variabilidad y outliers np.random.seed(42) valores = np.random.normal(loc=50, scale=10, size=100) # Generar datos normales outliers = np.array([10, 120, 5, 150, 100]) # Algunos outliers artificiales data = np.concatenate([valores, outliers]) # Crear el DataFrame df = pd.DataFrame(data, columns=['valores']) # Crear el Boxplot horizontal y cambiar el color a verde esmeralda plt.figure(figsize=(10, 6)) sns.boxplot(data=df, x='valores', color='mediumseagreen') # Título y etiquetas plt.title('Detección de Outliers con Boxplot (IQR)', fontsize=14) plt.xlabel('Valores') # Mostrar el gráfico plt.show() ```![](https://static.platzi.com/media/user_upload/image-ba748fb5-4361-4e15-9eac-7217a2c75076.jpg)
Tengo una duda, realizando el box plot con la columna "family" no logro ubicar las lineas con las ecuaciones * q1 -1.5\*iqr * q3 +1.5\*iqr ![](https://static.platzi.com/media/user_upload/box-9316080c-b53d-4c1a-9fd7-d830ed5bcd30.jpg) ![](https://static.platzi.com/media/user_upload/code-49285361-13b6-45d2-a04c-4d208cdd6339.jpg)

Esta sección es muy importante, muchas veces no los iedentificamos y trabajamos incluyendolos, los cuales nos genera información falsa

🤓Hice un video y lo cargue en youtube donde pueden ver el proceso de eliminación de valores atípicos, con la metodología que el profe explica en el video.👀

https://www.youtube.com/watch?v=gc1y-r6hzG4&t=2626s