Beberapa bahan yang saya lihat pada pembelajaran mesin mengatakan bahwa itu adalah ide yang buruk untuk mendekati masalah klasifikasi melalui regresi. Tapi saya pikir itu selalu mungkin untuk melakukan regresi terus menerus agar sesuai dengan data dan memotong prediksi terus menerus untuk menghasilkan klasifikasi diskrit. Jadi mengapa itu ide yang buruk?
51
Jawaban:
"..mendapatkan masalah klasifikasi melalui regresi .." dengan "regresi" Saya akan menganggap Anda maksud regresi linier, dan saya akan membandingkan pendekatan ini dengan pendekatan "klasifikasi" yang sesuai dengan model regresi logistik.
Sebelum kita melakukan ini, penting untuk memperjelas perbedaan antara model regresi dan klasifikasi. Model regresi memprediksi variabel kontinu, seperti jumlah curah hujan atau intensitas sinar matahari. Mereka juga dapat memprediksi probabilitas, seperti probabilitas bahwa suatu gambar mengandung kucing. Model regresi probabilitas-prediksi dapat digunakan sebagai bagian dari classifier dengan menerapkan aturan keputusan - misalnya, jika probabilitasnya adalah 50% atau lebih, putuskan itu kucing.
Regresi logistik memprediksi probabilitas, dan karenanya merupakan algoritma regresi. Namun, ini umumnya digambarkan sebagai metode klasifikasi dalam literatur pembelajaran mesin, karena dapat (dan sering) digunakan untuk membuat pengklasifikasi. Ada juga algoritma klasifikasi "benar", seperti SVM, yang hanya memprediksi hasil dan tidak memberikan probabilitas. Kami tidak akan membahas algoritme semacam ini di sini.
Regresi Linier vs Logistik pada Masalah Klasifikasi
Seperti yang dijelaskan Andrew Ng , dengan regresi linier Anda memasukkan polinomial melalui data - katakanlah, seperti pada contoh di bawah ini kami memasang garis lurus melalui {ukuran tumor, jenis tumor} set sampel:
Sepertinya dengan cara ini kita dapat memprediksi dengan benar setiap sampel set pelatihan tunggal, tapi sekarang mari kita ubah sedikit tugas.
Secara intuitif jelas bahwa semua tumor dengan ambang tertentu yang lebih besar ganas. Jadi mari kita tambahkan sampel lain dengan ukuran tumor yang sangat besar, dan jalankan regresi linier lagi:
Kami tidak dapat mengubah hipotesis setiap kali sampel baru tiba. Sebagai gantinya, kita harus mempelajarinya di luar data yang ditetapkan pelatihan, dan kemudian (menggunakan hipotesis yang telah kita pelajari) membuat prediksi yang benar untuk data yang belum kita lihat sebelumnya.
Semoga ini menjelaskan mengapa regresi linier bukan yang paling cocok untuk masalah klasifikasi! Juga, Anda mungkin ingin menonton VI. Regresi logistik. Video klasifikasi di ml-class.org yang menjelaskan ide secara lebih rinci.
SUNTING
probabilityislogic bertanya apa yang akan dilakukan oleh classifier yang baik. Dalam contoh khusus ini Anda mungkin akan menggunakan regresi logistik yang mungkin mempelajari hipotesis seperti ini (saya hanya mengada-ada):
Perhatikan bahwa baik regresi linier dan regresi logistik memberi Anda garis lurus (atau polinomial orde tinggi) tetapi garis-garis tersebut memiliki arti yang berbeda:
Jadi, intinya adalah bahwa dalam skenario klasifikasi kita menggunakan sama sekali berbeda penalaran dan sama sekali berbeda algoritma dari dalam skenario regresi.
sumber
Saya tidak dapat memikirkan contoh di mana klasifikasi sebenarnya adalah tujuan akhir. Hampir selalu tujuan sebenarnya adalah membuat prediksi yang akurat, misalnya probabilitas. Dalam semangat itu, regresi (logistik) adalah teman Anda.
sumber
Mengapa tidak melihat beberapa bukti? Meskipun banyak yang berpendapat bahwa regresi linier tidak tepat untuk klasifikasi, itu mungkin masih berfungsi. Untuk mendapatkan intuisi, saya memasukkan regresi linier (digunakan sebagai classifier) ke dalam perbandingan classifier scikit-learn . Inilah yang terjadi:
Batas keputusan lebih sempit daripada dengan pengklasifikasi lain, tetapi akurasinya sama. Sama seperti classifier vektor dukungan linier, model regresi memberi Anda hyperplane yang memisahkan kelas-kelas dalam ruang fitur.
Seperti yang kita lihat, menggunakan regresi linier sebagai penggolong dapat bekerja, tetapi seperti biasa, saya akan memvalidasi prediksi.
Sebagai catatan, ini adalah bagaimana kode classifier saya terlihat seperti:
sumber
sumber