正態(tài)分布貝葉斯分類器的實(shí)現(xiàn)_第1頁
正態(tài)分布貝葉斯分類器的實(shí)現(xiàn)_第2頁
正態(tài)分布貝葉斯分類器的實(shí)現(xiàn)_第3頁
正態(tài)分布貝葉斯分類器的實(shí)現(xiàn)_第4頁
正態(tài)分布貝葉斯分類器的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、用為/4大挈實(shí)告課程名稱:模式識別實(shí)驗(yàn)項(xiàng)目:正態(tài)分布貝葉斯分類器的實(shí)現(xiàn)專業(yè)班級:計(jì)算機(jī)應(yīng)用技術(shù)1605班姓名:柯壬錠學(xué)號:姓1610262指導(dǎo)教師:李威成績:沈陽工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告(適用計(jì)算機(jī)程序設(shè)計(jì)類)專業(yè)班級:計(jì)算機(jī)應(yīng)用技術(shù)1605班學(xué)明 201班0262姓名:柯干錠實(shí)驗(yàn)名稱:正態(tài)分布貝葉斯分類器的實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?、 了解模式識別中的統(tǒng)計(jì)決策及貝葉斯分類器原理;2、 熟悉并會(huì)根據(jù)給出的相關(guān)數(shù)據(jù)設(shè)計(jì)正態(tài)分布貝葉斯分類器;3、 熟悉并會(huì)使用C+并調(diào)用OpenCV進(jìn)行相關(guān)程序的編寫。二、實(shí)驗(yàn)原理1、貝葉斯公式貝葉斯定理于1763年提出,它的表述為:設(shè)試驗(yàn)£的樣本空間為S,八為E 的事件

2、,Bi,B2,Be 為 S 的一個(gè)劃分,且 P(A)>0 , P(8少>0(/=l,2,c),則:ps 小P(4固)P(B,)_ P(4|BJP(B,)P)浜(姻)P-P(4)該公式稱為“貝葉斯公式”,其中:P(8稱為后驗(yàn)概率(Posterior Probability),表示事件4出現(xiàn)后,各不相容的 條件8,存在的概率,它是在結(jié)果出現(xiàn)后才能計(jì)算得到的,因此稱為“后驗(yàn)”;P(04)稱為類條件概率(Class-conditional Probability),表示在各條件8,存在 時(shí),結(jié)果事件4發(fā)生的概率。2、貝葉斯分類想如果把樣本屬于某個(gè)類別作為條件,樣本的特征向量取值作為結(jié)果,則

3、 模式識別的分類決策過程也可以看作是一種根據(jù)結(jié)果推測條件的推理過程。它 可以分為兩種類型:2.1確定性分類決策特征空間由決策邊界劃分為多個(gè)決策區(qū)域,當(dāng)樣本屬于某類時(shí),其特征向 量一定落入對應(yīng)的決策區(qū)域中,當(dāng)樣本不屬于某類時(shí),其特征向量一定不會(huì)落 入對應(yīng)的決策區(qū)域中:現(xiàn)有待識別的樣本特征向量落入了某決策區(qū)域中,則它 一定屬于對應(yīng)的類。圖1確定性決策分類圖2. 2隨機(jī)性分類決策特征空間中有多個(gè)類,當(dāng)樣本屬于某類時(shí),其特征向量會(huì)以一定的概率取 得不同的值;現(xiàn)有待識別的樣本特征向量取了某值,則它按不同概率有可能屬 于不同的類,分類決策將它按概率的大小劃歸到某一類別中。圖2隨機(jī)性分類決策圖3、最小錯(cuò)誤概

4、率貝葉斯分類器把代表模式的特征向量X分到C個(gè)類別(31,32,3c)中某一類的最基 本方法是計(jì)算在X的條件下,該模式屬于各類的概率,用符號 PQilx), PQzlx),,P(g|x)表示。比較這些條件概率,最大數(shù)值所對應(yīng)的 類別例就是該模式所屬的類。因此,基于貝葉斯最小錯(cuò)誤率的二類分類決策規(guī) 則可以表述為如下表達(dá)式。(P(3i|x) > P(co2|x) G a)1(P(a)2|x) > P(3ix)x G a)2同理,推廣到多類分類,比如說有M類時(shí),貝葉斯最小錯(cuò)誤率分類決策規(guī) 則可以做出如下表述:4、最小風(fēng)險(xiǎn)貝葉斯分類器由于客觀事物的復(fù)雜性,分類器做出各種判決時(shí)的風(fēng)險(xiǎn)是不一樣的

