? ? ? ?本篇文章是博主在人工智能等領域學習時,用于個人學習、研究或者欣賞使用,并基于博主對人工智能等領域的一些理解而記錄的學習摘錄和筆記,若有不當和侵權之處,指出后將會立即改正,還望諒解。文章分類在AI學習筆記:
? ? ? AI學習筆記(14)---《Bayes分類器設計》
Bayes分類器設計
目錄
1.前言
2.相關知識
2.1貝葉斯決策的基本概念
2.2正態模式下最小誤判概率判決準則的具體形式
3.最小誤判概率準則判決原理原理
3.1基本方式
3.2貝葉斯分類器設計步驟
3.3分類器分類步驟
4.編程實現
4.1統計判決貝葉斯MATLAB代碼
4.2?正態分布模式的貝葉斯判別MATLAB代碼
1.前言
????????理解并掌握貝葉斯判決的一般性原理,設計并實現一個基礎貝葉斯分類器,能夠根據自己的設計對貝葉斯決策理論算法有一個深刻認識。
????????正態模式下最小誤判概率判決準則的具體形式;分類器分類步驟。
2.相關知識
2.1貝葉斯決策的基本概念
? ? ? ? 1.貝葉斯公式:
設實驗E
的樣本空間為S
,A
為E
的事件,B1?,B2?,...,Bn?
為S
的一個劃分,且P(A)>0,P(Bi?)>0,(i=1,2,...,n)
,則
????????2.先驗概率:
????????P(wi?)
表示類wi?
出現的先驗概率,簡稱類wi?
的概率。
????????3.后驗概率:
????????P(wi?∣x)
表示x
出現條件下類wi?
出現的概率,稱其為類別的后驗概率,對于模式識別來講,可以理解為x
來自類wi?
的概率。
????????4.類概率:
????????p(x∣wi?)
表示在類wi?
條件下的概率密度,即類wi?
模式x
的概率分布密度,簡稱為類概密。
2.2正態模式下最小誤判概率判決準則的具體形式
正態分布模式的貝葉斯判決函數;
?????????綜上我們可以知道,di?(x)
是一超二次曲面,如wi?
類和wj?
類相鄰,則它們的決策界面方程為di?(x)=dj?(x)
,一般來說,正態分布的兩個模式類別之間用一個而此判決界面就可以得到最有效果。由于對數函數是單調增函數,所以判決規則仍為:
3.最小誤判概率準則判決原理原理
3.1基本方式
????????對于兩類問題,統計判決的基本方式是根據類的概率和概密將模式的特征空間Ω
劃分成兩個判決域D1?
和D2?
,即
?3.2兩類問題?
????????使用基本方式來分類時,會發生兩種錯誤,一種是把實際屬于w1?
類的模式判定為w2?
類,發生這種錯誤的原因是屬于w1?
的模式在特征空間中散步到Ω2?
中去,從而將其判定為w2?
類,這時的誤判概率為:
同理將實際屬于w2?
類的模式判定為w1?
類時的誤判概率為:
如圖所示:
?我們的目標是總體上、統計上誤判最少,因此所使用的判決準則是使得誤判概率最小,這等價于使正確分類識別概率P(c)最大,即
經過推導,最終我們可以得到幾種等價的最小誤判概率準則下的判決規則:
?將二類問題同樣的分析方法運用到多類問題,可得到對于多類問題,最小誤判概率準則有如下幾種等價的判決規則:
3.2貝葉斯分類器設計步驟
? ? ? ? 1.計算先驗概率P(wi?)
:通過計算各類樣本在總樣本中占的比例得到先驗概率;
???????????P(wi?)≈Ni?/N,其中Ni?為第i類樣本的樣本數,N為樣本總數
? ? ? ? 2.計算類概率密度p(x∣wi?)
;
? ? ? ? 3.利用貝葉斯公式求后驗概率P(wi?∣x)
;
? ? ? ? 4.根據最小誤判概率準則進行判決,后驗概率中最大值對應的類別即為識別對象的分類類別
3.3分類器分類步驟
-
確定類別
wi?
,并提取每一類所對應的已知樣本; -
特征提取,從樣本中提取出一些可以作為區分不同類別的n個不同特征;
-
分別計算每一個類別的樣本所對應的特征,計算出其均值矢量
ui?
和協方差矩陣Σ
,即特征中心; -
對特征進行歸一化操作,使其去量綱化;
-
利用選擇的判決準則,對待分類樣本進行分類。
4.編程實現
4.1統計判決貝葉斯MATLAB代碼
x = [-3.9847 -3.5549 -1.2401 -0.9780 -0.7932 -2.8531 -2.7605 -3.7287 -3.5414 -2.2692 -3.4549 -3.0752 -3.9934 2.8792 -0.9780 0.7932 1.1882 3.0682 -1.5799 -1.4885 0.7431 -0.4221 -1.1186 4.2532]; % 樣本數據
pw = [0.9 0.1]; % 先驗概率% 類條件概率分布正態分布分別為N(e1,a1)和N(e2,a2)
e1 = -2; a1 = 0.5; % 類條件分布1的均值和標準差
e2 = 2; a2 = 2; % 類條件分布2的均值和標準差
m = numel(x); % 樣本數量
result = zeros(1, m); % 初始化結果向量% 計算后驗概率
p_w1_x = zeros(1, m); % 初始化后驗概率p(w1|x)
p_w2_x = zeros(1, m); % 初始化后驗概率p(w2|x)
for i = 1:m% 計算p(w1|x)后驗概率p_w1_x(i) = (normpdf(x(i), e1, a1) * pw(1)) / ...(normpdf(x(i), e1, a1) * pw(1) + normpdf(x(i), e2, a2) * pw(2));% 計算p(w2|x)后驗概率p_w2_x(i) = (normpdf(x(i), e2, a2) * pw(2)) / ...(normpdf(x(i), e1, a1) * pw(1) + normpdf(x(i), e2, a2) * pw(2));
end% 根據最小誤判概率準則進行判決,結果存入result中
for i = 1:mif p_w1_x(i) > p_w2_x(i)result(i) = 0; % 歸類為類別1elseresult(i) = 1; % 歸類為類別2end
endfprintf("%4d", result); % 輸出結果
fprintf("\n");
4.2?正態分布模式的貝葉斯判別MATLAB代碼
pkg load statisticsfunction GuassianBayesModel(w, p, X)%%%%%%%%%% Begin %%%%%%%%%%[row, col, class] = size(w); % 獲取數據維度信息(行、列和類別數量)% 根據給出的樣本數據,求各個類的均值u(:, :, 1) = sum(w(:, :, 1)) ./ row; % 計算類別1的均值u(:, :, 2) = sum(w(:, :, 2)) ./ row; % 計算類別2的均值u(:, :, 3) = sum(w(:, :, 3)) ./ row; % 計算類別3的均值% 求各個類的協方差矩陣sigma(:, :, 1) = cov(w(:, :, 1)); % 計算類別1的協方差矩陣sigma(:, :, 2) = cov(w(:, :, 2)); % 計算類別2的協方差矩陣sigma(:, :, 3) = cov(w(:, :, 3)); % 計算類別3的協方差矩陣% 構建判別函數,計算點到每個類的馬氏距離以及歐氏距離md = zeros(1, class); % 初始化馬氏距離數組ed = zeros(1, class); % 初始化歐氏距離數組P = zeros(1, class); % 初始化概率數組for i = 1:classmd(i) = sqrt((X - u(:, :, i)) * inv(sigma(:, :, i)) * (X - u(:, :, i))'); % 計算馬氏距離ed(i) = sqrt(sum((X - u(:, :, i)) .^ 2)); % 計算歐氏距離P(i) = p(i) * mvnpdf(X, u(:, :, i), sigma(:, :, i)); % 計算后驗概率end%%%%%%%%%% End %%%%%%%%%%% 判斷樣本屬于哪個類的概率最高,并顯示點到每個類的馬氏距離和歐氏距離maxP = max(P); % 找出最大概率result = find(P == maxP); % 找出對應的類別fprintf("點[%s]關于第1、2、3類的判別函數值分別為:%s %s %s\n", num2str(X), num2str(P(1)), num2str(P(2)), num2str(P(3)));fprintf("點[%s]到第1、2、3類的馬氏距離為:%s %s %s\n", num2str(X), num2str(md(1)), num2str(md(2)), num2str(md(3)));fprintf("點[%s]到第1、2、3類的歐氏距離為:%s %s %s\n", num2str(X), num2str(ed(1)), num2str(ed(2)), num2str(ed(3)));fprintf("點[%s]屬于第%s類\n", num2str(X), num2str(result));
end% w1, w2, w3三類散點
w = zeros(10, 3, 3);
w(:, :, 1) = [-5.01 -8.12 -3.68;...-5.43 -3.48 -3.54;...1.08 -5.52 1.66;...0.86 -3.78 -4.11;...-2.67 0.63 7.39;...4.94 3.29 2.08;...-2.51 2.09 -2.59;...-2.25 -2.13 -6.94;...5.56 2.86 -2.26;...1.03 -3.33 4.33];w(:, :, 2) = [-0.91 -0.18 -0.05;...1.30 -0.206 -3.53;...-7.75 -4.54 -0.95;...-5.47 0.50 3.92;...6.14 5.72 -4.85;...3.60 1.26 4.36;...5.37 -4.63 -3.65;...7.18 1.46 -6.66;...-7.39 1.17 6.30;...-7.50 -6.32 -0.31];w(:, :, 3) = [ 5.35 2.26 8.13;...5.12 3.22 -2.66;...-1.34 -5.31 -9.87;...4.48 3.42 5.19;...7.11 2.39 9.21;...7.17 4.33 -0.98;...5.75 3.97 6.65;...0.77 0.27 2.41;...0.90 -0.43 -8.71;...3.52 -0.36 6.43];% 設置各類別先驗概率
pw = [1/3 1/3 1/3];% 樣本矢量
X1 = [1 2 1];
X2 = [5 3 2];
X3 = [0 0 0];% 調用高斯型Bayes判別函數, 輸出判別函數值、馬氏距離和判別結果
GuassianBayesModel(w, pw, X1);
GuassianBayesModel(w, pw, X2);
GuassianBayesModel(w, pw, X3);
? ? ?文章若有不當和不正確之處,還望理解與指出。由于部分文字、圖片等來源于互聯網,無法核實真實出處,如涉及相關爭議,請聯系博主刪除。如有錯誤、疑問和侵權,歡迎評論留言聯系作者,或者私信聯系作者。