




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
樸素貝葉斯分類上機指導(dǎo)、實驗?zāi)康模?.掌握矩陣數(shù)據(jù)的輸入,輸出,以及矩陣和數(shù)據(jù)框數(shù)據(jù)的轉(zhuǎn)換,認識一下list型數(shù)據(jù)。2.理解并掌握樸素貝葉斯分類原理。3?會使用klaR包中的NaiveBayes函數(shù)實現(xiàn)貝葉斯分類算法。二、 實驗內(nèi)容:本實驗利用樸素貝葉斯分類方法對課本 P144頁playtennis數(shù)據(jù)集建立模型并預(yù)測。三、 實驗步驟:1?將課本P144頁playtennis數(shù)據(jù)以矩陣形式輸入,注意理解下面紅色代碼。data<-matrix(c("sunny","hot","high","weak","no","sunny","hot","high","strong","no","overcast","hot","high","weak","yes","rain","mild","high","weak","yes","rain","cool","normal","weak","yes","rain","cool","normal","strong","no","overcast","cool","normal","strong","yes","sunny","mild","high","weak","no","sunny","cool","normal","weak","yes","rain","mild","normal","weak","yes","sunny","mild","normal","strong","yes","overcast","mild","high","strong","yes","overcast","hot","normal","weak","yes","rain","mild","high","strong","no"),byrow=TRUE,dimnames=list(day=c(),condition=c("outlook","temperature","humidity","wind","playtennis")),nrow=14,ncol=5);#上網(wǎng)查詢dimnames的用法#輸出一下data數(shù)據(jù):#將矩陣轉(zhuǎn)化成數(shù)據(jù)框>data1<-data.frame(data)>data1outlooktemperaturehumidity windplaytennis1sunnyhothighweakno2sunnyhothighstrongno3overcasthothighweakyes4rainmildhighweakyes5raincoolnormalweakyes6raincoolnormalstrongno7overcastcoolnormalstrongyes8sunnymildhighweakno9sunnycoolnormalweakyes10rainmildnormalweakyes11sunnymildnormalstrongyes12overcastmildhighstrongyes13overcasthotnormalweakyes14rainmildhighstrongno#將手動輸入的數(shù)據(jù)保存成txt文件>write.table(data1,file="playtennis.txt",sep="")#可以重新讀入保存的txt文件data2<-read.table("playtennis.txt",head=TRUE)2.理解并掌握樸素貝葉斯分類原理,讀懂下列代碼#算出去玩與不玩的先驗概率prior.yes<-sum(data2[,5]=="yes")/length(data2[,5]);}}prior.no<-sum(data2[,5]=="no")/length(data2[,5]);#建立樸素貝葉斯分類函數(shù)bayespre<-function(condition){post.yes<-sum((data2[,1]==condition[1])&(data2[,5]=="yes"))/sum(data2[,5]=="yes")*sum((data2[,2]==condition[2])&(data2[,5]=="yes"))/sum(data2[,5]=="yes")*sum((data2[,3]==condition[3])&(data2[,5]=="yes"))/sum(data2[,5]=="yes")*sum((data2[,4]==condition[4])&(data2[,5]=="yes"))/sum(data2[,5]=="yes")*prior.yes;post.no<-sum((data2[,1]==condition[1])&(data2[,5]=="no"))/sum(data2[,5]=="no")*sum((data2[,2]==condition[2])&(data2[,5]=="no"))/sum(data2[,5]=="no")*sum((data2[,3]==condition[3])&(data2[,5]=="no"))/sum(data2[,5]=="no")*sum((data2[,4]==condition[4])&(data2[,5]=="no"))/sum(data2[,5]=="no")*prior.no;return(list(prob.yes=post.yes,prob.no=post.no,prediction=ifelse(post.yes>=post.no,"yes","no")));#利用建立的樸素貝葉斯函數(shù)做預(yù)測bayespre(c("rain","hot","high","strong"))$prob.yes[1]0.005291005$prob.no[1]0.02742857$prediction[1]"no"#這些結(jié)果是多少?用函數(shù)bayespre()算一下,你能手動算出來嗎?把你的算式寫出來bayespre(c("sunny","mild","normal","weak"))bayespre(c("overcast","mild","normal","weak"))bayespre(c("sunny","cool","high","strong"))3使用klaR包中的NaiveBayes函數(shù)實現(xiàn)貝葉斯分類算法NaiveBayes()函數(shù)的語法和參數(shù)如下:NaiveBayes(formula,data, …,subset,na.action=na.pass)NaiveBayes(x,grouping,prior,usekernel=FALSE,fL=0, ?…)formula指定參與模型計算的變量,以公式形式給出,類似于 y=x1+x2+x3;data用于指定需要分析的數(shù)據(jù)對象;na.action指定缺失值的處理方法,默認情況下不將缺失值納入模型計算,也不會發(fā)生報錯信息,當設(shè)為“na.omit”時則會刪除含有缺失值的樣本;x指定需要處理的數(shù)據(jù),可以是數(shù)據(jù)框形式,也可以是矩陣形式;grouping為每個觀測樣本指定所屬類別;prior可為各個類別指定先驗概率,默認情況下用各個類別的樣本比例作為先驗概率;usekernel指定密度估計的方法(在無法判斷數(shù)據(jù)的分布時,采用密度密度估計方法) ,默認情況下使用標準的密度估計,設(shè)為 TRUE時,則使用核密度估計方法;fL指定是否進行拉普拉斯修正, 默認情況下不對數(shù)據(jù)進行修正,當數(shù)據(jù)量較小時,可以設(shè)置該參數(shù)為1,即進行拉普拉斯修正。#通過抽樣建立訓(xùn)練樣本和測試樣本index<-sample(2,size=nrow(iris),replace=TRUE,prob=c(0.75,0.25))train<-iris[index==1,]test<-iris[index==2,]#加載R包并使用樸素貝葉斯算法library(MASS)library(klaR)#因子化train$Species<-as.factor(train$Species)res2<-NaiveBayes(Species~.,data=train)pre<-predict(res2,newdata=test[,1:4])#生成實際與預(yù)判交叉表和預(yù)判精度table(test$Species,pre$class)23110000920011sum(diag(table(test$Species,pre$class)))/sum(table(test$Species,pre$class))0.9375讀懂上面的例子。仿照上面的例子使用klaR包中的NaiveBayes函數(shù)建立playtennis?txt貝葉斯分類模型,并預(yù)測上面的例子。c("rain","hot","high","strong")c("sunny","mild","normal","weak")c("overcast","mild","normal","weak")c("sunny","cool","high","strong")#將上面的情況建立dataframe作為測試題test<-data.frame()test<-rbind(c("rain","
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 柳州職業(yè)技術(shù)學(xué)院《新型材料毒理學(xué)評價》2023-2024學(xué)年第二學(xué)期期末試卷
- 眉山職業(yè)技術(shù)學(xué)院《寶石工藝學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 鐵嶺衛(wèi)生職業(yè)學(xué)院《食品制造與安全前沿科學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 德宏職業(yè)學(xué)院《果蔬加工工藝學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 嘉興南湖學(xué)院《休閑學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年煤礦市場分析:智能化與高效利用推動行業(yè)轉(zhuǎn)型
- 2025年中考數(shù)學(xué)幾何模型歸納訓(xùn)練:最值模型之胡不歸模型解讀與提分訓(xùn)練(全國版)
- 遼寧廚房排煙施工方案
- 甘肅省白銀市2024-2025學(xué)年高二(上)期末生物試卷(含解析)
- 第12課 資本主義世界殖民體系的形成 課件- 課件-【知識精研】高一下學(xué)期統(tǒng)編版(2019)必修中外歷史綱要下
- 重點流域水環(huán)境綜合治理中央預(yù)算內(nèi)項目申報指南
- 民用無人機操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點題庫500題(含答案)
- 家族合伙企業(yè)合同協(xié)議書
- 工業(yè)機器人編程語言:URScript(UniversalRobots):UR機器人安全編程與碰撞檢測
- 5.1 實數(shù)指數(shù)冪-中職數(shù)學(xué)教學(xué)設(shè)計(高教版2021基礎(chǔ)模塊 下冊)
- 大學(xué)生心理安全教育(大學(xué)生安全教育課件)
- 巖土工程領(lǐng)域的前沿技術(shù)與未來發(fā)展
- 國家開放大學(xué)電大《現(xiàn)代漢語》形考任務(wù)參考答案
- 2024年天津市北辰城市資源開發(fā)利用有限公司招聘筆試沖刺題(帶答案解析)
- 四年級美術(shù)測國測復(fù)習(xí)題答案
- 資料分析(歷年國考真題)
評論
0/150
提交評論