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

Técnicas de Oversampling

Deslize para mostrar o menu

Oversampling é uma técnica utilizada para lidar com conjuntos de dados desbalanceados, especialmente quando uma classe (a classe minoritária) possui significativamente menos amostras do que as outras. Ao aumentar a representação da classe minoritária, facilita-se o aprendizado dos modelos de machine learning a partir de todas as classes, o que geralmente resulta em melhor desempenho preditivo e resultados mais justos. O benefício mais comum do oversampling é equilibrar a distribuição das classes, permitindo que os algoritmos evitem o viés em relação à classe majoritária. No entanto, o oversampling também pode trazer algumas desvantagens. Se você simplesmente duplicar amostras existentes, seu modelo pode sofrer overfitting, aprendendo padrões muito específicos dos dados duplicados e falhando em generalizar para novos dados. Além disso, o oversampling pode aumentar o tamanho do conjunto de dados, o que pode levar a tempos de treinamento mais longos e maior demanda computacional.

1234567891011121314151617181920212223242526272829303132
import pandas as pd # Create a sample DataFrame with an imbalanced target data = { "feature1": [1, 2, 3, 4, 5, 6, 7], "target": ["A", "A", "A", "A", "B", "B", "B"] } df = pd.DataFrame(data) # Count original class distribution print("Original class distribution:") print(df["target"].value_counts()) # Oversample minority class "B" to match majority class "A" majority_count = df["target"].value_counts().max() minority_class = df["target"].value_counts().idxmin() # Get all minority class rows minority_rows = df[df["target"] == minority_class] # Calculate how many samples to add samples_to_add = majority_count - len(minority_rows) # Sample with replacement from minority class oversampled_minority = minority_rows.sample(n=samples_to_add, replace=True, random_state=42) # Concatenate original data with new samples df_oversampled = pd.concat([df, oversampled_minority], ignore_index=True) # Show new class distribution print("\nClass distribution after oversampling:") print(df_oversampled["target"].value_counts())
question mark

Qual é o principal objetivo do oversampling?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

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 3
some-alt