5、。例如 將癌細(xì)胞誤判為正常細(xì)胞的風(fēng)險(xiǎn)就比將正常細(xì)胞誤判為癌細(xì)胞的風(fēng)險(xiǎn)大。因 此,在貝葉斯分類器中引入了風(fēng)險(xiǎn)的概念。在實(shí)際應(yīng)用中根據(jù)具體情況決定各 種風(fēng)險(xiǎn)的大小,通常用一組系數(shù)句來表示。句表示分類器將被識別樣本分類為",而該樣本的真正類別為叼時(shí)的風(fēng)險(xiǎn)。設(shè)計(jì)最小風(fēng)險(xiǎn)分類器的基本思想是用 后驗(yàn)概率計(jì)算將x分類為的條件風(fēng)險(xiǎn)比較各Ri(x)的大小,與最小值對應(yīng)的類 別是分類的結(jié)果。評價(jià)這種分類器的標(biāo)準(zhǔn)是平均風(fēng)險(xiǎn),它的平均風(fēng)險(xiǎn)最小。5、正態(tài)分布模式的貝葉斯分類器許多實(shí)際的數(shù)據(jù)集:均值附近分布較多的樣本:距均值點(diǎn)越遠(yuǎn),樣本分布越少。此時(shí) 正態(tài)分布(高斯分布)是一種合理的近似。正態(tài)分布概率模型的優(yōu)點(diǎn)

6、:* 物理上的合理性。* 數(shù)學(xué)上的簡單性。Dea一u;wnKn4MmKsss* 口*UOH 丑 H wmMISs甥2:中翁怔sWKilhgMtt濟(jì)s;Ei居 前北斗界卻門塞卻追西.布的卻M工taElBE三 fEEIUiMgrttt:r 2 1 8-6 1圖3某大學(xué)男生身高分布數(shù)據(jù)圖圖中為某大學(xué)男大學(xué)生的身高數(shù)據(jù),紅線是擬合的密度曲線??梢?,其身 高應(yīng)服從正態(tài)分布。三、貝葉斯分類器的應(yīng)用貝葉斯網(wǎng)絡(luò)可充分利用屬性變量之間的依賴信息,因而應(yīng)用十分廣泛。主 要包括如下一些:醫(yī)療診斷、在線故障診斷、可靠性分析、軍事目標(biāo)識別、多目 標(biāo)跟蹤、生物信息學(xué)中的基因序列分析等。貝葉斯網(wǎng)絡(luò)也應(yīng)用于圖像處理,模 式識

7、別和機(jī)器視覺領(lǐng)域,這些應(yīng)用研究是很有前景的。貝葉斯分類器是用于分 類的貝葉斯網(wǎng)絡(luò),是進(jìn)行預(yù)測的有力工具。四、程序設(shè)計(jì)流程圖圖4程序設(shè)計(jì)流程圖五、實(shí)驗(yàn)內(nèi)容1、數(shù)據(jù)集在試驗(yàn)中我們選取了 230名文理科生的數(shù)學(xué)成績和語文成績,文件 studentgrade.txto其中第一位學(xué)生的數(shù)學(xué)成績,第二個(gè)為語文成績,第三個(gè)數(shù) 字代表文理科生(1代表文科生,2代表理科生)。我們假定:(所有課程的成 績范圍是0到100分)文科生的數(shù)學(xué)成績服從均值為60,標(biāo)準(zhǔn)差為10的正態(tài) 分布,文科生的語文成績服從均值為80,標(biāo)準(zhǔn)差為10的正態(tài)分布理科生的數(shù) 學(xué)成績服從均值為80,標(biāo)準(zhǔn)差為10的正態(tài)分優(yōu),理科生的語文成績服從均

8、值 為60,標(biāo)準(zhǔn)差為10的正態(tài)分布。分布范圍如下所示:圖5學(xué)生成績正態(tài)分布圖2、主要代碼本文用C+語言和調(diào)用OpenCV實(shí)現(xiàn)了對學(xué)生成績的分類,程序主要設(shè)計(jì) 部分代碼及說明:voidGenerateTrainData_two_feature(intsample countsoublemiul.doublesigmal.doublemiuZ.doublesigmaZat&train.data);voidMixTrainDataFromTwoClassesfMat&train_datalat&traindataZat&total train data,Mat&

9、;totaLtrain_data_response);intmain(intargc,char*argv)intfeatures count=2;intSampleCountl=200;訓(xùn)I練數(shù)據(jù)集1的樣本個(gè)數(shù)MatTrainDatal(SampleCountl/features_count/CV_32FCl);doublesigmal2=10;doublemiul2=80;GenerateTrainData-twO-featurefSampleCountmiulligmal l,miul2,sigmal2,TrainDatal);cout«endl<”文科生的成績分布規(guī)律&q

10、uot;vvendl;cout<<“數(shù)學(xué)成績的分布參數(shù):均值60,和標(biāo)準(zhǔn)差10"<<endl;coutvv”語文成績的分布參數(shù):均值80,和標(biāo)準(zhǔn)差10"«endl;intSampleCount2=200;MatTrainData2(SampleCount2,features_count,CV_32FCl);doublesigma21=10;doublemiu21=80;doublesigma22=10;doublemiu22=60;GeneateTrainData_two_feature(SampleCount2,miu21,sigma2

11、LmiuZZsigmaZZJTainDataZ);cout«endl<”理科生的成績分布規(guī)律"<<endl;coutv<“數(shù)學(xué)成績的分布參數(shù):均值80,和標(biāo)準(zhǔn)差10n«endl;coutv<“語文成績的分布參數(shù):均值60,和標(biāo)準(zhǔn)差10u«endl;intTotalSamplesCount=SampleCountl+SampleCount2;MatTotalSamplesDataJTotalSamplesCountJeatureS-COunt.CV-SiFCl);MixTrainDataFromTwoClasses(Train

12、Datal/TrainData2/TotalSamplesData,S amplesResponse);CvNormalBayesClassifiernb_classifier=CvNormalBayesClassifier 0;MatVarldx=Mat(); MatSampleldx=Mat(); nb_classifier.trai nfTotalSamplesDataamplesResponsearldxampleldxJalse);floattest sample302=56/78/63/90)/50/80/60/70/65/90/73/53/75/54/80/50/90/60h 9

13、3,50,56,69),76,69,59,96,5伉98,82,56,90,56),69,69,89,63,69,89,70,69,56,78,63,90,51,80,62,80,65,90,73,53,75,54,80,50,90,60,93,50;Mattest_samplel(302CV_32FCl,testsample);六、實(shí)驗(yàn)結(jié)果程序的運(yùn)行結(jié)果如下,F:vc2010bayesDebugbayes.exe0 011D 口X八夫值值 均均 律: 患數(shù)更,參分事 績貧力 成的的 的生ST文教語0 011均均律:翳數(shù)雪參分需 績奈的 的 生SXX理敵語主貝曼-二五g; 000034000

14、4 a 8980955565學(xué)7 . 一于6>630ha 53小於I; 09 , 7 9 , 9 9 6 8 6 6 9 6 6 9 9 5 5 6005350036696209566778995755896«* 9 9 ->3 9 «9 9 7 9 - 9 3998000034000 686798895556599063125350038675656677879文科生類別標(biāo)簽是,理科生類別標(biāo)簽是2圖6測試樣本運(yùn)行結(jié)果圖以數(shù)學(xué)語文聯(lián)合特征分類結(jié)果: F:vc2010bayesDebugbayes.exe教學(xué)語文朕合特征分類結(jié)果.ci;1;1;1;1;2;2;25

15、2;2;1;2;I ;1;2; 2;1;2;1;1; 1;1; 1;2;2;2;2;2J圖7數(shù)學(xué)語文聯(lián)合分類結(jié)果 以數(shù)學(xué)為特征的分類結(jié)果:F F:vc2010bayesDebugbayes.exe以數(shù)學(xué)成績?yōu)樘卣黧w分類結(jié)果:11;1;1:1;1;2;2;2;2;1;2;1; 1;2;2;1;2;1;2;2;2;2;2圖8數(shù)學(xué)分類結(jié)果圖以語文為特征的分港結(jié)果:Fj F:vc2010bayesDebugbayes.exe以語文成績?yōu)樘卣鞯姆诸惤Y(jié)果:C1;1;1;2;2; 2;2;2;2;2;1;1;2;2;2;2;1;2;1;1;1; 1;1;2; 2;2; 2;2圖9語文分類結(jié)果圖 判別分類器界

