Técnicas de Submuestreo
Desliza para mostrar el menú
Al trabajar con conjuntos de datos grandes que están desbalanceados, a menudo se presentan situaciones en las que una clase (la clase mayoritaria) supera en número significativamente a otra (la clase minoritaria). Este desbalance puede dificultar que los modelos aprendan patrones significativos sobre la clase minoritaria, lo que conduce a un bajo rendimiento predictivo. El submuestreo es una técnica utilizada para abordar este problema, reduciendo la cantidad de muestras en la clase mayoritaria para que el conjunto de datos sea más equilibrado.
Se debe considerar el submuestreo cuando el conjunto de datos es demasiado grande para un procesamiento práctico o cuando la clase mayoritaria domina hasta tal punto que el modelo ignora la clase minoritaria. Sin embargo, el submuestreo es más adecuado cuando se dispone de un conjunto de datos muy grande y se puede prescindir de algunas muestras de la clase mayoritaria sin perder información importante. Es menos recomendable cuando el conjunto de datos ya es pequeño o la clase mayoritaria contiene ejemplos raros pero relevantes.
123456789101112131415161718192021222324import pandas as pd # Create a sample imbalanced dataset data = { "feature": range(20), "class": ["majority"] * 16 + ["minority"] * 4 } df = pd.DataFrame(data) # Count the number of samples in each class class_counts = df["class"].value_counts() minority_count = class_counts["minority"] # Randomly sample from the majority class to match the minority class count majority_sample = df[df["class"] == "majority"].sample(n=minority_count, random_state=42) minority_sample = df[df["class"] == "minority"] # Combine samples to get a balanced dataset balanced_df = pd.concat([majority_sample, minority_sample]) print("Original class distribution:") print(df["class"].value_counts()) print("\nBalanced class distribution after undersampling:") print(balanced_df["class"].value_counts())
¡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