从MulinomialNB中提取对数概率



我有一个由特征提取器和一个包含MulinomialNB和其他模型的VotingClassifier组成的scikit-learnPipeline。当我单独训练MulinomialNB时,我可以使用nb.feature_log_prob_提取对数概率,但在管道中缺少此属性。

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.ensemble import VotingClassifier
from sklearn.pipeline import Pipeline
vclf =  Pipeline([
('vect', CountVectorizer()),
('clf', VotingClassifier(
estimators=[
('nb', MultinomialNB()),
[...]
]
))
])
vclf.fit(train_X, train_y)
nb = vclf.named_steps['clf'].estimators[0][1]
nb.feature_log_prob_ 
属性

错误:"多项式NB"对象没有属性"feature_log_prob_">

根据文档,estimators_是访问VotingClassifier子估计器列表的正确属性。因此,您的代码应如下所示:

nb = vclf.named_steps['clf'].estimators_[0]
print(nb.feature_log_prob_)

您使用estimators访问的MulinomialNB未安装,因此未提供feature_log_prob_属性。这就是错误的来源。

最新更新