【发布时间】:2019-09-25 08:47:16
【问题描述】:
我正在研究一个文本分类问题,发现 SVM 在我的文本分类问题上表现最好。但是,我使用 sklearn 的 SGD 分类器 (loss=hinge) 进行了实验。
LIME 似乎提供了一种分析实例并显示给定实例的每个类的分析的方法。然而,LIME 的问题是:
exp = explainer.explain_instance(test_document, c.predict_proba)
在explainer.explain_instance 函数中,它需要一个概率分布作为第二个参数(c.predict_proba),并且没有可用于SGD 的predict_proba (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
这里的目标是在多类文本分类问题中为每个类找到最相关/最重要的特征。这样做的目的是分析结果并在研究论文中讨论它们的差异。 接受任何建议或替代方案。
另外,我可以使用 sklearn 的 SVC 代替 SGD,因为它具有 predict_proba 属性。但是,问题在于 SGD,我已经有一组要分析的参数,但我找不到将 SGD 的配置准确转换为 SVC 配置的方法。
【问题讨论】:
-
出于兴趣,您在 CalibratedClassifierCV 中使用了多少次折叠?
-
我将其保留为默认值 (cv=3)。我的数据集很小,因此不能超过 5
标签: python machine-learning scikit-learn text-classification sklearn-pandas