liblinear和nltk等机器学习包中的分类器提供了一种方法show_most_informative_features(),它对调试功能非常有用:
viagra = None ok : spam = 4.5 : 1.0
hello = True ok : spam = 4.5 : 1.0
hello = None spam : ok = 3.3 : 1.0
viagra = True spam : ok = 3.3 : 1.0
casino = True spam : ok = 2.0 : 1.0
casino = None ok : spam = 1.5 : 1.0
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果在scikit-learn中为分类器实现类似的东西.我搜索了文档,但找不到类似的东西.
如果还没有这样的功能,有人知道如何获得这些值吗?
非常感谢!
NLTK包提供了一种方法show_most_informative_features()来查找这两个类的最重要的功能,输出如下:
contains(outstanding) = True pos : neg = 11.1 : 1.0
contains(seagal) = True neg : pos = 7.7 : 1.0
contains(wonderfully) = True pos : neg = 6.8 : 1.0
contains(damon) = True pos : neg = 5.9 : 1.0
contains(wasted) = True neg : pos = 5.8 : 1.0
Run Code Online (Sandbox Code Playgroud)
正如在这个问题中所回答的,如何获得scikit-learn分类器的最丰富的功能?,这也适用于scikit-learn.但是,对于二元分类器,该问题的答案仅输出最佳特征本身.
所以我的问题是,我如何识别该特征的相关类,如上面的例子(优秀是pos类中最有用的信息,而seagal在负面类中信息量最大)?
编辑:实际上我想要的是每个班级最丰富的单词列表.我怎样才能做到这一点?谢谢!