Regresi logistik: Menghitung probabilitas dengan fungsi sigmoid

Banyak masalah memerlukan perkiraan probabilitas sebagai output. Regresi logistik kini mekanisme yang sangat efisien untuk menghitung probabilitas. Dalam praktik Anda dapat menggunakan probabilitas yang dikembalikan dalam salah satu dari dua cara:

  • Diterapkan "sebagaimana adanya". Misalnya, jika model prediksi spam mengambil email sebagai input dan output nilai 0.932, ini menyiratkan probabilitas 93.2% yang 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 mewakili probabilitas, yang selalu menghasilkan nilai antara 0 dan 1. Seperti terjadi, terdapat kelompok fungsi yang disebut fungsi logistik yang {i>outputnya<i} memiliki karakteristik yang sama. Fungsi logistik standar, yang dikenal sebagai fungsi sigmoid (sigmoid berarti "berbentuk s"), memiliki rumus:

\[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 ketika nilai x menurun ke tak terhingga negatif, dan 1 sebagai x nilai meningkat menuju tak terhingga.

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

Mentransformasi output linier menggunakan fungsi sigmoid

Persamaan berikut mewakili komponen linear logistik model regresi:

\[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 peluang.
  • 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, 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 lebih lanjut log-peluang

Dalam persamaan $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$, z disebut sebagai peluang log karena jika Anda memulai dengan fungsi sigmoid berikut (di mana $y$ adalah {i>output<i} dari logistik model regresi, yang mewakili probabilitas):

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

Kemudian, selesaikan untuk z:

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

Lalu z didefinisikan sebagai log rasio probabilitas dari dua kemungkinan hasil: y dan 1 – y.

Gambar 2 mengilustrasikan bagaimana output linear ditransformasi menjadi regresi logistik output menggunakan kalkulasi ini.

Kiri: Garis dengan titik (-7.5, –10), (-2.5, 0), dan (0, 5)
         disorot. Kanan: Kurva sigmoid dengan transformasi yang sesuai
         poin (-10, 0,00004), (0, 0,5), dan (5, 0,9933) disorot.
Gambar 2. Kiri: grafik fungsi linier z = 2x + 5, dengan tiga poin yang disorot. 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 s. Perhatikan bahwa persamaan linear dapat menghasilkan nilai z yang sangat besar atau sangat kecil, tetapi output dari {i>function<i}, y', selalu antara 0 dan 1, eksklusif. Misalnya, oranye pada grafik sebelah kiri memiliki nilai z -10, tetapi fungsi sigmoid pada grafik kanan yang memetakan -10 ke y' sebesar 0,00004.

Latihan: Memeriksa pemahaman Anda

Model regresi logistik dengan tiga fitur memiliki bias dan bobot:

\[\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} \]

Jawablah 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. Mencolokkan nilai input ke dalam persamaan tersebut menghasilkan z = 1 + (2)(0) - (10) + (5)(2) = 1
2. Apa prediksi regresi logistik untuk nilai input ini?
0,268
0,5
0,731

Seperti yang dihitung pada #1 di atas, log-peluang 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.