朴素贝叶斯机器学习java_机器学习算法:朴素贝叶斯

本文介绍了如何使用Java实现朴素贝叶斯算法。通过训练数据集计算各类别的概率,并利用特征之间的独立性简化计算,提高分类效率。提供了一个简单的NaiveBayes类,包含两种分类方法:Classify和ClassifyFast。最后,通过毒蘑菇数据集测试了算法的准确率,达到了0%的错误率。
摘要由CSDN通过智能技术生成

朴素贝叶斯(Naive Bayes)算法的核心思想是:分别计算给定样本属于每个分类的概率,然后挑选概率最高的作为猜测结果。

假定样本有2个特征x和y,则其属于分类1的概率记作p(C1|x,y),它的值无法直接分析训练样本得出,需要利用公式间接求得。

9e757573cb93b6136e752f5d7d80e864.png

其中p(Ci)表示训练样本中分类为Ci的概率,它等于Ci样本数除以样本总数。

p(x,y)表示满足2个特征的样本概率,它等于第1特征等于x且第2特征等于y的样本数除以样本总数。可以发现p(x,y)与当前在计算哪个分类概率是无关的,因此实际计算中可以忽略它,不会影响结果。

p(x,y|Ci)表示Ci分类中满足2个特征的样本概率,在朴素贝叶斯算法中,认为x与y是相互独立的,因此p(x,y|Ci)=p(x|Ci)*p(y|Ci),其中p(x|Ci)表示Ci分类的样本中第1个特征等于x的概率。

上面的例子中只给定了2维的情况,实际可以扩展到N维,由于假定各特征相互独立,因此p(w|Ci)总是可以分解求得的。

上C#代码:using System;

using System.Collections.Generic;

using System.Linq;

namespace MachineLearning

{

/// 

/// 朴素贝叶斯

/// 

p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值