Summary day 1
- Klasifikasi adalah suatu metode supervised machine learning yang
digunakan untuk melakukan prediksi variabel target dengan sifat
kategorik
- Proses klasifikasi merupakan proses perhitungan peluang (seberapa
mungkin suatu kategori terjadi)
- Logistic regression menggunakan regresi linear untuk memprediksi
peluang (sehingga dapat digunakan untuk klasifikasi)
- ada 3 bentuk probability hyang harus kita pahami
- Probability range : 0 hingga 1
- odds range : 0 hingga inf
- log of odds range: inf hingga inf
bentuk umum dari model logistic regression Y= B0 + B1x1 +
B2x2+….. log of odds : nilai Y, B0, B1 odds : ketika ingin
menginterpretasikan nilai koef (B0, B1, B2, ..), bisa menggunakan fungsi
exp() probability : ketika ingin mengetahui label dari data yang
diprediksi, biasanya yang diubah menjadi probability adalah nilai Y.
- function yang digunakan untuk membuat model logistic adalah
glm()
- formula : y ~ x (y merupakan target dan x adalah predictor. tanda
“~” sebagai pemisah) y ~ 1 : memprediksi y tanpa predictor y ~ x1 + x2 :
memprediksi y dengan predictor x1 dan x2 y ~ . : memprediksi y dengan
semua predictor yang ada pada data
- data : data yang digunakan dalam proses pembuatan model
- family : menunjukkan jenis regresi apa yang ingin digunakan. gunakan
“binomial” bila ingin menggunakan logistik regression. gunakan gausian
bila ingin menggunakan linear model
Summary day 2&3
- Melakukan model selection -> deviance, AIC
- deviance: indikator goodness of fit sebuah model, nilai yang
diinginkan adalah nilai paling rendah (terhadap perbandingan nilai
deviance model lain). tidak bisa diinterpretasikan
- AIC: jumlah informasi yang hilang, nilai makin kecil berarti model
makin baik (informasi yang hilang semakin kecil)
- dari deviance dan AIC kita bisa mendeteksi perfect separation
(ketika sebuah variable prediktor membagi target variabel kita secara
sempurna)
- Asumsi
- No Multicollinierity: tidak ada korelasi yang tinggi antar sesama
prediktor
- Independence of Observations: asumsi dimana kita menganggap
observasi pada data kita tidak saling berhubungan
- Linearity of Predictor and Log of Odds: asumsi dasar dari
interpretasi yang kita lakukan
- Classification Workflow *1. Read data & Data understanding
- baca deskripsi datanya, gali informasinya
- tentukan variable targetnya 2. Data wrangling (ubah tipe data)
3. EDA
- cek missing value
- cek class imbalance
- cek distribusi data (statistika deskriptifnya)
- cek indikasi multikol berdasarkan deskripsi data *4. Cross
Validation
- memisahkan data untuk dijadikan data train (melatih model) dan data
test (evaluasi model)
- cek class imbalance lagi *5. Data Preprocessing
- terutama terhadap data train 6. Build model 7. Prediksi
hasil model
- Fungsi predict():
- object: model yang digunakan untuk memprediksi
- newdata: data yang ingin kita prediksi
- type:
link untuk log of odds, response
untuk probability *8. Evaluasi (confusion matrix)
- Akurasi - ditinjau true positive dan true negative
- Recall/Sensitivity - ditinjau positivenya dari yang actualnya
positive
- Precision/Pos Pred Value - ditinjau positivenya dari yang
prediksinya positive
- Specificity - ditinjau negatifnya *9. Model Tuning
- mengatur threshold untuk meningkatkan metrics yang ditinjau *10.
Final Model
Summary day 3&4
- Model KNN (k-nearest neighbour)
- model ini memprediksi data berdasarkan perhitungan jarak
- nilai k merupakan jumlah tetangga terdekat yang diamati
- model ini menggunakan perhitungan Eucledian Distance
- nilai k optimum didapatkan dari akar total data kita
[sqrt(nrow(data_train))]
- prediktornya harus bertipe numerik
- karena KNN merupakan pemodelan yang berdasarkan jarak, maka perlu
dipastikan setiap predictor memiliki range yang sama (untuk memastikan
range data sudah sama lakukan scaling)
- Scaling
- Min-Max Normalization
- Nilai yang dimanfaatkan adalah nilai
min dan
max
- Rumus = x-min(x) / max(x)-min(x)
- digunakan ketika kita tahu range pasti dari data
- range hasilnya 0 sampai 1
- Z-Score Standardization
- Mengandalkan nilai
mean (rata-rata) dan
sd
- Rumus = (x-mean)/sd
- Menggunakan fungsi
scale(), parameternya:
- x = object yang ingin di scaling
- center = nilai rata-rata/mean (diambil dari nilai center pada data
train yang sudah discale)
- scale = nilai standar deviasi (diambil dari nilai sd pada data
train yang sudah discale)
- digunakan ketika kita tidak tahu range pasti dari data
- range hasilnya -inf sampai inf
- Scaling digunakan setelah kita melakukan cross validation, urutan
pengerjaan scaling yaitu:
- lakukan scaling pada data train
- gunakan informasi hasil scaling pada data train untuk melakukan
scaling data test
- Hal ini dilakukan karena
- agar tidak ada informasi yang bocor ketika membuat model (data
leakage)
- data testing harus se-original mungkin
- proses cleansing di data test harus mengikuti data train
- Prediksi dengan fungsi
knn() dari library
class, parameter yang digunakan:
- train : data train, prediktor, yang sudah discaling, tipe
numerik
- test : data test, prediktor, yang sudah discaling, tipe numerik
- cl : data train, label (target) aktual (kategorikal)
- k : jumlah k yang ditentukan dari nilai sqrt(nrow(data))