1. 程式人生 > >貝葉斯分類器(含MATLAB實現)

貝葉斯分類器(含MATLAB實現)

由於被測試的模式特徵向量通常存在隨機性,所獲得的模式樣本有一定的統計分佈。因此,採用統計決策的理論方法進行模式分類是常用的模式識別方法。這也是遙感影象土地分類的常用方法。統計決策函式以貝葉斯定理為基礎,一般需要滿足兩個基本條件:

1)已知模式向量的有關概率分佈先驗知識,如先驗概率、類條件概率密度。

2)待解決的問題中,其訓練樣本的類別是已知的,因此在已知的類別樣本的指導下進行模式分類的。稱為有監督分類。

貝葉斯分類器的分類原理是通過某物件的先驗概率,利用貝葉斯公式計算出其後驗概率,即該物件屬於某一類的概率,選擇具有最大後驗概率的類作為該物件所屬的類。

貝葉斯分類器的分類原理是通過某物件的先驗概率

,利用貝葉斯公式計算出其後驗概率,即該物件屬於某一類的概率,選擇具有最大後驗概率的類作為該物件所屬的類。也就是說,貝葉斯分類器是最小錯誤率意義上的優化。目前研究較多的貝葉斯分類器主要有四種,分別是:Naive Bayes、TAN、BAN和GBN。

MATLAB分類實現對fisherifis 中的versicolor 和cirginica 進行分類

load fisheriris;%繪製要分類的類別
SL =meas(51:end,1);
SW=meas(51:end,2);
group=species(51:end);
h1=gscatter(SL,SW ,group,'rb','v^',[],'off');
set(h1,'lineWidth',2);
legend('Fisher versicolor','Fisher virginica','Location','NW');
%分類
[X,Y]=meshgrid(linspace(4.5,8),linspace(2,4));
X=X(:);
Y=Y(:);
[C,err,P,logp,coeff]=classify([X,Y],[SL,SW],group,'quadratic');
%分類觀察 
hold on;
gscatter(X,Y,C,'rb','.',1,'off');
K=coeff(1,2).const;
L=coeff(1,2).linear;
Q=coeff(1,2).quadratic;
f=sprintf('0=%g+%g*x+%g*y+%g*x^2+%g*x.*y+%g*y.^2',K,L,Q(1,1),Q(1,2)+Q(2,1),Q(2,2));
h2=ezplot(f,[4.5 8 2 4]);
set(h2,'Color','m','LineWidth',2);
axis([4.5 8 2 4]);
xlabel('Sepal Length');
ylabel('Sepal Width');
title('{\bf Classification with Fisher Training Data}');

原始要分類的影象:


結果顯示: