本文主要是介绍数据挖掘算法之 Naive Bayes,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、什么是Naive Bayes?
在2分类的情况下:使用类别已知的初始对象(训练数据)构造一一个划分器,使得获得叫大分值的对象同类别1关联而获得较小分值的对象同类别0关联。划分器对新对象给出分值,将该对象的得分同某个预定的“分类阈值”进行比较即可实现分类,得分大于阈值就分到类别1,小于阈值就分到类别0。 据此扩充到多分类。
二、Naive Bayes 算法思想。
朴素贝叶斯分类基于一个简单的假定:在给定分类特征条件下,描述属性值之间是相互条件独立的。
朴素贝叶斯分类思想是:假设每个样本用一个n维特征向量X={x1,x2,…,xn}来表示,描述属性为A1、A2、…、An(Ai之间相互独立)。类别属性为C,假设样本中共有m个类即C1、C2、…、Cm,对应的贝叶斯网如图所示。
给定一个未知类别的样本X,朴素贝叶斯分类将预测X属于具有最高后验概率P(Ci|X)的类,也就是说,将X分配给类Ci,当且仅当:
P(Ci|X)>P(Cj|X),1≤j≤m,i≠j
根据贝叶斯定理有:
由于P(X)对于所有类为常数,只需要最大化P(X|Ci)P(Ci)即可。
所以对于某个样本(a1,a2,…,an),它所在类别为:
训练: 输入:训练数据集S
输出:各个类别的先验概率P(Ci),各个类的后验概率
这篇关于数据挖掘算法之 Naive Bayes的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!