我可以在sklearn贝叶斯分类器中设置特征优先级吗?

2024-04-26 14:14:07 发布

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

我做了一些简单的贝叶斯分类

X = [[1,0,0], [1,1,0]] ### there are more data of course
Y = [1,0]

classifier = BernoulliNB()

classifier.fit(X, Y)

现在我得到了一些“内部提示”,即每个X中的第一个元素比其他元素更重要。在

  1. 在我训练模特之前,我能把这些知识结合起来吗?

  2. 如果sklearn不允许,是否有其他分类器或其他库允许我们合并之前的模型培训?


Tags: of模型元素data分类器more分类sklearn
2条回答

我不知道问题2的答案,但我能回答问题1。在

在评论中"multiply the first element for each observation by different values"是一种错误的方法。在

当你使用二项式的知识时,你可以把你的二项式知识加入到你的知识中

假设你在掷硬币,你知道硬币是朝着更多的人头操纵的。然后添加更多显示更多头部的样本。如果你之前的知识是70%正面和30%反面:你可以将总共100个样本,70个正面和30个反面,加到你的数据X中。在

想想这个算法到底在做什么。Naive Bayes执行以下分类:

p(class = k | data) ~ p(class = k) * p(data | class = k)

换句话说:观察到的(后验)概率与任何观察在k类中的概率(即优先)乘以观察到的概率(假设它来自k类(可能性)。在

通常当我们什么都不知道的时候,我们假设p(class = k)只是反映了观测数据的分布。在

在您的例子中,您是说除了观察到的数据之外,您还有一些信息,这使您认为前面的p(class = k)应该被修改。这是完全合法的。事实上,这就是贝叶斯推理的妙处。不管你之前的知识是什么,你应该把它纳入这学期。所以在你的例子中,如果你知道它比数据显示的更可能发生的话,那么这可能会增加你在某个特定类中的概率(如评论中建议的那样,增加它的权重)。在

相关问题 更多 >