连续属性 – 朴素贝叶斯算法中的分布

我在尝试通过在MATLAB中编写自己的代码来实现朴素贝叶斯算法。我对其中一个连续属性的分布选择感到困惑。其值如下所示:

         MovieAge :         1         2         3         4         ..         10         1         11         2         12         1         3         13         2         1         4         14         3         2         5         15         4         3         6         16         5         4         ....         32         9         3         15

请告诉我对于这种数据应该使用哪种分布?在我的测试集中,这个属性有时会包含训练数据中未包含的值。如何处理这个问题?谢谢 15


回答:

假设这个变量取整数值,而不是连续值(基于你的例子),最简单的方法是采用直方图类型的方法:某个值的概率是它在训练数据中出现的次数的分数。考虑为高于某个数值的所有值设置一个最终的区间(基于你的例子,可能在20左右)。如果你遇到零计数的问题,可以给所有计数加1(如果你倾向于这样做,可以将其视为Dirichlet先验)。

至于参数形式,如果你更喜欢使用参数形式,泊松分布是一种可能的选择。QQ图,或者甚至是拟合优度测试,将会提示这种分布在你的情况下是否合适,但我认为你使用基于直方图的方法会更好。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注