EDA and Classification of Hepatitis - SVM GridCV

Tresna Maulana Fahrudin, S.ST., M.T.

Sosial Media


0 orang menyukai ini
Suka

Summary

Pada projek ini dilakukan pendekatan analisis data eksploratif dan implementasi model machine learning untuk menyelesaikan kasus klasifikasi dataset hepatitis. Dataset ini terdiri dari 19 fitur (bertipe diskrit dan kontinyu) serta 2 label kelas (DIE danh LIVE). Tantangan awal pada dataset ini adalah terdapat cukup banyak missing values pada tiap fitur sehingga harus dilakukan praproses terlebih dahulun menggunakan imputasi mean dan modus. Pendeketan analisis data eksploratif juga digunakan untuk menganalisis korelasi antara variabel independen dan variabel dependen pada dataset hepatitis, metode Point Biserial untuk analisis korelasi antara variabel kontinyu dengan diskrit, sedankan metode Chi-square untuk analisis korelasi antara variabel yang keduanya diskrit. Model machine learning yang digunakan untuk klasifikasi hepatitis yakni menggunakan metode Support Vector Machine dengan Hyperparameter Tuning menggunakan GridSearchCV. Metode ini mampu mencapai akurasi 91% untuk melakukan klasifikasi dataset hepatitis.

Description

Import Dataset

Import beberapa library umum seperti pandas, numpy, matplotlib. Namun, ada beberapa library lain yang utamanya untuk melakukan analisis korelasi seperti 'pointbiserialr' dan 'chi-square', sedangkan untuk klasifikasinya menggunakan 'SVM Hyperparameter Tuning dengan GridSearchCV'.

Import file hepatitis yang berekstensi CSV menggunakan fungsi 'pd.read_csv()'

Mengidentifikasi Duplikasi Data dan Missing Values beserta Imputasinya

Mengidentifikasi variabel bertipe diskrit dan kontinyu

Memeriksa apakah dataset mengandung data yang duplikat atau tidak menggunakan fungsi 'df.duplicated()'

Memeriksa apakah dataset mengandung missing values atau tidak menggunakan fungsi 'df.isnull()'. Terlihat beberapa baris data dengan keterangan 'True' yang menandakan bahwa terdapat missing values 

 

Menghitung secara statistik jumlah missing values pada tiap-tiap kolom menggunakan fungsi 'df.isnull().sum()'

Mengkategorikan fitur-fitur yang diskrit dan kontinyu yang mengandung missing values. Sekaligus, melakukan imputasi missing values. Jika fitur diskrit, teknik imputasi menggunakan fungsi 'statistics.mode', sedangkan untuk fitur kontinyu menggunakan fungsi 'df[].mean()'

Menghitung kembali secara statistik jumlah missing values pada tiap-tiap kolom menggunakan fungsi 'df.isnull().sum()'.
Setelah diperiksa, semua fitur telah terisi value-nya, tidak ada yang mengandung missing values

Normalisasi Dataset Berdasarkan Variabel Independen 

Menampilkan beberapa 50 baris teratas dari dataset hepatitis yang telah terisi nilainya dengan teknik imputasi mean dan modus sebelumnya

Memisahkan antara variabel independen 'X' dan variabel dependen 'y' serta normalisasi fitur independen menggunakan Metode Normalisasi Standar. Tampak nilai interval pada variabel independen berkisaran -3 hingga 3. Normalisasi ini dilakukan mengingat variabel independen bertipe diskrit dan kontinyu pada dataset yang memiliki perbedaan variasi nilai satuan hingga ratusan

Visualisasi dan Analisis Korelasi Fitur pada Dataset

Visualisasi setiap fitur independen dengan fitur dependen menggunakan Scatter Diagram dengan ukuran matriks row-column '7x3'. Pada grafik memang tidak nampak hubungan yang begitu jelas pada variabel independen dengan dependen, dikarenakan variabel dependennya bertipe diskrit sehingga sebaran nilai akan menuju pada 2 poin saja sesuai jumlah kelas pada variabel dependen yakni DIE dan LIVE pada dataset hepatitis.

 

Visualisasi untuk melihat distribusi nilai pada tiap fitur independen masing-masing. Terlihat perbedaan distribusi nilai antara variabel bertipe diskrit dengan bertipe kontinyu. Variabel bertipe diskrit akan terlihat visualisasinya hanya akan bergerombol pada 2 titik pada axis y dan membentuk seperti garis lurus horizontal, sedangkan variabel kontinyu, distribusinya lebih menyebar.

 

Analisis korelasi terhadap variabel independen bertipe diskrit menggunakan fungsi stats.chi2_contingency(). Jika P-value > 0.05 maka h0 akan diterima yang artinya variabel independen tidak berkorelasi dengan variabel lainnya (dependen). Sebaliknya (P-value < 0.05) , variabel independen berkorelasi dengan variabel lainnya (dependen).

Analisis korelasi terhadap variabel independen bertipe kontinyu menggunakan fungsi 'stats.pointbiserialrs()'. Jika korelasi < 0 (negatif) maka kedua variabel termasuk berkorelasi negatif. Sebaliknya (>0) , maka kedua variabel termasuk berkorelasi positif.

Pada tahap analisis korelasi sebelumnya, pada tiap iterasi, mfitur-fitur yang layak dimasukkan ke dalam variabel penampung selected_feature. Tujuannya, fitur-fitur yang dinilai layak dapat dimasukkan sebagai input ke dalam machine learning

Machine Learning Model menggunakan SVM Hyperparameter Tuning dengan GridSearchCV

Mempersiapkan input  variabel independen 'X' yang telah difilter (9 dari 19 variabel independen) dan variabel dependen 'y'

Fitting Model Support Vector Machine dengan Hyperparameter Tuning Menggunakan 'GridSearchCV' serta parameter, C, gamma, dan kernel 'rbf'
 

 

Pengujian model prediksi terhadap data latih (Training Phase)

Report Hasil Evaluasi Klasifikasi Model SVM Hyperparaemeter Tuning dengan GridSearchCV

 

 

 

Informasi Course Terkait
  Kategori: Data Science / Big Data
  Course: Master Class On Job Training: Data Science Intensive Program Batch 33