Apa perbedaan antara regresi linear perceptron dan regresi linear LS?

8

Baru-baru ini, sebuah proyek yang saya gunakan menggunakan perceptron linier untuk regresi berganda (21 prediktor). Dulu stokastik GD. Apa bedanya dengan regresi linier OLS?

Simon Kuang
sumber
The Perceptronkelas Anda link ke adalah untuk classifier (output biner) daripada regressor (output terus menerus). Apakah itu kode aktual yang Anda gunakan? Jika demikian, itulah bedanya. :)
Dougal
@Dougal, itu masih diperhitungkan di antara GLMs: scikit-learn.org/stable/…
Simon Kuang
@ Dougal: misalkan Anda memiliki (G) LM yang dioptimalkan untuk L2 menggunakan SGDRegressor; apakah ini setara dengan regresi linier?
Simon Kuang
Ya, beberapa GLM adalah pengklasifikasi. Jika Anda menggunakan SGDRegressor(loss='squared_loss', penalty='none'), itu adalah OLS.
Dougal

Jawaban:

5

kelas scikit-learn Perceptron(setara dengan SGDClassifier(loss="perceptron", penalty=None, learning_rate="constant", eta0=1)) menggunakan fungsi objektif berikut:

1Ni=1Nmax(0,yiwTxi).
Dalam hal ini, . Jika memiliki tanda yang benar, itu tidak menimbulkan kerugian; jika tidak, itu memberikan kerugian linear. Perceptron khususnya menggunakan tingkat pembelajaran tetap yang dapat menyebabkan beberapa keanehan optimasi juga.yi{1,1}wTxi

Regresi kuadrat terkecil, sebaliknya, menggunakan Berikut dapat setiap nyata; Anda dapat memberikannya target klasifikasi di jika Anda mau, tetapi itu tidak akan memberi Anda model yang sangat bagus. Anda dapat mengoptimalkan ini dengan jika Anda mau.

1Ni=1N(yiwTxi)2.
yi{1,1}SGDRegressor(loss="squared_loss", penalty=None)

Keduanya menentukan model yang berbeda secara mendasar: perceptron memprediksi label kelas biner dengan , sedangkan regresi linier memprediksi nilai riil dengan . Jawaban ini berbicara tentang mengapa mencoba menyelesaikan masalah klasifikasi dengan algoritma regresi bisa menjadi masalah.sign(wTxi)wTxi

Dougal
sumber