Aplikasi Weight of Evidence pada data case study: Data Diskretisasi Oleh Achmad Syaiful (G ) Tugas Kuliah Pemodelan Klasifikasi Departemen Statistika Institut Pertanian Bogor
Outlines 1. Latar Belakang 2. Data dan Struktur 3. Metode dan Analisis 4. Hasil dan Pembahasan 5. Kesimpulan
Latar Belakang Discrete Categorical Continues Predictor Categorical Predictor Penggunaan WOE bertujuan untuk memperoleh model yang lebih baik Menyederhanakan data sehingga tidak dipengaruhi oleh outlier
Data dan Struktur Data Sekunder > head(data) x class > summary(data) x class Min. :18.00 Min. : st Qu.: st Qu.: Median :44.00 Median : Mean :42.81 Mean : rd Qu.: rd Qu.: Max. :67.00 Max. :1.0000
Metode dan Analisis Weight Of Evidence 1)Bagi data menjadi data training dan data testing dengan perbandingan (3:1) 2)Menguji data awal dengan metode Logistik Regresi 3)Hitung Weight of Evidence 4)Menguji data yang telah dibuat weight of evidence Tahapan Analisis:
Hasil dan Pembahasan acak <- sample(1:nrow(data), 1146) data.training <- data[acak,] data.testing <- data[-acak,] model.logistik<-glm(class~ x, data=data.training, family="binomial") summary(model.logistik) prob.prediksi<-predict(model.logistik, data.testing, type="response") prediksi 0.5, 1, 0) library(caret) confusionMatrix(prediksi, data.testing$class) Sintaks: Output: > confusionMatrix(prediksi, data.testing$class) Confusion Matrix and Statistics Reference Prediction Accuracy : % CI : (0.4787, ) No Information Rate : P-Value [Acc > NIR] : Kappa : Mcnemar's Test P-Value : Sensitivity : Specificity : Pos Pred Value : Neg Pred Value : Prevalence : Detection Rate : Detection Prevalence : Balanced Accuracy : 'Positive' Class : 0
Hasil dan Pembahasan (Cont.) library(woe) woe<-woe(Data=data.training,"x",TRUE,"class",7,Bad=0,Good=1) woe data.training$x_bin <- ifelse(data.training$x < 27, 110.7, ifelse(data.training$x < 35, -62.3, ifelse(data.training$x < 44, , ifelse(data.training$x < 51, -97.7, ifelse(data.training$x < 59, 49.5,238.4))))) data.testing$x_bin <- ifelse(data.testing$x < 27, 110.7, ifelse(data.testing$x < 35, -62.3, ifelse(data.testing$x < 44, , ifelse(data.testing$x < 51, -97.7, ifelse(data.testing$x < 59, 49.5,238.4))))) Sintaks: Output: > woe BIN MIN MAX BAD GOOD TOTAL BAD% GOOD% TOTAL% WOE IV BAD_SPLIT GOOD_SPLIT
Hasil dan Pembahasan (Cont.) model.logistik<-glm(class~ x_bin, data=data.training, family="binomial") summary(model.logistik) prob.prediksi<-predict(model.logistik, data.testing, type="response") prediksi 0.5, 1, 0) library(caret) confusionMatrix(prediksi, data.testing$class) Sintaks: Output: > confusionMatrix(prediksi, data.testing$class) Confusion Matrix and Statistics Reference Prediction Accuracy : % CI : (0.6919, ) No Information Rate : P-Value [Acc > NIR] : <2e-16 Kappa : Mcnemar's Test P-Value : 1 Sensitivity : Specificity : Pos Pred Value : Neg Pred Value : Prevalence : Detection Rate : Detection Prevalence : Balanced Accuracy : 'Positive' Class : 0
Kesimpulan Penggunaan WOE pada model Logistik Regresi Meningkatkan Akurasi pemodelan
Terima Kasih