天天看點

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

1 簡介

線性分類器的原理 當樣本通過變換映射為特征向量以後,它就成為了特征空 間中的點。而由于每個類中的樣本會具有某些共性,即特征會 有不同,那麼屬于一個類的樣本集的點集,總是會與别的類的點 集相分離,那麼如果我們可以找到一個函數,能夠把不同的點集 相分離,那我們的任務也就解決了。由于判别函數法不依賴于 機率密度分布的統計學知識,我們可以了解為将樣本通過他們 的特征用幾何方法,将整個空間分解為不同類的子空間。 判别函數法可以根據邊界所代表的函數劃分為線性和非線 性分類器。由于線性分類器涉及數學方法較為簡單,實作更簡 便,我們選取了線性分類器作為本文研究方向。

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

編輯

2 部分代碼

function [y1,y2]=pcapro(data)
load template pattern;
mixedsig=[];
sum1=0;
for i=1:10
    sum1=sum1+pattern(1,i).num; %sum1為所有樣品類别的總數
    mixedsig=[mixedsig pattern(1,i).feature]; %所有樣品特征向量的集合
end
[Dim NumofSampl]=size(mixedsig);    %Dim傳回的是行數,NumofSampl傳回的是列數
dsig_cov=cov(mixedsig');
[pc,latent,tspuare]=pcacov(dsig_cov);
temp=0;
con=0;
m=0;
sum2=sum(latent);   %協方差矩陣所有特征值的和
for i=1:25
    if con<0.9
        temp=temp+latent(i);
        con=temp/sum2;  %累積貢獻率
        m=m+1;
    else
        break;  %跳出for循環
    end
end
pc(:,m+1:25)=[];%非主成分則為0
x=data*pc;
y=mixedsig'*pc;
y1=y';
y2=x';
en      

3 仿真結果

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

編輯

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

編輯

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

編輯

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

【手寫數字識别】基于貝葉斯和線性分類器實作手寫數字識别含Matlab源碼

編輯

4 參考文獻

[1]周佳敏. 基于貝葉斯網絡的手寫數字識别的研究與應用[J]. 科技視界, 2013(8):2.

[2]黃旻浩. 基于線性分類器的手寫數字識别[J]. 科學技術創新, 2019(33):2.

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

繼續閱讀