Příprava dat

Strojové učení od začátku do konce

Joshua Stapleton

Machine Learning Engineer

Kroky přípravy dat

Dataset obsahuje:

  • Chybějící hodnoty
  • Odlehlé hodnoty
  • Nerovnováhy
  • Prázdné sloupce
  • Duplikáty

Příprava dat:

  • Vychází z výsledků EDA
  • Klíčová pro výkon modelu
Strojové učení od začátku do konce

Hodnoty null / prázdné hodnoty

  • Odstraňte řádky/sloupce s chybějícími nebo řídkými hodnotami
  • Hodnoty null mohou narušit model
  • Pro sloupce použijte df.drop()
  • Pro řádky použijte df.dropna(how='all')
# 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')
Strojové učení od začátku do konce

Práce s hodnotami null / prázdnými hodnotami

  • Čištění dat závisí na výsledcích EDA

 

  • Pokud sloupec obsahuje příliš mnoho chybějících hodnot:
    • Odstraňte sloupec

 

  • Pokud cílový sloupec obsahuje chybějící hodnoty:
    • Odstraňte řádky s chybějícími cíli
    • Nebo je považujte za samostatnou kategorii
Strojové učení od začátku do konce

Imputace

Co dělat, když chybí jen několik hodnot?

  • Imputace:

    • Nahraďte chybějící hodnoty náhradními
  • Strategie

    • Doplnění průměrem nebo mediánem
    • Použití konstanty nebo předchozí hodnoty
# 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)
Strojové učení od začátku do konce

Pokročilá imputace

Pokročilé techniky:

  • K nejbližších sousedů
  • 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'])
Strojové učení od začátku do konce

Odstranění duplikátů

 

  • Data musí být čistá, stručná a bohatá
  • Redundance jsou nežádoucí
  • Duplikáty mohou zkreslit nebo zmást model
  • Jako kritérium pro odstranění záznamů použijte unikátní identifikátory.

 

# Drop duplicate rows
heart_disease_duplicates_dropped = heart_disease_column_dropped.drop_duplicates()
Strojové učení od začátku do konce

Pojďme si procvičit!

Strojové učení od začátku do konce

Preparing Video For Download...