Datavoorbewerking

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Stappen voor datavoorbewerking

Dataset heeft:

  • Missende waarden
  • Outliers
  • Onevenwichten
  • Lege kolommen
  • Duplicaten

Datavoorbewerking:

  • Gebaseerd op EDA-inzichten
  • Cruciaal voor latere modelprestatie
End-to-End Machine Learning

Null / lege waarden

  • Drop rijen/kolommen met veel missende of lege waarden
  • Nulls kunnen het model breken
  • Gebruik df.drop() voor kolommen
  • Gebruik df.dropna(how='all') voor rijen
# 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')
End-to-End Machine Learning

Omgaan met null / lege waarden

  • Opschonen/droppen hangt af van EDA-bevindingen

 

  • Heeft een kolom te veel missende waarden:
    • Drop de kolom

 

  • Mist de target-kolom waarden:
    • Drop rijen met missende targets
    • Of behandel als aparte categorie
End-to-End Machine Learning

Imputatie

Wat te doen bij weinig missende waarden?

  • Imputatie:

    • Vul missende waarden met vervangers
  • Strategieën

    • Vul met gemiddelde of mediaan
    • Gebruik constante of vorige waarde
# 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)
End-to-End Machine Learning

Geavanceerde imputatie

Geavanceerde technieken:

  • 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'])
End-to-End Machine Learning

Duplicaten droppen

 

  • Data moet schoon, compact en rijk zijn
  • Redundantie helpt niet
  • Duplicaten kunnen model vertekenen of verwarren
  • Gebruik unieke id’s als criterium om records/rijen te droppen

 

# Drop duplicate rows
heart_disease_duplicates_dropped = heart_disease_column_dropped.drop_duplicates()
End-to-End Machine Learning

Laten we oefenen!

End-to-End Machine Learning

Preparing Video For Download...