Datenaufbereitung

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Schritte der Datenaufbereitung

Datensatz hat:

  • Fehlende Werte
  • Ausreißer
  • Ungleichgewichte
  • Leere Spalten
  • Duplikate

Datenaufbereitung:

  • Basierend auf EDA-Erkenntnissen
  • Kritisch für die Modellleistung downstream
End-to-End Machine Learning

Null-/Leere Werte

  • Fehlende oder spärliche Zeilen/Spalten löschen
  • Nullwerte können Modelle brechen
  • df.drop() für Spalten
  • df.dropna(how='all') für Zeilen
# 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

Umgang mit Null-/leeren Werten

  • Säubern/Löschen richtet sich nach EDA-Befunden

 

  • Hat eine Spalte zu viele fehlende Werte:
    • Spalte löschen

 

  • Fehlen Werte in der Zielspalte:
    • Zeilen mit fehlendem Ziel löschen
    • Oder als eigene Kategorie behandeln
End-to-End Machine Learning

Imputation

Was tun bei wenigen fehlenden Werten?

  • Imputation:

    • Fehlende Werte durch Ersatz füllen
  • Strategien

    • Mit Mittelwert oder Median füllen
    • Konstante oder Vorwert nutzen
# 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

Fortgeschrittene Imputation

Fortgeschrittene Techniken:

  • 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

Duplikate entfernen

 

  • Daten müssen sauber, knapp und aussagekräftig sein
  • Redundanzen helfen nicht
  • Duplikate können Modelle verzerren oder verwirren
  • Eindeutige Kennungen als Kriterium zum Löschen nutzen

 

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

Lass uns üben!

End-to-End Machine Learning

Preparing Video For Download...