我正在尝试在一些实时数据上实现朴素贝叶斯算法。我知道贝叶斯的规则,但我不知道如何实现我的数据。我的数据如下所示。总共有2个标签我的数据是好的,欺诈和测试数据标记为unkn。我需要通过应用Naive Bayes算法将所有unkn记录分类为ok或欺诈。我如何实现这一目标?请有人帮助我。
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 * unkn的可能性给出了确定。
欺诈的后验概率=欺诈的先前可能性*欺诈的可能性。
答案 0 :(得分:3)
我假设行1,v1,p1,182,1665,unkn
被解释为:
1
,v1
=一些标识符p1,182,1665
=数据点的功能unkn
=标签,在这种情况下为未知考虑到这一点,您的训练数据包含标有ok
或fraud
的所有行,您的测试数据是其余的。您必须计算先验和条件可能性:
ok
的先验概率是训练数据中ok
个例子的比例。这同样适用于fraud
f
,例如v1
或p1
,其给定的可能性是包含该功能的训练数据中ok
个示例的比例。例如,p1
包含在4个ok
示例中的2个中,概率为0.5。对于每个示例,将您为步骤2中所有要素计算的概率相乘。将结果乘以步骤1中的概率,以获得属于特定类的示例的(联合)概率。
注意事项:
182
)需要转换为离散(例如通过分级),或者您需要在步骤2中提出一些估算条件概率的其他方法.Google for连续值的朴素贝叶斯