Pregătirea datelor

Machine Learning End-to-End

Joshua Stapleton

Machine Learning Engineer

Etapele pregătirii datelor

Setul de date conține:

  • Valori lipsă
  • Valori aberante
  • Dezechilibre
  • Coloane goale
  • Duplicate

Pregătirea datelor:

  • Bazată pe concluziile din EDA
  • Esențială pentru performanța modelului
Machine Learning End-to-End

Valori nule / goale

  • Eliminați rândurile/coloanele lipsă sau rare
  • Valorile nule pot compromite modelul
  • Utilizați df.drop() pentru coloane
  • Utilizați df.dropna(how='all') pentru rânduri
# 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 End-to-End

Gestionarea valorilor nule / goale

  • Curățarea datelor depinde de rezultatele EDA

 

  • Dacă o coloană are prea multe valori lipsă:
    • Eliminați coloana

 

  • Dacă coloana țintă are valori lipsă:
    • Eliminați rândurile cu ținte lipsă
    • Sau tratați-le ca o categorie separată
Machine Learning End-to-End

Imputare

Ce facem când lipsesc doar câteva valori?

  • Imputare:

    • Înlocuiți valorile lipsă cu substitute
  • Strategii

    • Completați cu media sau mediana
    • Utilizați o constantă sau valoarea anterioară
# 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 End-to-End

Imputare avansată

Tehnici avansate:

  • K-nearest neighbors
  • SMOTE (tehnica de supraesantionare sintetică a minorității)
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 End-to-End

Eliminarea duplicatelor

 

  • Datele trebuie să fie curate, concise și relevante
  • Redundanțele sunt inutile
  • Duplicatele pot distorsiona sau confunda modelul
  • Utilizați identificatorii unici ca și criteriu pentru eliminarea înregistrărilor / rândurilor.

 

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

Să exersăm!

Machine Learning End-to-End

Preparing Video For Download...