我怎么知道我要给scikit learn什么?(Naivebayes分类器。)

2024-04-26 04:15:10 发布

您现在位置:Python中文网/ 问答频道 /正文

在sci-kit-learn的naivebayesian分类器中,可以指定先验概率,分类器将在计算中使用这些提供的概率。但我不知道先验概率应该如何排序。在

from sklearn.naive_bayes import BernoulliNB
data = [[0], [1]]
classes = ['light bulb', 'door mat']
classes.shuffle()  # This simulates getting classes from a complex source.
classifier = BernoulliNB(class_prior=[0, 1])  # Here we provide prior probabilities.
classifier.fit(data, classes)

在上面的代码中,我如何知道哪个类被假定为100%优先级?在指定先验概率之前,是否需要考虑数据中类的顺序?在

我也有兴趣知道这些文件记录在哪里。在


Tags: fromdata排序分类器sklearn概率learnkit
3条回答

它似乎没有文件。在fit时,target由LabelBinarizer进行预处理,因此可以使用

from sklearn.preprocessing import LabelBinarizer
labelbin = LabelBinarizer()
labelbin.fit_transform(classes)

然后labelbin.classes_包含目标数据(classes)的结果类,顺序与其中一个优先级相对应。在

深深嵌套在代码基中会发生以下情况:您为fit()调用提供的类被转换成一个集合,进行排序,然后按该顺序存储在分类器对象中(字母顺序或数字顺序)。为__init__()提供的优先级与按此顺序排列的类相对应。在

显然这是没有文件记录的。在

进一步阅读:

排序后的顺序是classes,因此p(light bulb)=.4将使用[.6, .4]指定,因为"door mat" < "light bulb"。在

相关问题 更多 >

    热门问题