Baru-baru ini saya mulai belajar untuk bekerja sklearn
dan baru saja menemukan hasil yang aneh ini.
Saya menggunakan digits
dataset yang tersedia sklearn
untuk mencoba berbagai model dan metode estimasi.
Ketika saya diuji model Support Vector Machine pada data, saya menemukan ada dua kelas yang berbeda di sklearn
klasifikasi SVM: SVC
dan LinearSVC
, di mana mantan menggunakan satu-terhadap-satu pendekatan dan kegunaan lain satu-terhadap-sisa pendekatan.
Saya tidak tahu apa efeknya pada hasilnya, jadi saya mencoba keduanya. Saya melakukan estimasi gaya Monte Carlo di mana saya menjalankan kedua model 500 kali, setiap kali membagi sampel secara acak menjadi 60% pelatihan dan 40% tes dan menghitung kesalahan prediksi pada set tes.
Pengukur SVC biasa menghasilkan histogram kesalahan berikut: Sementara pengukur SVC linier menghasilkan histogram berikut:
Apa yang bisa menjelaskan perbedaan yang begitu mencolok? Mengapa model linear memiliki akurasi yang lebih tinggi?
Dan, terkait, apa yang bisa menyebabkan polarisasi pada hasil? Baik akurasi mendekati 1 atau akurasi mendekati 0, tidak ada di antaranya.
Sebagai perbandingan, klasifikasi pohon keputusan menghasilkan tingkat kesalahan terdistribusi jauh lebih normal dengan akurasi sekitar 0,85.
Similar to SVC with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better (to large numbers of samples).