我正在进行推文分类,其中每条推文都属于少数类之一。 训练集输出作为将样本归属于每个类的概率给出。 例如:推文#1:C1-0.6,C2-0.4,C3-0.0(C1,C2,C3为班级)
我计划使用Scikit-learn使用朴素贝叶斯分类器。我找不到naive_bayes.py中的拟合方法,该方法需要每个课程进行训练的概率。 我需要一个分类器,它接受训练集的每个类的输出概率。 (即:y.shape = [n_samples,n_classes])
如何处理我的数据集以应用NaiveBayes分类器?
答案 0 :(得分:3)
这并不容易,因为“班级概率”可以有很多解释。
在NB分类器和sklearn的情况下,我看到的最简单的过程是:
fit(X,Y,sample_weights)
训练你的NB(其中X
是x
观察的矩阵,Y
是上一步的类矩阵,{{1} }是上一步的pi矩阵。例如,如果您的训练集包含两点:
您将它们转换为:
并用
训练NBsample_weights
X = [ [0 1], [0 1], [1 3], [1 3] ]
Y = [ 1, 2, 1, 2 ]