Preparação de dados

Machine Learning de ponta a ponta

Joshua Stapleton

Machine Learning Engineer

Etapas de preparação de dados

O dataset tem:

  • Valores ausentes
  • Outliers
  • Desbalanceamentos
  • Colunas vazias
  • Duplicatas

Preparação de dados:

  • Baseada nos insights do EDA
  • Crítica para o desempenho do modelo adiante
Machine Learning de ponta a ponta

Valores nulos/vazios

  • Remova linhas/colunas ausentes ou esparsas
  • Nulos podem quebrar o modelo
  • Use df.drop() para colunas
  • Use df.dropna(how='all') para linhas
# count missing values
print(df['oldpeak'].isnull().sum())

# Drop empty column(s) and row(s)
columns_dropped = heart_disease_df.drop(['oldpeak'], axis='columns')
rows_and_columns_dropped = columns_dropped.dropna(how='all')
Machine Learning de ponta a ponta

Tratando valores nulos/vazios

  • Limpeza/remoção depende do EDA

 

  • Se a coluna tem muitos nulos:
    • Remova a coluna

 

  • Se o alvo tem nulos:
    • Remova linhas com alvo ausente
    • Ou trate como categoria separada
Machine Learning de ponta a ponta

Imputação

O que fazer quando há poucos valores ausentes?

  • Imputação:

    • Preencha os ausentes com substitutos
  • Estratégias

    • Preencher com média ou mediana
    • Usar constante ou valor anterior
# Calculate the mean cholestrol value 
mean_value = heart_disease_df['chol'].mean()

# Fill missing cholestrol values with the mean
heart_disease_df['chol'].fillna(mean_value, inplace=True)
Machine Learning de ponta a ponta

Imputação avançada

Técnicas avançadas:

  • K-nearest neighbors
  • SMOTE (synthetic minority oversampling technique)
from sklearn.impute import KNNImputer

# Initialize KNNImputer
imputer = KNNImputer(n_neighbors=2, weights="uniform")

# Perform the imputation on your DataFrame
df_imputed['oldpeak'] = imputer.fit_transform(df['oldpeak'])
Machine Learning de ponta a ponta

Removendo duplicatas

 

  • Dados devem ser limpos, concisos e ricos
  • Redundâncias não ajudam
  • Duplicatas podem enviesar ou confundir o modelo
  • Use identificadores únicos como critério para descartar registros/linhas

 

# Drop duplicate rows
heart_disease_duplicates_dropped = heart_disease_column_dropped.drop_duplicates()
Machine Learning de ponta a ponta

Vamos praticar!

Machine Learning de ponta a ponta

Preparing Video For Download...