Scikit learn-分类

Scikit learn-Classification

是否有直接的方法来查看每个 class 的主要功能?基于 tfidf?

我正在使用 KNeighbors classifer、SVC-Linear、MultinomialNB。

其次,我一直在寻找一种方法来查看未正确 class 化的文档?我可以查看混淆矩阵,但我想查看具体文档以查看哪些功能导致错误class化。

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 向量化器并使用它来训练 classifier。

就像之前的评论所暗示的那样,更具体的问题会得到更好的答案,但我一直在使用这个包,所以我会尽力提供帮助。

我。确定 sklearn 中 classification classes 的主要功能实际上取决于您使用的个别工具。例如,许多集成方法(如 RandomForestClassifierGradientBoostingClassifer)带有 .feature_importances_ 属性,该属性将根据每个特征的重要性对其进行评分。相反,大多数线性模型(如 LogisticRegressionRidgeClassifier)有一个正则化惩罚,它对系数的大小进行惩罚,这意味着系数大小在某种程度上反映了特征的重要性(尽管你需要保持请记住各个特征的数值尺度),可以使用模型 class.

.coef_ 属性访问

总而言之,几乎所有的 sklearn 模型都有一些提取特征重要性的方法,但这些方法因模型而异。幸运的是 sklearn 文档非常棒,所以我会阅读您的特定模型以确定您的最佳方法。此外,除了模型特定 API.

之外,请务必阅读与您的问题类型相关的 User Guide

二.没有开箱即用的 sklearn 方法来提供错误的 class 化记录,但是如果您使用 pandas DataFrame(您应该这样做)来提供模型,它可以在几行中完成像这样的代码。

import pandas as pd
from sklearn.linear_model import RandomForestClassifier

df = pd.DataFrame(data)
x = df[[<list of feature columns>]]
y = df[<target column>]

mod = RandomForestClassifier()
mod.fit(x.values, y.values)

df['predict'] = mod.predict(x.values)

incorrect = df[df['predict']!=df[<target column>]]

生成的 incorrect DataFrame 将仅包含错误class化的记录。

希望对您有所帮助!