有没有直接的方法来查看每个类的顶级功能?基于tfidf?
我正在使用KNeighbors classifer,SVC-Linear,MultinomialNB .
其次,我一直在寻找一种方法来查看未正确分类的文档?我可以查看混淆矩阵,但我希望看到具体的文档,看看导致错误分类的功能 .
classifier = SVC(kernel='linear')
counts = tfidf_vectorizer.fit_transform(data['text'].values).toarray()
targets = data['class'].values
classifier.fit(counts, targets)
counts = tfidf_vectorizer.fit_transform(test['text'].values).toarray()
predictions = classifier.predict(counts)
编辑:我添加了代码片段,我只创建一个tfidf矢量并使用它来跟踪分类器 .
1 回答
像之前的评论建议的那样,一个更具体的问题会得到更好的答案,但我会一直使用这个包,所以我会尽力帮助 .
I.确定sklearn中分类类别的主要功能实际上取决于您使用的单个工具 . 例如,许多集合方法(如
RandomForestClassifier
和GradientBoostingClassifer
)都带有.feature_importances_
属性,该属性将根据其重要性对每个要素进行评分 . 相比之下,大多数线性模型(如LogisticRegression
或RidgeClassifier
)都具有正则化惩罚,这会对系数的大小产生不利影响,这意味着系数大小在某种程度上反映了特征的重要性(尽管您需要记住各个特征的数字尺度) )可以使用模型类的.coef_
属性访问 .总之,几乎所有sklearn模型都有一些提取特征重要性的方法,但方法因模型而异 . 幸运的是,sklearn文档非常棒,所以我会阅读您的特定模型以确定您的最佳方法 . 此外,除了特定于型号的API之外,请务必阅读与您的问题类型相关联的User Guide .
II . 没有开箱即用的sklearn方法来提供错误分类的记录,但如果您使用pandas DataFrame(您应该)来提供模型,则可以通过几行代码来完成 .
结果
incorrect
DataFrame将仅包含错误分类的记录 .希望这可以帮助!