我怎么知道我以前给sci-kit学习的内容? (朴素贝叶斯分类器。)

时间:2014-01-07 20:37:07

标签: python scikit-learn

在sci-kit learn的朴素贝叶斯分类器中,您可以指定先验概率,分类器将在其计算中使用那些提供的概率。但我不知道应如何订购先验概率。

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%之前的?在指定先验概率之前,是否需要考虑数据中类的顺序?

我也有兴趣知道这些记录的位置。

3 个答案:

答案 0 :(得分:3)

似乎没有证件。适合时,目标由LabelBinarizer预处理,因此您可以使用

获取数据类
from sklearn.preprocessing import LabelBinarizer
labelbin = LabelBinarizer()
labelbin.fit_transform(classes)

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

答案 1 :(得分:2)

排序后的顺序是classes的顺序,所以P {light bulb)=。4将使用[.6, .4]指定,因为"door mat" < "light bulb"

答案 2 :(得分:1)

深深嵌套在代码库中会发生以下情况:您为fit()调用提供的类将转换为集合,排序,然后按顺序存储在分类器对象中(按字母顺序或数字顺序) 。为__init__()提供的先验对应于按照这个确切顺序的类。

显然这是没有证件的。

进一步阅读: