【发布时间】:2016-12-01 22:36:18
【问题描述】:
我想为类为布尔值的问题学习朴素贝叶斯模型。其中一些特征是布尔值,但其他特征是分类特征,可以采用少量值 (~5)。
如果我的所有功能都是布尔值,那么我想使用sklearn.naive_bayes.BernoulliNB。 sklearn.naive_bayes.MultinomialNB 似乎很明显不是我想要的。
一种解决方案是将我的分类特征拆分为布尔特征。例如,如果变量“X”取值“红色”、“绿色”、“蓝色”,我可以有三个变量:“X 是红色”、“X 是绿色”、“X 是蓝色”。这违反了给定类的变量条件独立的假设,因此看起来完全不合适。
另一种可能性是将变量编码为实值变量,其中 0.0 表示红色,1.0 表示绿色,2.0 表示蓝色。这似乎也完全不适合使用 GaussianNB(原因很明显)。
我不明白如何将我正在尝试做的事情融入 sklearn 提供给我的朴素贝叶斯模型。
[编辑解释为什么我不认为多项式 NB 是我想要的]:
我的理解是,在多项式 NB 中,特征向量由在k iid 样本中观察到令牌的次数组成。
我的理解是,这适用于分类文档,其中存在一个基础文档类,然后假定文档中的每个单词都是从特定于该类的分类分布中提取的。一个文档会有k 标记,特征向量的长度等于词汇量大小,特征计数的总和是k。
就我而言,我有许多伯努利变量,以及几个分类变量。但是这里没有“计数”的概念。
示例:班级是喜欢或不喜欢数学的人。预测变量是大学专业(分类)和他们是否读过研究生(布尔值)。
我认为这不适合多项式,因为这里没有计数。
【问题讨论】:
-
您能否详细说明为什么多项式朴素贝叶斯对您不利?
-
我投票结束这个问题,因为它与 help center 中定义的编程无关,而是关于 ML 理论和/或方法 - 请参阅
machine-learning@ 中的介绍和注意事项987654322@.
标签: machine-learning statistics scikit-learn naivebayes