Técnicas de Subamostragem
Deslize para mostrar o menu
Ao lidar com conjuntos de dados grandes e desbalanceados, é comum encontrar situações em que uma classe (classe majoritária) possui muito mais exemplos do que outra (classe minoritária). Esse desbalanceamento pode dificultar que os modelos aprendam padrões relevantes sobre a classe minoritária, resultando em baixo desempenho preditivo. Undersampling é uma técnica utilizada para resolver esse problema, reduzindo o número de amostras da classe majoritária para que o conjunto de dados fique mais equilibrado.
O undersampling deve ser considerado quando o conjunto de dados é grande demais para processamento prático ou quando a classe majoritária domina a ponto de o modelo ignorar a classe minoritária. No entanto, o undersampling é mais adequado quando se tem um conjunto de dados muito grande e é possível perder algumas amostras da classe majoritária sem comprometer informações importantes. É menos indicado quando o conjunto de dados já é pequeno ou quando a classe majoritária contém exemplos raros, porém 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())
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo