๐ŸŽฏ Logistic Regression

Klasifikasi biner berbasis probabilitas โ€” model paling banyak dipakai di industri.

๐ŸŽฌ Animasi: Logistic Regression: Garis Keputusan

Garis keputusan memisahkan dua kelas. Warna latar menunjukkan probabilitas sigmoid (biru โ‰ˆ kelas 0, oranye โ‰ˆ kelas 1).

๐Ÿ“Œ 1. Konsep: Dari Garis Menjadi Probabilitas

Linear regression menghasilkan angka bebas batas. Untuk klasifikasi kita mau probabilitas 0โ€“1. Solusinya: jepit output garis dengan fungsi sigmoid:

z = wยทx + b (skor linear, -โˆž .. +โˆž) P(y=1|x) = sigmoid(z) = 1 / (1 + e^(-z)) z = -5 โ†’ P โ‰ˆ 0.007 (sangat yakin kelas 0) z = 0 โ†’ P = 0.5 (ragu-ragu, tepat di batas) z = +5 โ†’ P โ‰ˆ 0.993 (sangat yakin kelas 1) Keputusan: P โ‰ฅ 0.5 โ†’ kelas 1, selain itu โ†’ kelas 0 (threshold 0.5 bisa digeser sesuai biaya kesalahan!)

Garis wยทx + b = 0 disebut decision boundary โ€” pembatas antar kelas di ruang fitur.

๐Ÿ“Œ 2. Training: Cross-Entropy + Gradient Descent

Cost function: CROSS-ENTROPY (bukan MSE!) L = -[ yยทln(P) + (1-y)ยทln(1-P) ] Kenapa bukan MSE? Cross-entropy + sigmoid menghasilkan gradien yang "bersih" dan tidak datar di area ekstrem โ†’ training cepat & stabil. Gradien (hasil turunan cross-entropy terhadap w): โˆ‚L/โˆ‚wแตข = (P - y) ยท xแตข โ† bentuknya elegan! Update per sampel (stochastic gradient descent): w โ† w - lr ยท (P - y) ยท x Interpretasi: jika P=0.9 tapi y=0 (salah tebak yakin), gradien besar โ†’ bobot dikoreksi kuat. Jika P=0.1 dan y=0 (benar), gradien kecil.

๐Ÿ“Œ 3. Contoh: Klasifikasi Biner + Probabilitas

Output:

๐Ÿ“Œ 4. Contoh: Visualisasi Decision Boundary

Kita "warnai" seluruh bidang dengan probabilitas model. Perhatikan: data moons bentuknya melengkung, tapi logistic regression hanya bisa membuat garis lurus โ€” akurasinya akan terbatas.

Output:
๐Ÿ’ก Batas garis lurus ini bisa "dibengkokkan" dengan feature engineering (tambah fitur xยฒ, x1ยทx2) atau pakai model non-linear: KNN, decision tree, atau neural network (bab 6, 7, 13).

๐Ÿง  Latihan

  1. Ubah threshold dari 0.5 menjadi 0.3 dan 0.7. Apa yang terjadi pada precision vs recall?
  2. Tambahkan fitur kuadrat: X2 = [[x[0]**2, x[1]**2, x[0]*x[1]] for x in X] lalu latih logistic regression 3 fitur di data moons. Naik akurasinya?
  3. Hitung berapa banyak sampel training yang "salah tebak yakin" (P>0.9 tapi salah, atau P<0.1 tapi salah).
  4. Jelaskan kenapa cross-entropy lebih cocok untuk klasifikasi daripada MSE. (Petunjuk: gradien di area P mendekati 0 atau 1.)