如何从具有以下组件的SciKit学习管道中获得最重要的令牌的概述:
multinb = Pipeline([('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', MultinomialNB()),
])
multinb.fit(X_train, y_train)
寻找一个简单的代码段,以可视化方式/显示权重最高的令牌整体X)
如何提取coef_
的MultinomialNB
:
import pandas as pd
multinb = Pipeline([('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', MultinomialNB()),
])
multinb.fit(X_train, y_train)
token_imp = pd.DataFrame(
data=multinb['clf'].coef_[0],
index=multinb['vect'].get_feature_names(),
columns=['coefficient']
).sort_values(by='coefficient', ascending=False)
print(token_imp)
这将按降序为您提供诸如功能重要性之类的信息。由于token_imp
是一个数据框,因此您也可以使用token_imp.head(n)
来查看n最重要的功能,并使用token_imp.plot.bar()