Persiapan data

Machine Learning Ujung ke Ujung

Joshua Stapleton

Machine Learning Engineer

Langkah persiapan data

Dataset memiliki:

  • Nilai hilang
  • Outlier
  • Ketidakseimbangan
  • Kolom kosong
  • Duplikasi

Persiapan data:

  • Berdasarkan temuan EDA
  • Kritis untuk kinerja model selanjutnya
Machine Learning Ujung ke Ujung

Nilai null / kosong

  • Hapus baris/kolom yang hilang atau jarang terisi
  • Nilai null dapat merusak model
  • Gunakan df.drop() untuk kolom
  • Gunakan df.dropna(how='all') untuk baris
# 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 Ujung ke Ujung

Menangani nilai null / kosong

  • Pembersihan/penghapusan data bergantung pada temuan EDA

 

  • Jika suatu kolom terlalu banyak nilai hilang:
    • Hapus kolom

 

  • Jika kolom target memiliki nilai hilang:
    • Hapus baris dengan target hilang
    • Atau perlakukan sebagai kategori terpisah
Machine Learning Ujung ke Ujung

Imputasi

Apa yang dilakukan jika hanya sedikit nilai hilang?

  • Imputasi:

    • Isi nilai hilang dengan pengganti
  • Strategi

    • Isi dengan mean atau median
    • Gunakan konstanta atau nilai sebelumnya
# 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 Ujung ke Ujung

Imputasi lanjutan

Teknik lanjutan:

  • 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 Ujung ke Ujung

Menghapus duplikasi

 

  • Data harus bersih, ringkas, dan kaya
  • Redundansi tidak membantu
  • Duplikasi bisa bias atau membingungkan model
  • Gunakan pengenal unik sebagai kriteria untuk menghapus record/baris

 

# Drop duplicate rows
heart_disease_duplicates_dropped = heart_disease_column_dropped.drop_duplicates()
Machine Learning Ujung ke Ujung

Ayo berlatih!

Machine Learning Ujung ke Ujung

Preparing Video For Download...