también esta el paquete seaborn para hacer los boxplot.
import seaborn as sns
sns.boxplot(hearth.sex, hearth.chol, hue = hearth.target)
Aprender los conceptos clave
Todo lo que aprenderás sobre MA con Scikit-Learn
¿Cómo aprenden las máquinas?
Problemas que podemos resolver con Scikit-learn
Las matemáticas que vamos a necesitar
Iniciar un proyecto con sklearn
Configuración de nuestro entorno Python
Instalación de librerías en Python
Datasets que usaremos en el curso
Optimización de features
¿Cómo afectan nuestros features a los modelos de Machine Learning?
Introducción al PCA
Preparación de datos para PCA e IPCA
Implementación del algoritmo PCA e IPCA
Kernels y KPCA
¿Qué es la regularización y cómo aplicarla?
Implementación de Lasso y Ridge
Explicación resultado de la implementación
ElasticNet: Una técnica intermedia
Regresiones robustas
El problema de los valores atípicos
Regresiones Robustas en Scikit-learn
Preparación de datos para la regresión robusta
Implementación regresión robusta
Métodos de ensamble aplicados a clasificación
¿Qué son los métodos de ensamble?
Preparación de datos para implementar métodos de ensamble
Implementación de Bagging
Implementación de Boosting
Clustering
Estrategias de Clustering
Implementación de Batch K-Means
Implementación de Mean-Shift
Optimización paramétrica
Validación de nuestro modelo usando Cross Validation
Implementación de K-Folds Cross Validation
Optimización paramétrica
Implementación de Randomized
Bonus: Auto Machine Learning
Salida a producción
Revisión de nuestra arquitectura de código
Importar y exportar modelos con Sklearn
Creación de una API con Flask para el modelo
Cierre del curso
Material adicional para consultar
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 14
Preguntas 0
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)
¿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:
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.
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])
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.
Distorsionan Estadísticas
Impacto en Modelos
Modelos Sensibles
Errores en Interpretación
Ruido en Datos
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.
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.👀
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?