1. 程式人生 > >【學習筆記】matlab演算法實現貝葉斯判別classify函式

【學習筆記】matlab演算法實現貝葉斯判別classify函式

貝葉斯判別:物件(總體)在抽樣前已有一定的認識,常用先驗分佈來描述這種認識,然後給予抽取的樣本再對先驗認識作修正,得到後驗分佈,而各種統計推斷均基於後驗分佈進行。將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