試驗(yàn)三:分類算法試驗(yàn)教學(xué)提綱_第1頁
試驗(yàn)三:分類算法試驗(yàn)教學(xué)提綱_第2頁
試驗(yàn)三:分類算法試驗(yàn)教學(xué)提綱_第3頁
試驗(yàn)三:分類算法試驗(yàn)教學(xué)提綱_第4頁
試驗(yàn)三:分類算法試驗(yàn)教學(xué)提綱_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、HUNAN UNIVERSIT Y人工智能實(shí)驗(yàn)報(bào)告題 目實(shí)驗(yàn)三:分類算法實(shí)驗(yàn)學(xué)生姓名 蒙壽偉學(xué) 生學(xué)號(hào)201408070120專業(yè)班級(jí)智能科學(xué)與技術(shù) 1401班扌旨導(dǎo)老師 袁進(jìn)日 期2017年5月15日一. 實(shí)驗(yàn)?zāi)康?. 了解樸素貝葉斯算法和決策樹算法的基本原理;2. 能夠使用樸素貝葉斯算法或者決策樹算法對(duì)數(shù)據(jù)進(jìn)行分類3. 學(xué)會(huì)對(duì)于分類器的性能評(píng)估方法二、實(shí)驗(yàn)的硬件、軟件平臺(tái)硬件:計(jì)算機(jī)軟件:操作系統(tǒng): WINDOWS2000應(yīng)用軟件:C,Java或者M(jìn)atlab、實(shí)驗(yàn)相關(guān)知識(shí)貝葉斯定理:P(B|A) P(APBAP(B)P(A)是A的先驗(yàn)概率,之所以稱為“先驗(yàn)”是因?yàn)樗豢紤]任何B方面的因素

2、。P(A|B)是已知B發(fā)生后A的條件概率,也由于得自B的取值而被稱作 A的后驗(yàn)概率。P(B|A)是已知A發(fā)生后B的條件概率,也由于得自A的取值而被稱作 B的后驗(yàn)概率。P(B)是B的先驗(yàn)概率,也作標(biāo)淮化常量(normalizing constant)。以第一條數(shù)據(jù)為例:vhigh,vhigh,2,2,small,low,u naccClassValues: unacc, acc, good, vgood 對(duì)應(yīng) P(Bi)。( i=0,1,2,3 )(i=0,1,2,3 )buying: vhigh, high, med, low. maint: vhigh, high, med, low. do

3、ors:2, 3, 4, 5more.Pers on s:2, 4, more. lug_boot: small, med, big. safety: low, med, high.六個(gè)屬性相互獨(dú)立P(A0|B0)*P(A1|B0)*P(A5|B0)P(A|B0)分別算出P(B0| A)P( B2 | A)P(A| B0)P(B0)P(B1| A) P(A|B1)P(B1)P(A)P(A)P(A|B2)P(B2)P(B3|A) P(A|B3)P(B3)P(A)P(A)取其中的最大值,其中,P(A)的值相同,可以不算出來If(P(B|A)最大=測試樣例.ClassValues) return t

4、rue;Else return false;四、實(shí)驗(yàn)內(nèi)容及步驟實(shí)驗(yàn)內(nèi)容:利用貝葉斯算法或者決策樹算法進(jìn)行數(shù)據(jù)分類操作數(shù)據(jù)集:汽車評(píng)估數(shù)據(jù)集(見附錄)實(shí)驗(yàn)步驟:1 仔細(xì)閱讀并了解實(shí)驗(yàn)數(shù)據(jù)集;2使用任何一種熟悉的計(jì)算機(jī)語言(比如C,Java或者matlab)實(shí)現(xiàn)樸素貝葉斯 算法或者決策樹算法;3.利用樸素貝葉斯算法或者決策樹算法在訓(xùn)練數(shù)據(jù)上學(xué)習(xí)分類器 ,訓(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ù),前1350個(gè)數(shù)據(jù);4利用測試數(shù)據(jù)對(duì)學(xué)習(xí)的分類器進(jìn)行性能評(píng)估;5 統(tǒng)計(jì)分析實(shí)驗(yàn)結(jié)果并上交實(shí)驗(yàn)報(bào)告;<1>定義和初始化變量9in

5、t coun-tTrain = Q; "繚樣本數(shù)目10int coontlst匚Q;"洌試樣本僉昌11int= S打更試祥本正確的數(shù)豈121 31 n七countF=100; /訓(xùn)練和潴試的分異 p14string CVnaite 4 = *unaGC,r, *aGGrr r;15int Classalues ; /unacG, dec, ffood, viffood16intH;上”.17int jraarnt 4 4 ; ;/ 訕丄qhr highrlav.ISint d.QQJ3 1;/2, 3# 幻 5more.19int personate4;/£z 4

