2

我正在尝试对一些实时数据实施朴素贝叶斯算法。我知道贝叶斯的规则,但我不确定如何在我的数据上实施。我的数据如下所示。我的数据中共有 2 个标签可以,欺诈和测试数据标记为 unkn。我需要通过应用朴素贝叶斯算法将所有 unkn 记录分类为正常或欺诈。我该如何实现?请有人帮助我。

1,v1,p1,182,1665,unkn
2,v2,p1,3072,8780,ok
3,v3,p1,20393,76990,ok
4,v4,p1,112,1100,fraud
5,v3,p1,6164,20260,unkn
6,v5,p2,104,1155,ok
7,v6,p2,350,5680,unkn
8,v7,p2,200,4010,ok
9,v8,p2,233,2855,unkn
10,v9,p2,118,1175,unkn

贝叶斯规则:-

unkn ok 的后验概率 = ok 的先验概率 * 给定 unkn 的可能性 ok。

未知欺诈的后验概率 = 欺诈的先验概率 * 给定欺诈的未知概率。

4

1 回答 1

3

我假设该行1,v1,p1,182,1665,unkn被解释为:

  • 1, v1= 一些标识符
  • p1,182,1665= 数据点的特征
  • unkn= 标签,在这种情况下未知

考虑到这种表示法,您的训练数据由所有带有标签ok或的行组成,fraud其余的是您的测试数据。您必须计算先验和条件似然:

  1. 先验概率是训练数据中示例ok的比例。ok这同样适用于fraud
  2. 对于每个特征f,例如v1或,其给出的可能性 ok 是训练数据中包含该特征p1的示例的比例。ok例如,p1包含在 4 个ok示例中的 2 个中,给您 0.5 的概率。

对于每个示例,将您在步骤 2 中为其所有特征计算的概率相乘。将结果乘以步骤 1 中的概率,以获得示例属于特定类的(联合)概率。

注意事项:

  • 将概率相乘最终会导致下溢。您可能想要添加这些概率的日志。
  • 我描述的算法仅适用于离散值特征。您在上面似乎具有的连续值特征(例如182)需要转换为离散值(例如通过分箱),或者您需要在步骤 2 中想出一些其他方法来估计条件概率。Google for Continuous-valued Naive Bayes
于 2012-11-16T12:28:02.807 回答