Нещодавно я почав вчитися працювати sklearn
і щойно натрапив на цей своєрідний результат.
Я використовував digits
наявний набір даних, sklearn
щоб спробувати різні моделі та методи оцінки.
Коли я тестував модель підтримки Vector Vector на даних, я виявив, що існує два різних класи sklearn
для класифікації SVM: SVC
і LinearSVC
, коли перший використовує підхід один проти одного, а другий використовує підхід один проти відпочинку .
Я не знав, який вплив може мати на результати, тому спробував і те, і інше. Я зробив оцінку в стилі Монте-Карло, де обидві моделі запускав 500 разів, кожен раз розбиваючи вибірку на 60% на тренуванні та 40% тестування та обчислюючи похибку прогнозування на тестовому наборі.
Звичайний SVC-оцінювач видав наступну гістограму помилок: Хоча лінійний оцінювач SVC виробляв наступну гістограму:
Що може пояснити таку різку різницю? Чому лінійна модель більшу частину часу має таку більш високу точність?
І, що, відповідно, що може бути причиною різкої поляризації в результатах? Точність, близька до 1, або точність, близька до 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).