Regresi logistik: Menghitung probabilitas dengan fungsi sigmoid

Banyak masalah yang memerlukan estimasi probabilitas sebagai output. Regresi logistik adalah mekanisme yang sangat efisien untuk menghitung probabilitas. Secara praktek, Anda dapat menggunakan probabilitas yang ditampilkan dengan salah satu dari dua cara berikut:

  • Diterapkan "sebagaimana adanya". Misalnya, jika model prediksi spam menggunakan email sebagai input dan menghasilkan nilai 0.932, ini menyiratkan probabilitas 93.2% bahwa email tersebut adalah spam.

  • Dikonversi ke kategori biner seperti True atau False, Spam atau Not Spam.

Modul ini berfokus pada penggunaan output model regresi logistik apa adanya. Di kolom Modul klasifikasi, Anda akan mempelajari cara mengonversi {i>output<i} ini menjadi kategori biner.

Fungsi sigmoid

Anda mungkin bertanya-tanya bagaimana model regresi logistik dapat memastikan outputnya mewakili probabilitas, yang selalu menghasilkan nilai antara 0 dan 1. Ternyata, ada kumpulan fungsi yang disebut fungsi logistik yang output-nya memiliki karakteristik yang sama. Fungsi logistik standar, juga dikenal sebagai fungsi sigmoid (sigmoid berarti "berbentuk s"), memiliki formula:

\[f(x) = \frac{1}{1 + e^{-x}}\]

Gambar 1 menunjukkan grafik fungsi sigmoid yang sesuai.

Kurva sigmoid (berbentuk s) yang diplot pada bidang koordinat Kartesius,
         yang berpusat di titik asal.
Gambar 1. Grafik fungsi sigmoid. Kurva mendekati 0 saat nilai x menurun ke nilai negatif tak terbatas, dan 1 saat nilai x meningkat ke nilai tak terbatas.

Seiring input, x, meningkat, output fungsi sigmoid mendekati tetapi tidak pernah mencapai 1. Demikian pula, saat input menurun, nilai sigmoid output fungsi mendekati tetapi tidak pernah mencapai 0.

Klik di sini untuk mempelajari matematika lebih dalam di balik fungsi sigmoid

Tabel di bawah ini menunjukkan nilai {i> output<i} dari fungsi sigmoid untuk memasukkan nilai dalam rentang –7 hingga 7. Perhatikan seberapa cepat sigmoid mendekati 0 untuk menurunkan nilai input negatif, dan seberapa cepat mendekati sigmoid 1 untuk meningkatkan nilai input positif.

Namun, tidak peduli seberapa besar atau kecilnya nilai input, output selalu lebih besar dari 0 dan kurang dari 1.

Input Output sigmoid
-7 0,001
-6 0,002
-5 0,007
-4 0,018
-3 0,047
-2 0,119
-1 0,269
0 0,50
1 0,731
2 0,881
3 0,952
4 0,982
5 0,993
6 0,997
7 0,999

Mengubah output linear menggunakan fungsi sigmoid

Persamaan berikut mewakili komponen linear dari model regresi logistik:

\[z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N\]

dalam hal ini:

  • z adalah output dari persamaan linear, yang juga disebut log odds.
  • b adalah biasnya.
  • Nilai w adalah bobot model yang dipelajari.
  • Nilai x adalah nilai fitur untuk contoh tertentu.

Untuk mendapatkan prediksi regresi logistik, nilai z kemudian diteruskan ke fungsi sigmoid, yang menghasilkan nilai (probabilitas) antara 0 dan 1:

\[y' = \frac{1}{1 + e^{-z}}\]

dalam hal ini:

  • y' adalah output dari model regresi logistik.
  • z adalah output linear (seperti yang dihitung dalam persamaan sebelumnya).

Klik di sini untuk mempelajari log-odds lebih lanjut

Dalam persamaan $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$, z disebut sebagai log-odds karena jika Anda memulai dengan fungsi sigmoid berikut (dengan $y$ adalah output dari model regresi logistik, yang mewakili probabilitas):

$$y = \frac{1}{1 + e^{-z}}$$

Kemudian, cari z:

$$ z = \log\left(\frac{y}{1-y}\right) $$

Kemudian, z ditentukan sebagai log rasio probabilitas dari dua kemungkinan hasil: y dan 1 – y.

Gambar 2 mengilustrasikan bagaimana output linear ditransformasikan menjadi output regresi logistik menggunakan penghitungan ini.

Kiri: Garis dengan titik (-7,5, –10), (-2,5, 0), dan (0, 5)
         ditandai. Kanan: Kurva sigmoid dengan titik transformasi yang sesuai (-10, 0,00004), (0, 0,5), dan (5, 0,9933) ditandai.
Gambar 2. Kiri: grafik fungsi linear z = 2x + 5, dengan tiga titik ditandai. Kanan: Kurva sigmoid dengan tiga titik yang sama disorot setelah ditransformasi oleh fungsi sigmoid.

Pada Gambar 2, persamaan linear menjadi input untuk fungsi sigmoid, yang melengkungkan garis lurus menjadi bentuk huruf s. Perhatikan bahwa persamaan linear dapat menghasilkan nilai z yang sangat besar atau sangat kecil, tetapi output fungsi sigmoid, y', selalu antara 0 dan 1, secara eksklusif. Misalnya, warna kuning pada grafik sebelah kiri memiliki nilai z -10, tetapi fungsi sigmoid pada grafik kanan memetakan bahwa -10 ke y' sebesar 0,00004.

Latihan: Memeriksa pemahaman Anda

Model regresi logistik dengan tiga fitur memiliki bias dan bobot berikut:

\[\begin{align} b &= 1 \\ w_1 &= 2 \\ w_2 &= -1 \\ w_3 &= 5 \end{align} \]

Dengan nilai input berikut:

\[\begin{align} x_1 &= 0 \\ x_2 &= 10 \\ x_3 &= 2 \end{align} \]

Jawab dua pertanyaan berikut.

1. Berapa nilai z untuk nilai input ini?
–1
0
0,731
1
Benar. Persamaan linear yang ditentukan oleh bobot dan bias adalah z = 1 + 2x1 – x2 + 5 x3. Memasukkan nilai input ke dalam persamaan akan menghasilkan z = 1 + (2)(0) - (10) + (5)(2) = 1
2. Berapa prediksi regresi logistik untuk nilai input ini?
0,268
0,5
0,731

Seperti yang dihitung di #1 di atas, log-odds untuk nilai input adalah 1. Memasukkan nilai tersebut untuk z ke dalam fungsi sigmoid:

\(y = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-1}} = \frac{1}{1 + 0.367} = \frac{1}{1.367} = 0.731\)

1
Ingat, {i>output<i} dari fungsi sigmoid akan selalu lebih besar dari 0 dan kurang dari 1.