¡Hola, amigos! Hoy vamos a programar un sistema de detección de anomalías en Python, y lo vamos a hacer con un toque de humor. ¡Vamos a divertirnos mientras aprendemos!
Primero, vamos a imaginar que somos detectives de datos, y nuestra misión es encontrar anomalías en un conjunto de datos sobre UIUX. ¿Qué tal si nuestros datos son las puntuaciones de satisfacción del usuario? Si un usuario está muy feliz o muy enojado, eso podría ser una anomalía.
### Paso 1: Importar las librerías necesarias
« `python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
« `
### Paso 2: Crear nuestros datos de prueba
Vamos a crear un DataFrame con algunas puntuaciones de satisfacción del usuario. Vamos a añadir algunas anomalías para que nuestro sistema tenga algo que encontrar.
« `python
np.random.seed(42) # Para que los resultados sean reproducibles
data = np.random.randint(1, 10, size=(100, 1)) # 100 puntuaciones de satisfacción
# Añadir algunas anomalías
data[50] = 15 # Un usuario super feliz
data[75] = 0 # Un usuario super enojado
df = pd.DataFrame(data, columns=[‘Satisfaction’])
« `
### Paso 3: Visualizar los datos
Antes de empezar a buscar anomalías, vamos a echar un vistazo a nuestros datos.
« `python
plt.hist(df[‘Satisfaction’], bins=10, edgecolor=’black’)
plt.title(‘Distribución de Satisfacción del Usuario’)
plt.xlabel(‘Puntuación de Satisfacción’)
plt.ylabel(‘Frecuencia’)
plt.show()
« `
### Paso 4: Entrenar nuestro modelo de detección de anomalías
Vamos a usar un bosque de aislamiento (Isolation Forest) para detectar las anomalías. ¡Es como tener un grupo de detectives que trabajan juntos para encontrar los casos extraños!
« `python
model = IsolationForest(contamination=0.05) # Supongamos que el 5% de los datos son anomalías
df[‘anomalia’] = model.fit_predict(df[[‘Satisfaction’]])
« `
### Paso 5: Identificar y visualizar las anomalías
Vamos a marcar las anomalías en nuestro histograma y ver si nuestro modelo ha encontrado algo interesante.
« `python
plt.hist(df[‘Satisfaction’], bins=10, edgecolor=’black’)
plt.scatter(df[df[‘anomalia’] == -1][‘Satisfaction’], [0]len(df[df[‘anomalia’] == -1]), color=’red’, s=50, label=’Anomalías’)
plt.title(‘Distribución de Satisfacción del Usuario con Anomalías’)
plt.xlabel(‘Puntuación de Satisfacción’)
plt.ylabel(‘Frecuencia’)
plt.legend()
plt.show()
« `
### Paso 6: ¡Fiesta de datos!
¡Ya lo hemos hecho! Hemos creado un sistema de detección de anomalías en Python. ¡Ahora podemos celebrar con un poco de música y bocadillos!
Espero que hayan disfrutado de esta aventura de detección de anomalías. ¡Hasta la próxima, amigos! ¡Y recuerden, siempre busquen las anomalías en sus datos, porque a veces las respuestas más interesantes están en los lugares más inesperados! ¡Chao!