Matlab 统计工具箱中自带的朴素贝叶斯框架[matlabnaivebayes朴素贝叶
斯]
朴素贝叶斯的模型相信大家不陌生,通过谷歌、百度也能够很容易的搜索到朴素贝叶斯的 c++或 matlab 的源码。但是,如果只是用到朴素贝叶斯的最基本理论,如求
后验率、分类器等的话,其实大家大可不必自己去实现代码。在 matlab 中的统计工具包(Statistics Toolbox)下就有 NaiveBayes 的类。通过使用这个类,我们可以很轻易实
现对数据进行学习、分类、求概率等。下面列出最基本、最常用的用法。
1.简单分类
代码:
load fisheriris
O1 = NaiveBayes.fit(meas,species);
C1 = O1.predict(meas);
cMat1 = confusionmat(species,C1)
运行结果:
cMat1 =
50 0 0
0 47 3
0 3 47
这种最简单的用法默认数据的每个特征都服从高斯分布(Normal Distribution),并且默认先验概率是经验概率(Empirical),即先验概率是每个类出现的频率。
2.通过设置参数定制分类器
代码:
O2 = NaiveBayes.fit(meas,species,'dist',{'normal','kernel','normal','kernel'});
C2 = O2.predict(meas);
cMat2 = confusionmat(species,C2)
运行结果:
cMat2 =
50 0 0
0 47 3
0 3 47
与第一种方法不同,这里可以对不同的特征设置不同的分布,normal 表示高斯分布、kernel 表示核密度平滑估计。另外还有
multinomial distribution)、mn--多项式分布(Multinomial distribution)。这里的 mvmn 适合于离散的特征、mn 适合于 bag-of-tokens
评论3