您的位置:首页 > 编程语言 > MATLAB

【学习笔记】matlab算法实现贝叶斯判别classify函数

2014-02-17 08:56 981 查看
贝叶斯判别:对象(总体)在抽样前已有一定的认识,常用先验分布来描述这种认识,然后给予抽取的样本再对先验认识作修正,得到后验分布,而各种统计推断均基于后验分布进行。将Bayes 统计的思想用于判别分析,就得到Bayes判别。

在Matlab软件包中,将已经分类的m个数据(长度为n)作为行向量,得到一个矩阵trianing,每行都属于一个分类类别,分类类别构成一个整数列向量g(共有m行),待分类的k个数据(长度为n)作为行向量,得到一个矩阵sample,然后利用classify函数进行线性判别分析(默认)。它的格式为:

classify(sample,training,group),

采用一个大气污染的例子



现在有样品如下,求的他们的分类~



采用matlab程序实现如下:

training=[0.056 0.084 0.031 0.038 0.0081 0.022;

0.040 0.055 0.100 0.110 0.0220 0.0073;

0.050 0.074 0.041 0.048 0.0071 0.020;

0.045 0.050 0.110 0.100 0.0250 0.0063;

0.038 0.130 0.079 0.170 0.0580 0.043;

0.030 0.110 0.070 0.160 0.0500 0.046;

0.034 0.095 0.058 0.160 0.200 0.029;

0.030 0.090 0.068 0.180 0.220 0.039;

0.084 0.066 0.029 0.320 0.012 0.041;

0.085 0.076 0.019 0.300 0.010 0.040;

0.064 0.072 0.020 0.250 0.028 0.038;

0.054 0.065 0.022 0.280 0.021 0.040;

0.048 0.089 0.062 0.260 0.038 0.036;

0.045 0.092 0.072 0.200 0.035 0.032;

0.069 0.087 0.027 0.050 0.089 0.021];

group=[1;1 ;1 ;1 ;2 ;2 ;1; 1; 2 ;2 ;2 ;2 ;2 ;2 ;1];

sample=[0.052 0.084 0.021 0.037 0.0071 0.022;

0.041 0.055 0.110 0.110 0.0210 0.0073;

0.030 0.112 0.072 0.160 0.056 0.021;

0.074 0.083 0.105 0.190 0.020 1.000];

[class,err]=classify(sample,training,group,'mahalanobis')

存盘后执行,得到

class =

1

1

2

2

err =

0
转自:http://blog.sina.com.cn/s/blog_6c7b434d01013zv7.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: