Python 我如何知道什么是优先';s I';我给sci套件学习?(朴素贝叶斯分类器。)

Python 我如何知道什么是优先';s I';我给sci套件学习?(朴素贝叶斯分类器。),python,scikit-learn,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. classifi

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


我还想知道这篇文章是在哪里记录的。

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

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

然后,
labelbin.classes\uuuu
包含目标数据的结果类(
classes
),顺序对应于一个优先级。

排序后的顺序是
classes
的顺序,因此p(
light bulb
)将使用
[.6.4]
指定为.4,因为
“门垫”

深入嵌套在代码库中,会发生以下情况:为调用
fit()
提供的类将转换为一个集合,进行排序,然后按该顺序存储在分类器对象中(字母或数字顺序)。为
\uuuu init\uuuu()
提供的优先级与类的顺序完全一致

很明显,这是没有记录的

进一步阅读:


没有针对朴素贝叶斯的文档,但这是整个scikit的惯例。请了解每类参数的工作方式如下。一个补丁是受欢迎的。所以我必须做一些额外的工作,以获得正确的类_之前的秩序。如果上等生能接受一本字典就好了。也许我会像拉斯曼斯提到的那样研究一个补丁。这和阿尔科的答案有冲突吗?或者LabelBinarizer是否按照您描述的方式对类进行排序?@Buttons840:这正是alko的答案所产生的顺序。