16、面:圖10分類器判別面在此判決面中藍(lán)色代表第1類:文科生,紅色代表第二類:判決面中從左往右的順序是語文成績依次增加,從上往下的順序是數(shù)學(xué)成績依次增加。在以數(shù)學(xué)為單一特征進(jìn)行類時(shí),有6個(gè)學(xué)生的身份被誤判,錯(cuò)誤率約為0.2: 以學(xué)生的語文成績?yōu)閱我惶卣鲗W(xué)生的身份進(jìn)行判別時(shí),有7個(gè)學(xué)生的身份被 誤判,錯(cuò)誤率約為0.23;而當(dāng)以數(shù)學(xué)和語文這兩個(gè)特征聯(lián)合對學(xué)生的身份進(jìn)行 分類時(shí),只有3個(gè)學(xué)生的身份被誤判,錯(cuò)誤率約為0.1??梢钥闯霎?dāng)以單一特征對學(xué)生身份進(jìn)行判別時(shí)所出現(xiàn)的誤判率明顯比多 特征聯(lián)合判別時(shí)出現(xiàn)的誤判率要高,這在一定的程度上驗(yàn)證了多特征同時(shí)考慮 時(shí)更能提高判別的正確率。七、總結(jié)由于時(shí)間及知識水

17、平有限,本次課題依然有很多不足之處,如樣本數(shù)據(jù)不 具有代表性,訓(xùn)練的樣本數(shù)量比較小,測試結(jié)果的錯(cuò)誤率在10%左右,這顯然 達(dá)不到實(shí)際應(yīng)用的要求,同時(shí)處理的數(shù)據(jù)維數(shù)太低(只是二維的)等,但通過 這次學(xué)習(xí),我受到很多啟發(fā),對正態(tài)模式的貝葉斯分類器也有了更深入的理解。附件A沈陽工業(yè)大學(xué)實(shí)驗(yàn)報(bào)告(適用計(jì)算機(jī)程序設(shè)計(jì)類)專業(yè)班級:計(jì)算機(jī)應(yīng)用技術(shù)1605班學(xué)號:201班0262姓名:柯于錠 本實(shí)驗(yàn)程序:#include <iostream>#include <opencv2/opencv.hpp>usingiiamespace std,usingnamespace cv,voidG