6、f more.20int ln boat 4 4;m®dr i?ig.21int safety (4 )(41;m-sd, AigA,2223float ClassValu-csl 4; /ua(3iSG,goodr vgood2電floa-t: ;/xr/iijfi,Jied, Iok.25float malntL勺:乍;/n:®d lotf.26float ioorsL:4;f/2r 3r 4r Emor°.27floa-t petaoiisL 4 4 j/£,zhqk.23float lug_bootL4 4;medr big.23float 5d

7、.£eyL(J 4;/Lgv sed, bigiiAH<2>統(tǒng)計(jì)并計(jì)算條件概率P(Ai|Bi),(i=0,1,2,3),當(dāng)訓(xùn)練數(shù)據(jù)比較小時(shí)會(huì)出現(xiàn)Bi等于0的情況,這時(shí)P(Ai|Bi)=nan,所以可以加一個(gè)判斷,當(dāng) P(Ai|Bi)<0或 P(Ai|Bi)>1 時(shí),讓 P(Ai|Bi)=0.void.(stnrzg string b t string c r string d, s trinq e , sprang f , atrmg gj /cout«a«,f <,J«b«,r" "«

8、;e«r, rt«f«" "«g«enal;for(int i=Q;;i+-'if tg=-CVnarMiJClasavaiueaij+;/bvyirahi石禮 nt出/ low.i f(c一-"vhighn buyLrgC4 +jelse ir&u/inq1Lij+f?else if (&匸工加応也圧rt) buvina2 |il+f«lsc if盤二二丹丄心切卄)buying3 |ij 4+;/ni=Xziti viiln r Righr ziedz low.i f C fc=

9、"vhiahh maint U1 1 二 HH-;elae 1 f fc = "hLg?i"】u.ai.nt 二| i 44 ;else irmaint i J 1J+;else if t=T1lcwTTj maint 3 il+;/dcffrj; 2f 3, 4f Fsorc1 r(c""2) aoorsQ Li+;else ifdooxsll Li +;nl3G if c=p4w) dcoxa2i * + t else floors (3 i -i-+;/cei'cns i4r more.i f (ci= rt2 *) par-ec

10、nis fl i - + ;else if (d+l4* ) persons L 1J+;«lse nersona 21 T-J+h-;/Iufir_Jbc?ot; smslLf iEdr bigrif (e=n5MllM lug fcoDt (0 1 +;else ife=hrr."E】 lu toatfl i -+:olafi i£c"big") Lug_bsct2(a-4;/sif*tyt Lovf JE*d, hich.if (f"low") safetyFO i+;else 1£ (f-=-t1medw)

11、 af&tyri i4+;else it (2*!fi丄宕且11 satety2 J li+*;break:ioEMO l"亠工竇啣蘆書護(hù)他駅Jf砒沖傅甘甘 midi C it LIP 1 j 1 jf'j 便壬& fyi、£1 LqX l"il 1-Cl.Jlt * -jCl IH9!-"«Jl UtVL EU - i riMtl 匚丄“典量丄" 117 孔 WTf罷u 尊淫蘭磐是F洋1 ylJFf 7金:蟒W r 5 /蘭崔 F f-sj yi.Pj(£qb (ladt AflpixlfcpJL-

12、zk /74F*f iE ifi*rar (iHits rti£jiQ7Li!l. J trimitl buying 111 IJtlI; II IIriylDgLlj J<C 11 iraylcgli1 J>I I Brt/ingLUJ 3-?ub«LA| j| * |flMt) maim a j i| jj/CXu«V*lw»#| j j11 urtLi.l j|*&| auhlfiicU3r9lJi | | f Liut) dnocA i. 13 /CJ.EU3V*luk»|Jl<0 11 QnoirnL|>

13、;aoeir3LilJ (JlsfZ卜呻95UID Lfas- Sjnfc iO r i <3j x + t - r"賽罩F 皿 yxJf Dr (lElt =D#J<<: jl-4-4-1 I爼"2見“】廿1 If!丸L 能MAJ口血 l'g_b-i5DTLi |j (-Eloat l_g 6qcti' J/ 3«J!eTL± J - riiaatI jar-etyii| | j/DlMSai-ea Ij|;t£n 於罪曲u叮巧limpmwj(3JO | l&serllilnffrat>aoTL

14、i j-CIE Isatet-yLlir 13 30 I I Mf-e&yZ ij id J>ll auSetrLi1 i j !-?<3>計(jì)算 pQ | A)P(A|Bi)P(Bi)(四個(gè)里面取最大) P(A)float 3i;float MakS=;1st t-J;打h岸芒并瓦AJ兇砂盤:崽惟forint i-0:i<4:i*-> (|i* ULficiiKj lj acartL/d |i pericaiLip ij "ij *fa£*C7L.i i竄 cia.J5Vaiutsi ii£ KoxD < 3i 4

15、63;iK4»Ei = BU)i ± | 囂王sjle t | =51) return troe jelss retzrn falaez<4>實(shí)驗(yàn)結(jié)果D:2017舂黑程'.二智能冥驗(yàn)三旳q.exe抄1 練樣本 countTiralivlaO 兩刊正命 c 口 untT s st Sue=1110 *則弒樣本 c tin tTest.51622 產(chǎn)確率%: 68. 1818* 恤練樣本 countTrain=2O0阿出 哮本c仃untT u占t二15 2呂 桂確率頭h 66. 0995»訓(xùn)練樣本countTr/in韋00 F頁卿正 cotmtTe

16、stSii.?=782 則試樣本 countTest.=L228 惦禍窣和63.6908k訓(xùn)練樣本 countTrain=700 TlEOcountTestSiic=689 側(cè)弒樣 countTest=L028 鹿確率頭h 67. 0233»訓(xùn)練樣本 countTrain=1350 F頁涮工褊c 口 un tT曲t £ tic二戈6 0 仙弒樣 coun-tTest=378 惟確率為:68. 783n四、思考題:1.兩種算法在訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集上的性能一致嗎?哪個(gè)比較好?決策樹(decision tree )是一個(gè)樹結(jié)構(gòu)(可以是二叉樹或非二叉樹)。其每個(gè)非葉節(jié)點(diǎn)表 示一

17、個(gè)特征屬性上的測試,每個(gè)分支代表這個(gè)特征屬性在某個(gè)值域上的輸出,而每個(gè)葉節(jié)點(diǎn)存 放一個(gè)類別。使用決策樹進(jìn)行決策的過程就是從根節(jié)點(diǎn)開始,測試待分類項(xiàng)中相應(yīng)的特征屬性, 并按照其值選擇輸出分支,直到到達(dá)葉子節(jié)點(diǎn),將葉子節(jié)點(diǎn)存放的類別作為決策結(jié)果。不同于貝葉斯算法,決策樹的構(gòu)造過程不依賴領(lǐng)域知識(shí),它使用屬性選擇度量來選擇將元組 最好地劃分成不同的類的屬性。所謂決策樹的構(gòu)造就是進(jìn)行屬性選擇度量確定各個(gè)特征屬性之間的拓?fù)浣Y(jié)構(gòu)。決策樹的成功率為:61.80372% ,貝葉斯成功率為:68.7831% (貝葉斯更好一點(diǎn))相比貝葉斯算法, 決策樹的優(yōu)勢在于構(gòu)造過程不需要任何領(lǐng)域知識(shí)或參數(shù)設(shè)置,因此在實(shí)際應(yīng)用中

18、,對(duì)于探測式的知識(shí)發(fā)現(xiàn),決策樹更加適用。2.提出一種提高分類器性能的方法并通過實(shí)驗(yàn)驗(yàn)證。五、實(shí)驗(yàn)心得通過這次實(shí)驗(yàn)加深了我對(duì)樸素貝葉斯的認(rèn)識(shí),學(xué)會(huì)了用樸素貝葉斯算法解決 具體的問題。樸素貝葉斯分類是一種十分簡單的分類算法,對(duì)于給出的待分類項(xiàng), 求解在此項(xiàng)出現(xiàn)的條件下各個(gè)類別出現(xiàn)的概率, 哪個(gè)最大,就覺得此待分類項(xiàng)屬 于哪個(gè)類別。樸素貝葉斯的原理決定了其成功率不可能太高,但是樸素貝葉斯的 簡單易用性使得其在一些日常生活中應(yīng)用廣泛。附件(代碼)#in clude<iostream> #i nclude<cstdlib>#in clude<cstri ng>#in

19、clude<vector> #in clude<fstream>#include<stdio.h> using namespace std;int countTrain = 0;/訓(xùn)練樣本數(shù)目int countTest = 0;/測試樣本數(shù)目int countTestSuc = 0;/測試樣本正確的數(shù)目int countF=100; / 訓(xùn)練和測試的分界string CVname4="unacc","acc","good","vgood" int ClassValues4; /u

20、nacc, acc, good, vgood int buying44; /vhigh, high, med, low. int maint44; / vhigh, high, med, low. int doors44; /2, 3, 4, 5 persons44; /2, 4, lug_boot44; /small, med, big. int safety44; /low, med, high.float ClassValuesL4; /unacc, acc, good, vgood float safetyL44; /low, med, high.fl

21、oat buyingL44;float maintL44;float doorsL44;float personsL44;float lug_bootL44;/vhigh, high, med, low. / vhigh, high, med, low. /2, 3, 4, 5more./2, 4, more./small, med, big./ 統(tǒng)計(jì)個(gè)數(shù)void Tonji(string a,string b,string c,string d,string e,string f,string g)/cout<<a<<" "<<b<

22、;<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<endl; for(int i=0;i<4;i+)if(g=CVnamei)ClassValuesi+;/buying: vhigh, high, med, low.if(a="vhigh") buying0i+;else if(a="high"

23、;) buying1i+;else if(a="med") buying2i+;else if(a="low") buying3i+;/maint: vhigh, high, med, low.if(b="vhigh") maint0i+;else if(b="high") maint1i+;else if(b="med") maint2i+;else if(b="low") maint3i+;/doors: 2, 3, 4, 5more.if(c="2"

24、) doors0i+;else if(c="3") doors1i+;else if(c="4") doors2i+;else doors3i+;/persons: 2, 4, more.if(d="2") persons0i+;else if(d="4") persons1i+;else persons2i+;/lug_boot: small, med, big.if(e="small") lug_boot0i+;else if(e="med") lug_boot1i+;e

25、lse if(e="big") lug_boot2i+;/safety: low, med, high.if(f="low") safety0i+;else if(f="med") safety1i+;else if(f="high") safety2i+; break;/ 讀取文件void ReadFileTrain()ifstream fin("CarDatas.txt");string a,b,c,d,e,f,g;int i = countF;while(i-)>0 &&am

26、p; fin>>a && fin>>b&& fin>>c && fin>>d && fin>>e &&fin>>f && fin>>g)countTrain+;Tonji(a,b,c,d,e,f,g);fin.close();cout<<" 訓(xùn)練樣本 countTrain="<<countTrain<<endl;/ 統(tǒng)計(jì)得到在各類別下各個(gè)特征屬性的條件概率估計(jì)v

27、oid CalAP() / 概率 P(yi)for(int i=0;i<4;i+)ClassValuesLi = (float) ClassValuesi/countTrain;/ 特別注意的是 P(ai|yi)=ai/0 的情況!,會(huì)使 P(ai|yi) 等于 nan; for(int i=0;i<4;i+) /概率 P(ai|yi)for(int j=0;j<4;j+)buyingLij = (float) buyingij/ClassValuesj; if(buyingLij<0 | buyingLij>1) buyingLij=0;maintLij(flo

28、at)maintij/ClassValuesj;if(maintLij<0 | maintLij>1) maintLij=0;doorsLij = (float) doorsij/ClassValuesj;if(doorsLij<0 | doorsLij>1) doorsLij=0;for(int i=0;i<3;i+) /概率 P(ai|yi)for(int j=0;j<4;j+)personsLij= (float)personsij/ClassValuesj;if(personsLij<0 | personsLij>1) personsLi

29、j=0;lug_bootLij= (float)lug_bootij/ClassValuesj;if(lug_bootLij<0 | lug_bootLij>1) lug_bootLij=0;safetyLij= (float) safetyij/ClassValuesj;if(safetyLij<0 | safetyLij>1) safetyLij=0;/ 一行數(shù)據(jù)的準(zhǔn)確與否 ,P(Bi|A)=P(A|Bi)P(Bi)/P(A), 其中 P(A) 相同,只需比較 分子的大小即可bool TestLine(string ai,string bi,string ci,st

30、ring di,string ei,stringfi,string gi)int b, m, d, p, l, s;/buying:if(ai="vhigh") b=0;else if(ai="high") b=1;else if(ai="med") b=2;else if(ai="low") b=3;/maint:if(bi="vhigh") m=0;else if(bi="high") m=1;else if(bi="med") m=2;else if

31、(bi="low") m=3;/doors: if(ci="2") d=0;else if(ci="3") d=1;else if(ci="4") d=2;else d=3;/persons:if(di="2") p=0;else if(di="4") p=1;else p=2;/lug_boot: if(ei="small") l=0;else if(ei="med") l=1;else if(ei="big")

32、l=2;/safety:if(fi="low") s=0;else if(fi="med") s=1;else if(fi="high") s=2;float Bi;float MaxB=0;int t=0;/ 計(jì)算四個(gè) P(Bi|A) 的概率取最大的for(int i=0;i<4;i+)doorsLdiBi=buyingLbi * maintLmi * personsLpi * lug_bootLli * safetyLsi * ClassValuesLi;if(MaxB < Bi && Bi<=1

33、)MaxB = Bi;t = i;/ 判斷預(yù)測和事實(shí)是否相等 if(CVnamet=gi) return true;else return false;/ 讀取并測試文件void ReadFileTest()ifstream fin("CarDatas.txt");string a,b,c,d,e,f,g;bool t=false;int i=0;while(+i && fin>>a && fin>>b&& fin>>c && fin>>d && fin>>e && fin>>f && fin>>g)if(i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論