设为首页 加入收藏

TOP

Naive Bayes 朴素贝叶斯的Java代码实现
2014-11-24 01:09:13 来源: 作者: 【 】 浏览:4
Tags:Naive Bayes 朴素 贝叶斯 Java 代码 实现

Java工程文件可以在LinuxIDC.com下载


具体下载目录在 /2014年资料/2月/24日/Naive Bayes 朴素贝叶斯的Java代码实现


下面贴的代码仅是主类程序


1.关于贝叶斯分类


bayes 是一种统计学分类方法,它基于贝叶斯定理,它假定一个属性值对给定类的影响独立于其它属性点的值。该假定称作类条件独立。做次假定是为了简化所需计算,并在此意义下称为“朴素的”。


bayes分类的算法大致如下:


(1)对于属性值是离散的,并且目标label值也是离散的情况下。分别计算label不同取值的概率,以及样本在label情况下的概率值,然后将这些概率值相乘最后得到一个概率的乘积,选择概率乘积最大的那个值对应的label值就为预测的结果。


例如以下:是预测苹果在给定属性的情况是甜还是不甜的情况:


color={0,1,2,3} weight={2,3,4};是属性序列,为离散型。sweet={yes,no}是目标值,也为离散型;


这时我们要预测在color=3,weight=3的情况下的目标值,计算过程如下:


P{y=yes}=2/5=0.4; P{color=3|yes}=1/2=0.5;P{weight=3|yes}=1/2=0.5; 故F{color=3,weight=3}取yesd的概率为 0.4*0.5*0.5=0.1;


P{y=no}=3/5=0.6; P{color=3|no}=1/3 P{weight=3|no}=1/3; 故P{color=3,weight=3}取no为 0.6*1/3*1/3=1/15;


0.1>1/15 所以认为 F{color=3,weight=3}=yes;


(2)对于属性值是连续的情况,思想和离散是相同的,只是这时候我们计算属性的概率用的是高斯密度:


这里的Xk就是样本的取值,u是样本所在列的均值,kesi是标准差;


最后代码如下:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android在代码中实现重启(reboot) 下一篇Binary Search Tree(BST)二叉搜索..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: