貝葉斯試驗(yàn)報(bào)告_第1頁(yè)
貝葉斯試驗(yàn)報(bào)告_第2頁(yè)
貝葉斯試驗(yàn)報(bào)告_第3頁(yè)
貝葉斯試驗(yàn)報(bào)告_第4頁(yè)
貝葉斯試驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、謝埼夬多HUNAN UNIVERSITY人工智能實(shí)驗(yàn)報(bào).題 目實(shí)驗(yàn)三:分類(lèi)算法實(shí)驗(yàn)學(xué)生姓名匿名學(xué)生學(xué)號(hào) 學(xué)13080702xx專(zhuān)業(yè)班級(jí)智能科學(xué)與技術(shù) 1302班指導(dǎo)老師袁講一.實(shí)驗(yàn)?zāi)康?了解樸素貝葉斯算法的基本原理;.能夠使用樸素貝葉斯算法對(duì)數(shù)據(jù)進(jìn)行分類(lèi).了解最小錯(cuò)誤概率貝葉斯分類(lèi)器和最小風(fēng)險(xiǎn)概率貝葉斯分類(lèi)器.學(xué)會(huì)對(duì)于分類(lèi)器的性能評(píng)估方法二、實(shí)驗(yàn)的硬件、軟件平臺(tái)硬件:計(jì)算機(jī)軟件:操作系統(tǒng):WINDOWS10應(yīng)用軟件:C,Java或者M(jìn)atlab相關(guān)知識(shí)點(diǎn):貝葉斯定理:尸1以舊)表示事件B已經(jīng)發(fā)生的前提下,事件A發(fā)生的概率,叫做事件B發(fā)生下事件A的條件概率,其基本求解公式為:丁二貝葉斯定理打通了

2、從P(A|B)獲得P(B|A)的道路。直接給出貝葉斯定理:1樸素貝葉斯分類(lèi)是一種十分簡(jiǎn)單的分類(lèi)算法,叫它樸素貝葉斯分類(lèi)是因?yàn)檫@種方法的思想真的很樸素,樸素貝葉斯的思想基礎(chǔ)是這樣的: 對(duì)于給出的待分類(lèi)項(xiàng),求解在此項(xiàng)出現(xiàn)的條件下各個(gè)類(lèi)別出 現(xiàn)的概率,哪個(gè)最大,就認(rèn)為此待分類(lèi)項(xiàng)屬于哪個(gè)類(lèi)別。樸素貝葉斯分類(lèi)的正式定義如下:1、設(shè)=和,f5為一個(gè)待分類(lèi)項(xiàng),而每個(gè)a為x的一個(gè)特征屬性。2、有類(lèi)別集合0 =的?,斯。3、計(jì)算P所|4辦口。4、如果P#)= wwP加*P則3,貝嚴(yán)然。那么現(xiàn)在的關(guān)鍵就是如何計(jì)算第 3步中的各個(gè)條件概率。我們可以這么做:1、找到一個(gè)已知分類(lèi)的待分類(lèi)項(xiàng)集合,這個(gè)集合叫做訓(xùn)練樣本集。

3、2、統(tǒng)計(jì)得到在各類(lèi)別下各個(gè)特征屬性的條件概率估計(jì)。即P的加P(聞惻1Pgm/LrP&Jja);;尸,J P(即的)L: I3、如果各個(gè)特征屬性是條件獨(dú)立的,則根據(jù)貝葉斯定理有如下推導(dǎo):尸幅=因?yàn)榉帜笇?duì)于所有類(lèi)別為常數(shù),因?yàn)槲覀冎灰獙⒎肿幼畲蠡钥伞S忠驗(yàn)楦魈卣鲗傩允菞l件獨(dú)立mP物)尸(然)=尸(國(guó)|贄)產(chǎn)(聞防)防)。) = P5)尸(*加)的,所以有:Qi整個(gè)樸素貝葉斯分類(lèi)分為三個(gè)階段:第一階段:準(zhǔn)備工作階段,這個(gè)階段的任務(wù)是為樸素貝葉斯分類(lèi)做必要的準(zhǔn)備,主要工作是根據(jù) 具體情況確定特征屬性,并對(duì)每個(gè)特征屬性進(jìn)行適當(dāng)劃分,然后由人工對(duì)一部分待分類(lèi)項(xiàng)進(jìn)行分類(lèi), 形成訓(xùn)練樣本集合。這一階段的輸入

4、是所有待分類(lèi)數(shù)據(jù), 輸出是特征屬性和訓(xùn)練樣本。這一階段是整 個(gè)樸素貝葉斯分類(lèi)中唯一需要人工完成的階段, 其質(zhì)量對(duì)整個(gè)過(guò)程將有重要影響,分類(lèi)器的質(zhì)量很大 程度上由特征屬性、特征屬性劃分及訓(xùn)練樣本質(zhì)量決定。第二階段:分類(lèi)器訓(xùn)練階段,這個(gè)階段的任務(wù)就是生成分類(lèi)器,主要工作是計(jì)算每個(gè)類(lèi)別在訓(xùn)練 樣本中的出現(xiàn)頻率及每個(gè)特征屬性劃分對(duì)每個(gè)類(lèi)別的條件概率估計(jì),并將結(jié)果記錄。其輸入是特征屬性和訓(xùn)練樣本,輸出是分類(lèi)器。這一階段是機(jī)械性階段,根據(jù)前面討論的公式可以由程序自動(dòng)計(jì)算完 成。第三階段:應(yīng)用階段。這個(gè)階段的任務(wù)是使用分類(lèi)器對(duì)待分類(lèi)項(xiàng)進(jìn)行分類(lèi),其輸入是分類(lèi)器和待 分類(lèi)項(xiàng),輸出是待分類(lèi)項(xiàng)與類(lèi)別的映射關(guān)系。這一

5、階段也是機(jī)械性階段,由程序完成。準(zhǔn)備工作階段應(yīng)用階段確定特征屬性分類(lèi)器訓(xùn)練階段三、實(shí)驗(yàn)內(nèi)容及步驟實(shí)驗(yàn)內(nèi)容:A.利用貝葉斯算法進(jìn)行數(shù)據(jù)分類(lèi)操作,并統(tǒng)計(jì)其預(yù)測(cè)正確率,數(shù)據(jù)集:汽車(chē)評(píng)估數(shù)據(jù)集(learn作為學(xué)習(xí)集,test作為測(cè)試集合)B.隨機(jī)產(chǎn)生10000組正樣本和20000負(fù)樣本高斯分布的數(shù)據(jù)集合(維數(shù)設(shè)為二維),要求正樣 本:均值為1;3,方差為2 0;0 2;負(fù)樣本:均值為10;20,方差為10 0;0 10.先驗(yàn)概 率按樣本量設(shè)定為1/3和2/3.分別利用最小錯(cuò)誤概率貝葉斯分類(lèi)器和最小風(fēng)險(xiǎn)概率貝葉斯分 類(lèi)器對(duì)其分類(lèi)。(假設(shè)風(fēng)險(xiǎn)程度正樣本分錯(cuò)風(fēng)險(xiǎn)系數(shù)為0.6 ,負(fù)樣本分錯(cuò)風(fēng)險(xiǎn)為0.4,該設(shè)定

6、僅用于最小風(fēng)險(xiǎn)分析) 相關(guān)概念:貝葉斯法則,先驗(yàn)概率,后驗(yàn)概率,最大后驗(yàn)概率.貝葉斯法則機(jī)器學(xué)習(xí)的任務(wù):在給定訓(xùn)練數(shù)據(jù)D時(shí),確定假設(shè)空間 H中的最佳假設(shè)。最佳假設(shè):一種方法是把它定義為在給定數(shù)據(jù)D以及H中不同假設(shè)的先驗(yàn)概率的有關(guān)知識(shí)下的最可能假設(shè)。貝葉斯理論提供了一種計(jì)算假設(shè)概率的方法,基于假設(shè)的先驗(yàn)概率、給定假設(shè)下觀察到不同數(shù)據(jù)的概率以及觀察到的數(shù)據(jù) 本身。.先驗(yàn)概率和后驗(yàn)概率用P(h)表示在沒(méi)有訓(xùn)練數(shù)據(jù)前假設(shè) h擁有的初始概率。P(h)被稱(chēng)為h的先驗(yàn)概率。先驗(yàn)概率反映了關(guān)于 h是一正確 假設(shè)的機(jī)會(huì)的背景知識(shí)如果沒(méi)有這一先驗(yàn)知識(shí),可以簡(jiǎn)單地將每一候選假設(shè)賦予相同的先驗(yàn)概率。類(lèi)似地,P(D)表

7、示訓(xùn)練數(shù)據(jù)D的先驗(yàn)概率,P(D|h)表示假設(shè)h成立時(shí)D的概率。機(jī)器學(xué)習(xí)中,我們關(guān)心的是 P(h|D),即給定D時(shí)h 的成立的概率,稱(chēng)為 h的后驗(yàn)概率。.貝葉斯公式貝葉斯公式提供了從先驗(yàn)概率P(h)、P(D)和P(D|h)計(jì)算后驗(yàn)概率P(h|D)的方法p(h|D尸P(D|H)*P(H)/P(D)P(h|D)隨著P(h)和P(D|h)的增長(zhǎng)而增長(zhǎng),隨著 P(D)的增長(zhǎng)而減少,即如果 D獨(dú)立于h時(shí)被觀察到的可能性越大, 那么D對(duì)h的支持度越小。.極大后驗(yàn)假設(shè)學(xué)習(xí)器在候選假設(shè)集合 H中尋找給定數(shù)據(jù) D時(shí)可能性最大的假設(shè) h, h被稱(chēng)為極大后驗(yàn)假設(shè)(MAP確定MAP勺方法 是用貝葉斯公式計(jì)算每個(gè)候選假設(shè)

8、的后驗(yàn)概率,計(jì)算式如下 :h_map=argmax P(h|D)=argmax (P(D|h)*P(h)/P(D)=argmax P(D|h)*p(h) (h屬于集合 H)C.編寫(xiě)一個(gè)貝葉斯分類(lèi)器。輸入為:均指向量、先驗(yàn)概率、協(xié)方差矩陣、輸入學(xué)習(xí)數(shù)據(jù)X,測(cè)試數(shù)據(jù)類(lèi)別XLABEL測(cè)試數(shù)據(jù)Y.輸出為Y對(duì)應(yīng)的類(lèi)別。(選做)。四、實(shí)驗(yàn)步驟:.仔細(xì)閱讀并了解實(shí)驗(yàn)數(shù)據(jù)集;.使用任何一種熟悉的計(jì)算機(jī)語(yǔ)言(比如C,Java或者matlab)實(shí)現(xiàn)樸素貝葉斯算法;.利用樸素貝葉斯算法在訓(xùn)練數(shù)據(jù)上學(xué)習(xí)分類(lèi)器,訓(xùn)練數(shù)據(jù)的大小分別設(shè)置為:前100個(gè)數(shù)據(jù), 前200個(gè)數(shù)據(jù),前500個(gè)數(shù)據(jù),前700個(gè)數(shù)據(jù),前1000個(gè)數(shù)據(jù)

9、,前1350t數(shù)據(jù);.利用測(cè)試數(shù)據(jù)對(duì)學(xué)習(xí)的分類(lèi)器進(jìn)行性能評(píng)估;.統(tǒng)計(jì)分析實(shí)驗(yàn)結(jié)果并上交實(shí)驗(yàn)報(bào)告;A源代碼:package Bayes;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.math.BigDecimal;import java.util.Vector;import Bayes.NaiveBayesTool.Pr

10、operty;publicclass NaiveBayesTool /*中明全局變量/前面是自己的屬性,后面是value的屬性* *1int testTotal = 0; / 訓(xùn)練樣本數(shù)量int predictTotal = 0; / 測(cè)試樣本的數(shù)據(jù)int predictSucess = 0; / 預(yù)測(cè)成功的數(shù)量/存儲(chǔ)數(shù)量publicintbuy=newint 44;/vhigh,high,med,lowpublicint maint =newint 44; /vhigh,high,med,lowpublicintdoor =newint 44;/2,3,4,5morepublicintper

11、son =newint 34;/2,4,morepublicint lug_boot =newint 34; /small ,med,bigpublicintsafe =newint 34;/low,med,highpublicint ClassValues =newint 4; /unacc,acc, good,vgoodString ClassValueName = unacc , acc , good , vgood ;/存儲(chǔ)概率float ClassValue_gl = newfloat 4; / unacc-0_acc-_1_good-2 vgood-3float buy_Vlaue

12、_gl = newfloat 44;/ 前面是自己的屬性,后面是 value 的屬性float maint_Value_gl = newfloat 44;float door_Value_gl = newfloat 44;float person_Value_gl = newfloat 34;float lugboot_Value_gl = newfloat 34;float safe_Value_gl = newfloat 34; /* * 主函數(shù) */publicstaticvoid main(String args ) throws lOException NaiveBayesTool

13、NBayes=new NaiveBayesTool();NBayes.ReadFile( learn.txt ); / 獲取訓(xùn)練樣本NBayes.Calculated_probability();/計(jì)算概率NBayes.TestData(); /導(dǎo)入測(cè)試樣本數(shù)據(jù)NBayes.show(); / 輸出結(jié)果)/*汽車(chē)屬性類(lèi)* */publicclass Property汽車(chē)有6個(gè)屬性,每個(gè)屬性都有幾種類(lèi)別,根據(jù)這 6個(gè)屬性來(lái)判斷汽public public public public public public public public publicString String String St

14、ring String String String String口buying ; /vhigh,high,med,low maint ; /vhigh,high,med,lowdoors ; /2,3,4,5morepersons ; /2,4,more lug_boot ; /small ,med,big safety ; / low,med,highClassValues ; /unacc,acc, good,vgoodPredictResultnew String5; / 記錄預(yù)測(cè)結(jié)果Property(String b,String m,String d,String p,String

15、 l ,String s,String車(chē)的性?xún)r(jià)比Classvalue如何,c)buying =b; maint =m doors =d;persons =p; lug_boot =l ; safety =s;ClassValues =c;);Vector Data =new Vector。;/ 存儲(chǔ)數(shù)據(jù)Vector DataTest =new Vector。;/ 存儲(chǔ)測(cè)試數(shù)據(jù)/*文件讀寫(xiě)獲取訓(xùn)練樣本* */publicvoid ReadFile(Stringfilename ) throws IOExceptionBufferedReader br =new BufferedReader( n

16、ew FileReader( filename ); String temp=null ;temp=br .readLine();String 口Propertywhile (temp != nullstr =temp.split(str = null ;TempClass = null ;),);TempClass =new Property( str 0, str 1, str 2, str 3, str 4, str 5, str 6);Statistics( TempClass); / 統(tǒng)計(jì)個(gè)數(shù)testTotal +;temp=br .readLine();) br .close();

17、 ) /*統(tǒng)計(jì)每一項(xiàng)的個(gè)數(shù) vhigh,vhigh,2,2,small,low,unacc*/car)publicvoid Statistics(Property for (int i =0; i 4; i +)if (car . ClassValues .equals( ClassValueName i ) ClassValues i +;/vhigh,high,med,lowif ( car . buying .equals( vhigh ) buy 0 i +;elseif (car . buying .equals( high ) buy 1 i +;elseif (car . buy

18、ing .equals( med) buy 2 i +;else buy 3 i +;/vhigh,high,med,lowif ( car . maint .equals( vhigh ) maint 0 i +;elseif (car . maint .equals( high ) maint 1 i +;elseif (car . maint .equals( med) maint 2 i +;else maint 3 i +;/2,3,4,5moreif ( car . doors .equals( 2 ) door 0 i +;elseif (car . doors .equals(

19、 3 ) door 1 i +;elseif (car . doors .equals( 4 ) door 2 i +;else door 3 i +;/2,4,moreif (car . persons .equals( 2 ) person 0 i +;elseif (car . persons .equals( 4 ) person 1 i +;else person 2 i +;/small ,med,bigif (car . lug_boot .equals( small ) lug_boot 0 i +;elseif (car . lug_boot .equals( med) lu

20、g_boot 1 i +;else lug_boot 2 i +;/ low,med,highif (car . safety .equals( low ) safe 0 i +;elseif (car . safety .equals( med) safe 1 i +;else safe 2 i +;/*計(jì)算概率*/publicvoid Calculated_probability()for (int i =0; i ClassValues . length ; i +)ClassValue_gl i =( float ) ClassValues i / testTotal ;for (in

21、t i =0; i buy_Vlaue_gl . length ; i +)for (int j =0; j buy_Vlaue_gl 0. length ; j +) buy_Vlaue_gl i j =( float ) buy i j / ClassValues j ; maint_Value_gl i j =( float ) maint i j / ClassValues j ; door_Value_gl i j =( float ) door i j / ClassValues j ;for (int i =0; i person_Value_gl . length ; i +)

22、for (int j =0; j person_Value_gl 0. length ; j +) person_Value_gl i j =( float ) person i j / ClassValues j ;lugboot_Value_gl i j =( float ) lug_boot i j / ClassValues j ; safe_Value_gl i j =( float ) safe i j / ClassValues j ;)/*獲取測(cè)試數(shù)據(jù)*/publicvoid TestData() throws lOException(BufferedReader br =ne

23、w BufferedReader( new FileReader( test.txt );String temp;temp=br .readLine();String str = null ;Property Car = null ;while (temp!= null )str =temp.split( ,);Car=new Property( str 0, str 1, str 2, str 3, str 4, str 5, str 6);predictTotal +;Data .addElement( Car);calculate( Car);temp=br .readLine();)/

24、*對(duì)分類(lèi)器進(jìn)行性能測(cè)試,判斷其成功率為多少paramcar */publicvoid calculate(Property car)/ unacc,acc,good,vgood, P(yi)-ClassValueTotal_glP(x|y歸ow,vhighA2small,low,unacc 第一條float itemGl ; / 每一條的概率int b, m, d, p, l , s;b = m = d = p = l = s = -1;float MaxGl = 0;if ( car . buying .equals( vhigh ) b = 0;elseif( car. buying .e

25、quals( high ) b = 1;elseif( car. buying .equals( med) b = 2;else b = 3;if ( car . maint .equals( vhigh ) m = 0;elseif( car. maint .equals( high ) m = 1;elseif( car. maint .equals( med) m = 2;else m = 3;if ( car . doors .equals( 2 ) d = 0;elseif( car. doors .equals( 3 ) d = 1;elseif( car. doors .equa

26、ls( 4 ) d = 2;else d = 3;if ( car . persons .equals( 2 ) p = 0;elseif ( car. persons .equals( 4 ) p = 1;else p = 2;if ( car . lug_boot .equals( small ) l = 0;elseif ( car. lug_boot .equals( med) l = 1;else l = 2;if ( car . safety .equals( low ) s = 0;elseif ( car. safety .equals( med) s= 1;else s =

27、2;int t = 0; /記錄最大概率的下標(biāo)int i ;+) / 計(jì)算在 unacc,acc,good,vgood 下(ClassValue_gl i ),(buy_Vlaue_gl b i ),(maint_Value_gl 向 i ),(door_Value_gl d i ),(person_Value_gl p北 i ),(lugboot_Value_gl l i ), (safe_Value_gl s i ),;j +) / 加:a.add(b);for ( i = 0; i ClassValue_gl . length ; i的概率itemGl = 0;BigDecimal口 b

28、igDecimal = new BigDecimal(Float.toStringnew BigDecimal(Float.toStringnew BigDecimal(Float.toStringnew BigDecimal(Float.toStringnew BigDecimal(Float.toStringnew BigDecimal(Float.toStringnewBigDecimal(Float. toString ;for ( int j = 1; j bigDecimal . length 除:a.divide(b,2);/2為精度取值bigDecimal 0 = bigDec

29、imal 0.multiply( bigDecimal j ); /multiply 乘 itemGl = bigDecimal 0.floatValue();car . PredictResult i = itemGl + t;if ( MaxGlitemGl ) MaxGl = itemGl ; t = i ;/判斷結(jié)果是否正確if ( car . ClassValues .equals( ClassValueName t ) / 預(yù)測(cè)結(jié)果和開(kāi)始給定的結(jié)果car . PredictResult i = true; predictSucess +; elsecar . PredictResu

30、lt i = false;publicvoid show()for ( int i =0; i predictTotal ; i +) Property c = Data .get( i );for ( int j = 0; j c. PredictResult . length ; j +) System. out .print( c. PredictResult j + t);System. out .println();/分類(lèi)器的準(zhǔn)確率 float t = ( float ) predictSucess / predictTotal t=t *10000/100;System. out

31、.println( n 分類(lèi)器的準(zhǔn)確率為:+ t + %);4,714383E-50.00.0e.0true8.462725E-5。.日日.日。,修true5.792265E-5。,日0.00.6true4.3630051-50.00.00.0trueG.25774GE S0.00.00.0true4.283079BE-53.97白1642:3白.0.3f else3,226216E-S5.609697E-50 . 0G.0false5.44S931E-S0.0true3.727437E-5&.991B902E-59.00.9false2.807e798E-5S.452969E-5G.00.0false&.&t PU3.M96155t-b6.971799E-5必修財(cái)false2.55S4USE-59.B361816E-50.06.0false&.35L1456E-5。.日0.00.0true4.347006E-53.S56278E-50.06.0false3.2743683E-55.432175E-50, 00.0fdlse5.5272132E-50.0true3.78307E 55.0G1789E-50. 00.0felae2.8495853E 5&,lS547E-50.06,0flse5J152467E &。0.00.0trjc3.591102E-5&,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論