18、enerateTrainData_two_feature(int sainple_counts,doublemiu 1.double sigmal.double miu2.doublesigma2,Mat& train-data).voidMixTramDataFromTwoClasses(Mat& tran_datal,Mat& tran_data2,Mat<fc total_train_data, M at& total_tran-dataj-esponse), intmam(int argq chara argv)(int features_coun

19、t = 2»int SampleCountl = 200,M at TranData 1(S ampl eCountl, features-count, CV_3 2FC1);double sigmal 1 = 10vdoublenuul 1 =60,double siginal? = 10y double miul2 = 80,GenerateTranData_two_feature(SampleCountl,miull.sigmal l,nuul2,sigmal2,TranDatal);cout<<endl<<文科牛的成績分布規(guī)律"<<

20、;endl,cout一數(shù)學(xué)成績的分佰參數(shù):均值60,和標(biāo)準(zhǔn)110"<<endl,*語文成績的分俗參數(shù):均值80.和標(biāo)準(zhǔn)片10"«endl,int SampleCount2 = 200,M at TranData2(S ampl eCount2t features-count. CV_3 2FC1).假定理科生的數(shù)學(xué)成績的概率密度分布參數(shù):均值80,和標(biāo)準(zhǔn)層10double sigma21 = 10; double iniu21 = 80,假定理科生的語文成績的概率密度分布參數(shù):均值60,和標(biāo)準(zhǔn)度10double sigma22 = 10t double

21、miu22 = 60,調(diào)用該函數(shù)生成理科生特征訓(xùn)練集Gen erateTtamData_two_fuature(SampleCount2,mm2 l,si gma21,miu22,sigma22,TramData2); cout<<en(!<<理科生的成績分布規(guī)律"<<endl, coutvv1數(shù)學(xué)成績的分布參數(shù):均值80.和標(biāo)準(zhǔn)410"«endl, cout<<*語文成績的分俗參數(shù):均值60.和標(biāo)準(zhǔn)星10"«endl, int TotalSamplesCount = SampleCountl S

22、ainpleCo,jnt2, Mat TotalSamplesData(TotalSamplesCount>featuresj:ount.CV_32FCl), 卜介曲個(gè)類的iJl 練一木 Mat SaniplesResponse(TotalSamplesCount, l,CV_32FCl)t 。/ J 力;關(guān)£ .卜 MixTrainDataFromTwoClasses(TrainDatal,TranData2,TotalSaiiiplesData.SamplesResponse), CvN ormal B ay esCl as si fi er nb_classifier =

23、 CvNormalEayesClassifierO, / Mat VWdx = MatO;默認(rèn)使用樣本的所有特征訓(xùn)練分類忌共兩個(gè)特征Mat Sampleldx = Mat。,默認(rèn)使用樣本集合中的所有樣本訓(xùn)練分類匕nb_classifier train(TotalSamplesData.SamplesRespon$e»Varldx,SampleIdx, false), float testsainple 102= (30,50),(40,90),(50,60),(60,60),(65,70),(70,40),(75,30),(SO,50),(90,60),(100,100); Mat

24、test_sample 1(10,2,CV_32FC1,testsample).cout<<endl<<B10 個(gè)學(xué)牛:成績測試樣本:數(shù)學(xué):語文<<endl<<test_samplel<vendl, 8ut«endl<<文科生類別標(biāo)簽是1 ,理科生類別標(biāo)簽是2-«endl, M at test_result2 D(10tl.CV_32FCl);nb_classifier predict(test_sample 1, &test_result2 D);8ut<<*數(shù)學(xué)語文聯(lián)合特征分類紀(jì)果:y

25、stjesukZDvvendLCvNormalBayesClassifier nb_classifierl DO = CvNormalBayesClassifierQ. int featurejndex0l = (0), Mat FeatureIdxO(l>ltCV_32SCl.feature_indexO).nb_classifierlD0 tran(TotalSamplesData.SainplesResponse,FeatureIdxO»SampleIdx,false), Mat test_resultl D0(l 0,1 ,CV_3 2FC1)» nb-cla

26、ssifierlDO predict(test_sanplel,&test_resultlDO), cout< <1以數(shù)學(xué)成級為特征的分類結(jié)果:"< <test_re$ultlD0«endl,CvNormalBayesClassifier nb_classifierlDl = CvNormalBayesClassifierO. int feature_indexll = (1), Mat Featureldxl(l J.CV_SZSCl.featurejndexl), nb_classifierlDl tran(TotalSamplesDat

27、a>SamplesResponse>FeatureIdxl>SampleIdx.false); M at testresultlDl(10.1,CVJ 2FC1). nb_classifierlDl predict(test_samplel,(fctest_resultlDl), cout<<11以語文成績?yōu)樘卣鞯姆诸惤Y(jié)果:"<<test_resultlDl«endl, MatTestSamples(101a101>2,CVJ2FCl). for(int i=0;i<101»i*+) ( for(intj=0j

28、<101 (TestSaniples.at<float>(i*l 0= i.TestS aniples.) Mat TestSamplesResult(101*101,l.CV_32FCl), nb_classifier predictCTestSainples.&TestSainplesResiilt), Mat result jnapClOlJOLCV_SUCS), for(int i=0,1<1011+) ( for (int j=0 j<101 j+) ( int label = (mt)TestSaniplesResult at<float

29、>(is 101 Vec3b v = labd=”ec3b(255,0.0): V”3b(0,0,255); resxiltjnap at<Vec3b>(i,j) = v») namedWindow("分類彳;可決而,0), imshowC 分類得利決向 jesult_map), 8ut<vedl<<判決面中藍(lán)色代表第1類:文科生,紅色代表第二類:理科生y<endl.cout<u判決而中從左往小的喉字是語文成績依次增加,從上往卜的順序是數(shù)學(xué)成納依次增加H«endLwatKey(O), return I.)voidMi

30、xTraiiiDataFromTwoClasses(Mat& tran_datal,Mat& tran_data2»Mat& total_tram_data>Mat/ total_train_datajesponse) (Size szl = train_datal size。,Size sz2 = tran_data2 size。;CV_Assert(szl width=sz2 width), / l/ ill 每個(gè)類佗 il -1 /撲:獷用征抖憶:卜的 total_tran_data = Mat zeros(szl heigh計(jì)sz2 height

31、.szl width.CV_32FC1), total_train_data_response = Mat zeros(szl height+sz2 height, 1,CV_32FC1),int loops = std mm(szl heighlsz2 height),bool morel = (loops = sz2 height), intk = 0;for(int i=Oti <loopsj+)memcpy(total_train_dataptr<float>(k),tram_datal ptr<float>,szl widthfsjzeofCfloat)

32、. total_train_data_response at<float>(k) = 1, k+.memcpy(total_train_dataptr<float>(k),train_data2 ptr<float>(i),sz2 widths(sizeof(noat), total_train_data_response at<float>(k) = 2t k+,)if(szl height > sz2 height)(for(int i = sz2 height,i<szl height+)memcpy(total_train_dataptr<noat>(k),train_datal ptr<float>(i),szl widths(s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論