Я работаю над проблемой классификации текста и обнаружил, что SVM лучше всего справляется с моей задачей классификации текста.Тем не менее, я провел свой эксперимент с использованием SGD-классификатора sklearn (loss = hinge).
LIME , кажется, предоставляет способ для анализа экземпляра и демонстрации анализа для каждого класса в данном экземпляре.Однако проблема с LIME заключается в следующем:
exp = explainer.explain_instance(test_document, c.predict_proba)
в функции объяснении.explain_instance, для которого требуется распределение вероятности в качестве второго параметра (c.predict_proba), и для SGD нет предиката_proba, доступного для SGD (loss = hinge)).Я пытался использовать CalibratedClassifierCV, но я получаю другие результаты с ним.
'=======SGD (loss=hinge)======='
Predicted: [19, 7, 7, 13, 16, 9, 17, 6, 13, 17, 16, 17, 11, 1, 4, 14, 8, 10, 12, 10, 16, 1, 1]
True : [19, 3, 7, 13, 16, 9, 15, 6, 13, 10, 16, 17, 11, 1, 4, 14, 8, 5, 20, 18, 2, 12, 1]
0.6521739130434783
'====Calibrated Results======'
Predicted: [19, 7, 7, 13, 16, 16, 12, 6, 13, 17, 16, 17, 11, 5, 4, 14, 8, 10, 15, 10, 16, 7, 1]
True : [19, 3, 7, 13, 16, 9, 15, 6, 13, 10, 16, 17, 11, 1, 4, 14, 8, 5, 20, 18, 2, 12, 1]
0.5652173913043478
Задача состоит в том, чтобы найти наиболее релевантные / важные характеристики для каждого класса в многоклассовой задаче классификации текста.Цель этого - проанализировать результаты и обсудить их различия в исследовательской работе.Открыты для любых предложений или альтернатив.
Кроме того, я мог бы использовать SVC Склеарна вместо SGD, поскольку он имеет атрибутprett_proba.Однако проблема в том, что с SGD у меня уже есть набор параметров, для которых я делаю анализ, и я не смог найти способ точно преобразовать конфигурацию SGD в конфигурацию SVC.