【发布时间】:2017-01-03 12:46:10
【问题描述】:
基本上,sklearn 具有带有高斯核的朴素贝叶斯,可以对数值变量进行分类。
但是,如何处理同时包含数值变量和类别变量的数据集。
例如,下面给出一个数据集,如何在不离散数值变量的情况下一起使用sklearn训练混合数据类型?
+-------+--------+-----+-----------------+
| Index | Gender | Age | Product_Reviews |
+-------+--------+-----+-----------------+
| A | Female | 20 | Good |
| B | Male | 21 | Bad |
| C | Female | 25 | Bad |
+-------+--------+-----+-----------------+
我的意思是,对于贝叶斯分类,P(A|B)= P(B|A)*P(A)/P(B)。
对于类别变量,P(B|A) 很容易算出来, 但对于数值变量,它应该遵循高斯分布。 并假设我们得到了具有高斯分布的 P(B|A)。
是否有任何包可以直接与这些一起使用?
请注意:此问题与How can I use sklearn.naive_bayes with (multiple) categorical features? 不重复 和Mixing categorial and continuous data in Naive Bayes classifier using scikit-learn
因为这个问题不想做一个带有虚拟变量的朴素贝叶斯(第一个问题),也不想做一个模型集成(第二个问题解决方案2)。
数学算法在这里https://tom.host.cs.st-andrews.ac.uk/ID5059/L15-HsuPaper.pdf,它用高斯分布计算条件概率,而不是用数值变量计算数字。并使用所有条件概率进行分类,包括类别变量(通过计数)和数值变量(高斯分布)
【问题讨论】:
标签: python statistics scikit-learn naivebayes