




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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)三:分類算法實(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)atlab3、 實(shí)驗(yàn)相關(guān)知識(shí)貝葉斯定理:P(A)是 A 的先驗(yàn)概率,之所以稱為“先驗(yàn)”是因?yàn)樗豢紤]任何 B 方面的因素。P(A|B)是已知 B
2、 發(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,unaccClassValues: unacc, acc, good, vgood 對(duì)應(yīng)P(Bi)。(i=0,1,2,3)P(Ai)六個(gè)屬性相互獨(dú)立:P(A0|B0)*P(A1|B0)*.P(A5|B0) =P(A|B0)。分別算出 取其中的最大值,其中,P(A)的值相同
3、,可以不算出來(lái)。If(P(B|A)最大 = 測(cè)試樣例.ClassValues) return true;Else return false;4、 實(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ī)語(yǔ)言(比如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利用測(cè)試數(shù)據(jù)對(duì)學(xué)習(xí)的分類器進(jìn)行
4、性能評(píng)估;5統(tǒng)計(jì)分析實(shí)驗(yàn)結(jié)果并上交實(shí)驗(yàn)報(bào)告;定義和初始化變量統(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)1時(shí),讓P(Ai|Bi)=0.計(jì)算(四個(gè)里面取最大)實(shí)驗(yàn)結(jié)果四、思考題:1. 兩種算法在訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集上的性能一致嗎?哪個(gè)比較好?決策樹(decision tree)是一個(gè)樹結(jié)構(gòu)(可以是二叉樹或非二叉樹)。其每個(gè)非葉節(jié)點(diǎn)表示一個(gè)特征屬性上的測(cè)試,每個(gè)分支代表這個(gè)特征屬性在某個(gè)值域上的輸出,而每個(gè)葉節(jié)點(diǎn)存放一個(gè)類別。使用決策樹進(jìn)行決策的過程就是從根節(jié)點(diǎn)開始,測(cè)試
5、待分類項(xiàng)中相應(yīng)的特征屬性,并按照其值選擇輸出分支,直到到達(dá)葉子節(jié)點(diǎn),將葉子節(jié)點(diǎn)存放的類別作為決策結(jié)果。 不同于貝葉斯算法,決策樹的構(gòu)造過程不依賴領(lǐng)域知識(shí),它使用屬性選擇度量來(lái)選擇將元組最好地劃分成不同的類的屬性。所謂決策樹的構(gòu)造就是進(jìn)行屬性選擇度量確定各個(gè)特征屬性之間的拓?fù)浣Y(jié)構(gòu)。決策樹的成功率為: 61.80372% ,貝葉斯成功率為:68.7831% (貝葉斯更好一點(diǎn))相比貝葉斯算法,決策樹的優(yōu)勢(shì)在于構(gòu)造過程不需要任何領(lǐng)域知識(shí)或參數(shù)設(shè)置,因此在實(shí)際應(yīng)用中,對(duì)于探測(cè)式的知識(shí)發(fā)現(xiàn),決策樹更加適用。2. 提出一種提高分類器性能的方法并通過實(shí)驗(yàn)驗(yàn)證。5、 實(shí)驗(yàn)心得通過這次實(shí)驗(yàn)加深了我對(duì)樸素貝葉斯的認(rèn)
6、識(shí),學(xué)會(huì)了用樸素貝葉斯算法解決具體的問題。樸素貝葉斯分類是一種十分簡(jiǎn)單的分類算法,對(duì)于給出的待分類項(xiàng),求解在此項(xiàng)出現(xiàn)的條件下各個(gè)類別出現(xiàn)的概率,哪個(gè)最大,就覺得此待分類項(xiàng)屬于哪個(gè)類別。樸素貝葉斯的原理決定了其成功率不可能太高,但是樸素貝葉斯的簡(jiǎn)單易用性使得其在一些日常生活中應(yīng)用廣泛。附件(代碼)#include#include#include#include#include#includeusing namespace std;int countTrain = 0;/訓(xùn)練樣本數(shù)目int countTest = 0;/測(cè)試樣本數(shù)目int countTestSuc = 0;/測(cè)試樣本正確的數(shù)目in
7、t countF=100; /訓(xùn)練和測(cè)試的分界 string CVname4=unacc,acc,good,vgood;int ClassValues4; /unacc, acc, good, vgood int buying44; /vhigh, high, med, maint44; / vhigh, high, med, low. int doors44; /2, 3, 4, 5more. int persons44; /2, 4, more. int lug_boot44; /small, med, safety44; /low, med, high.
8、float ClassValuesL4; /unacc, acc, good, vgood float buyingL44; /vhigh, high, med, low.float maintL44; / vhigh, high, med, low. float doorsL44; /2, 3, 4, 5more. float personsL44; /2, 4, more. float lug_bootL44; /small, med, big.float safetyL44; /low, med, high. */統(tǒng)計(jì)個(gè)數(shù) void Tonji(string a,string b,str
9、ing c,string d,string e,string f,string g)/couta b c d e f gendl;for(int i=0;i0 & fina & finb& finc & find & fine & finf & fing)countTrain+;Tonji(a,b,c,d,e,f,g); fin.close();cout訓(xùn)練樣本countTrain=countTrainendl;/統(tǒng)計(jì)得到在各類別下各個(gè)特征屬性的條件概率估計(jì)void CalAP() /概率P(yi)for(int i=0;i4;i+)ClassValuesLi = (float) ClassV
10、aluesi/countTrain;/特別注意的是P(ai|yi)=ai/0的情況!,會(huì)使 P(ai|yi)等于nan; for(int i=0;i4;i+) /概率P(ai|yi)for(int j=0;j4;j+)buyingLij = (float) buyingij/ClassValuesj; if(buyingLij1) buyingLij=0;maintLij = (float) maintij/ClassValuesj; if(maintLij1) maintLij=0;doorsLij = (float) doorsij/ClassValuesj; if(doorsLij1)
11、doorsLij=0;for(int i=0;i3;i+) /概率P(ai|yi)for(int j=0;j4;j+)personsLij = (float) personsij/ClassValuesj; if(personsLij1) personsLij=0;lug_bootLij = (float) lug_bootij/ClassValuesj; if(lug_bootLij1) lug_bootLij=0;safetyLij = (float) safetyij/ClassValuesj; if(safetyLij1) safetyLij=0;/一行數(shù)據(jù)的準(zhǔn)確與否,P(Bi|A)=
12、P(A|Bi)P(Bi)/P(A),其中P(A)相同,只需比較分子的大小即可 bool TestLine(string ai,string bi,string ci,string di,string ei,string fi,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
13、if(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) 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(B
14、i|A)的概率取最大的 for(int i=0;i4;i+)Bi=buyingLbi * maintLmi * doorsLdi * personsLpi * lug_bootLli * safetyLsi * ClassValuesLi;if(MaxB Bi & Bia & finb& finc & find & fine & finf & fing)if(icountF) countTest+;t=TestLine(a,b,c,d,e,f,g); if(t) countTestSuc+; fin.close();void setZero();int main()int a5=100,200
15、,500,700,1350;for(int i=0;i5;i+)setZero();countF=ai; /訓(xùn)練和測(cè)試的分界 ReadFileTrain(); /讀取文件并且統(tǒng)計(jì)個(gè)數(shù)CalAP(); /計(jì)算條件概率 ReadFileTest(); /測(cè)試樣本 cout預(yù)測(cè)正確countTestSuc=countTestSucendl;cout測(cè)試樣本countTest=countTestendl;cout準(zhǔn)確率為:100.0*(float)countTestSuc/(float)countTest)%endlendl;return 0; void setZero()countTrain = 0
16、;/訓(xùn)練樣本數(shù)目countTest = 0;/測(cè)試樣本數(shù)目countTestSuc = 0;/測(cè)試樣本正確的數(shù)目for(int i=0;i4;i+)for(int j=0;j4;j+)ClassValuesi=0; /unacc, acc, good, vgood buyingij=0; /vhigh, high, med, low.maintij=0; / vhigh, high, med, low. doorsij=0; /2, 3, 4, 5more. personsij=0; /2, 4, more. lug_bootij=0; /small, med, big.safetyij=0;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 結(jié)款合同追加擔(dān)保合同協(xié)議
- 肥料區(qū)域代理合同協(xié)議
- 《認(rèn)知評(píng)估工具:癡呆評(píng)定課件》
- 學(xué)校安全管理教育課件
- 《數(shù)據(jù)分析與可視化技巧》課件
- 第三屆全國(guó)技能大賽競(jìng)賽(飛機(jī)維修賽項(xiàng))選拔賽備考試題庫(kù)(含答案)
- 學(xué)校安全教育家長(zhǎng)會(huì)課件
- 2024年美術(shù)設(shè)計(jì)師考試的實(shí)戰(zhàn)技巧與經(jīng)驗(yàn)試題及答案
- 2024年紡織工程師考試的復(fù)習(xí)方法及試題及答案
- 單片機(jī)試題及答案詳解
- 022旋翼干式塑料表殼水表
- 特殊旅客的航空服務(wù)文獻(xiàn)綜述
- 實(shí)驗(yàn)?zāi)J絼?dòng)物斑馬魚左正宏
- 小學(xué)后進(jìn)生轉(zhuǎn)化記錄表4篇-后進(jìn)生轉(zhuǎn)化
- 鋼箱梁運(yùn)輸與安裝施工方案
- DDI輔導(dǎo)員工邁向成功-輔導(dǎo)領(lǐng)導(dǎo)力系列
- 兼職教師任職承諾書
- 上海市2020年中考化學(xué)試卷(word版含解析)
- 史上最全的數(shù)列通項(xiàng)公式的求法15種
- 配電室高低壓運(yùn)行記錄表
- 鏈路聚合的配置
評(píng)論
0/150
提交評(píng)論