Python 如何在scikit学习分类器中找到用于特征计数的权重?

Python 如何在scikit学习分类器中找到用于特征计数的权重?,python,machine-learning,scikit-learn,naivebayes,Python,Machine Learning,Scikit Learn,Naivebayes,我正在查看多项式NB分类器中包含的字段,并试图通过手动进行频率计数来推导特征值,但它与我看到的结果不匹配。文件中说 提供时,该值由样本重量加权 这个重量在哪里?我如何计算 以下是完整的示例: X_train, X_test = ['vecindario', 'friends'], ['amigos', 'neighbourhood'] Y_train, Y_test = [0, 1], [0, 1] # Use vect = TfidfVectorizer(ngram_range=(3, 3)

我正在查看多项式NB分类器中包含的字段,并试图通过手动进行频率计数来推导特征值,但它与我看到的结果不匹配。文件中说

提供时,该值由样本重量加权

这个重量在哪里?我如何计算

以下是完整的示例:

X_train, X_test = ['vecindario', 'friends'], ['amigos', 'neighbourhood']
Y_train, Y_test = [0, 1], [0, 1]

# Use vect = TfidfVectorizer(ngram_range=(3, 3), analyzer='char', use_idf=False)
# clf = MultinomialNB()
# clf.fit(X_train, Y_train)
vect.vocabulary_
>>> {'ari' : 0 , 'cin' : 1 , 'dar' : 2 , 'eci' : 3 , 'end' : 4 , 'fri' : 5 , 'ien' : 6 , 'ind' : 7 , 'nda' : 8 , 'nds' : 9 , 'rie' : 10, 'rio' : 11, 'vec' : 12}
clf.feature_count_
>>> [   
     [ 0.35355339  0.35355339  0.35355339  0.35355339  0.          0.          0.         0.35355339  0.35355339  0.          0.          0.35355339  0.35355339]
     [ 0.          0.          0.          0.          0.4472136   0.4472136   0.4472136  0.          0.          0.4472136   0.4472136   0.          0.        ]
    ]

功能计数按预期工作,我认为默认情况下不会使用任何权重。可能需要更多的信息来解决这个问题

import numpy as np
from sklearn.naive_bayes import MultinomialNB
X = [[1,0,0],[0,1,0],[0,0,1],[1,3,0],[0,1,0],[0,0,1]]
y = np.array([1, 2, 3, 1, 2, 3])
clf = MultinomialNB()
clf.fit(X, y)
print clf.feature_count_
结果:

[[ 2.  3.  0.]
 [ 0.  2.  0.]
 [ 0.  0.  2.]]

请注意,功能计数确实取功能的总和。与
X
中的类别1相对应的两行是第一行和第四行。如果将它们相加,则得到结果的第一行。

我添加了一个完整的示例