程式設計實現貝葉斯分類器。編寫matlab函式,輸入為:
(a)均值向量;(b)c類問題的類分布的協方差矩陣;(c)c類的先驗概率;(d)基於上述類的包含列向量的矩陣x。
根據貝葉斯規則,輸出為乙個n維向量,它的第i列表示相應輸入向量x的第i列的類別。
clear all;clc;
mu = [1 -1];
sigma = [.9 .4; .4 .3];
r = mvnrnd(mu, sigma, 5);
s(:,:,1)=sigma;
s(:,:,2)=cov®;
p=[0.9 0.1];
n=5;
m=[1,0;-1,1];
[x,y]=generate_gauss_classes(m,s,p,n)
bayes_classifier(m,s,p,x)
function [x,y]=generate_gauss_classes(m,s,p,n)
[l,c]=size(m);
x=;y=;
for j=1:c
t=mvnrnd(m(:,j),s(:,:,j),fix(p(j)*n));
x=[x t』];
y=[y ones(1,fix(p(j)*n))*j];
endfunction z=comp_gauss_dens_val(m,s,x)
[l,q]=size(m);
z=(1/((2*pi)(1/2)*det(s)0.5))…
exp(-0.5(x-m)inv(s)(x-m)』);
function z=bayes_classifier(m,s,p,x)
[l,c]=size(m);
[l,n]=size(x);
for i=1:n
for j=1:c
t(j)=p(j)*comp_gauss_dens_val(m(:,j)』,…
s(:,:,j),x(:,i)』);
endend
[num,z(i)]=max(t);
end
貝葉斯分類器
首先在貝葉斯分類器之前先說貝葉斯理論 1 貝葉斯分類器 假設有n種可能的分類標記,即為y ij 是將乙個真實的標記cj的樣本誤分類為ci發損失,後驗概率p ci x 可獲得樣本x分類為ci的期望,則在樣本x上的 條件風險 是 我們需要最小化這個風險,也就是在每個樣本上選擇那個能使條件風險r c x ...
樸素貝葉斯分類器
p a b frac 類別 結果 a出現在特徵b樣本裡的概率 frac 假設乙個學校裡有60 男生和40 女生。女生穿褲子的人數和穿裙子的人數相等,所有男生穿褲子。隨機看到了乙個穿褲子的學生,那麼這個學生是女生的概率是多少?begin 特徵 穿褲子 類別 女生 p 女生 穿褲子 frac frac ...
樸素貝葉斯分類器
樸素貝葉斯分類器是用來做分類的乙個簡便方法。在貝葉斯公式的基礎上,引人條件獨立的假設,使得貝葉斯分類器具有簡單易行的優點和假設時常與實際不符的缺點。下面簡單介紹一下樸素貝葉斯分類器。首先規定一下資料格式 輸入的每乙個樣本為 其中 i 為樣本編號,x 為樣本的特徵,是乙個 n 維向量,x cdots ...