Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Técnicas de Subamostragem | Técnicas de Amostragem para Grandes Volumes de Dados
Manipulação de Grandes Volumes de Dados com Python

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.

123456789101112131415161718192021222324
import 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())
question mark

Qual é um risco potencial do undersampling?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 5
some-alt