kelas scikit-learn Perceptron
(setara dengan SGDClassifier(loss="perceptron", penalty=None, learning_rate="constant", eta0=1)
) menggunakan fungsi objektif berikut:
1N∑i=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.
1N∑i=1N(yi−wTxi)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
Perceptron
kelas Anda link ke adalah untuk classifier (output biner) daripada regressor (output terus menerus). Apakah itu kode aktual yang Anda gunakan? Jika demikian, itulah bedanya. :)