日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

潇洒郎:Ten-fold-cross validation- Naïve Bayes Classifier 十字交叉验证-贝叶斯分类器 Python实现

發布時間:2023/12/18 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 潇洒郎:Ten-fold-cross validation- Naïve Bayes Classifier 十字交叉验证-贝叶斯分类器 Python实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模式識別第一個作業,我雖然有師兄師姐們的答案,但是我不想繼承了,想自己寫,調動自己的學習熱情!
對自己的學習負責!
作業如下:


十字交叉驗證的原理是將數據集分為10組,輪流選擇其中一組作為測試組,其余作為訓練組,然后利用貝葉斯分類器計算決策正確的概率
貝葉斯公式

貝葉斯優化分類器
1
其中A為條件/狀態,di為決策也可表示為:

如1-14條數據,選擇第一組{1,11}作為測試組,其余作為訓練組,

注:其中的di為決策Yes/No,A為狀態如Sunny,Hot等,看如下例子,計算出決策dmp=“No”

現在我們明白了原理,那么就進行解決問題了:
一,準備數據traindata.txt 如圖:

二,編寫程序:

def getdata():'''獲取所有事件信息'''data = []f = open('traindata.txt', 'r')lines = f.readlines()for line in lines:li = line.split(' ')data.append(li)f.close()return datadef get_tests_info_save_traindata(testlabel):'''testlabel為測試標簽,[1]/[1,11]獲取測試標簽信息和除測試外的剩余訓練集:testlabel_s,data'''testlabel_s=[]data = getdata()if testlabel!=None:for tst in testlabel:for d in data:# 條件if str(tst) == d[0]: #判斷是否為測試標簽labb= (d[1], d[2], d[3], d[4],d[5]) #記錄測試標簽的狀態testlabel_s.append(labb)data.remove(d) #將測試項信息從總數據集中刪除else:passreturn data,testlabel_selse:passdef get_number(testlabel=None):'''testlabel為測試標簽,[1]/[1,11]獲取測試項的結果(No,Yes):resulist; 統計除測試項外剩余事件的No,Yes數量:noyes以及統計在No,Yes條件下的各狀態的數量:nolist,yeslist'''if testlabel==None:print('')else:data, telabels = get_tests_info_save_traindata(testlabel)nolist, yeslist,resulist,nolabel, yeslabel=[],[],[],[],[]for tel in telabels:a1, a2, a3, a4,a5= tel[0], tel[1], tel[2], tel[3], tel[4] # 測試標簽的天氣情況標簽no,yes,a1nonum,a2nonum,a3nonum,a4nonum,a1yesnum,a2yesnum,a3yesnum,a4yesnum =0,0, 0, 0, 0, 0,0, 0, 0, 0for d in data:# 獲取No,Yes的數量dd = d[-1].replace('\n', '')if dd == 'No':no += 1if d[1]==a1:a1nonum+=1if d[2]==a2:a2nonum += 1if d[3]==a3:a3nonum+=1if d[4]==a4:a4nonum += 1#No條件下的各狀態的數量nolabel=(a1nonum, a2nonum, a3nonum, a4nonum)if dd == 'Yes':yes += 1if d[1]==a1:a1yesnum+=1if d[2]==a2:a2yesnum += 1if d[3]==a3:a3yesnum+=1if d[4]==a4:a4yesnum += 1#Yes條件下的各狀態的數量yeslabel=(a1yesnum, a2yesnum, a3yesnum, a4yesnum)resulist.append(a5) #記錄測試標簽的決策noyes=(no,yes) #No/Yes的數量noo=(nolabel) #No條件下的各狀態的數量yess=(yeslabel) #Yes條件下的各狀態的數量nolist.append(noo)yeslist.append(yess)return resulist,noyes,nolist,yeslistdef getresult(teslabe):'''根據參數計算決策正確的概率'''result='' #初設決策i=0 #初設決策正確的概率res4, noyes4, no4, yes4 = get_number(teslabe)#res4, noyes4, no4, yes4=['No\n', 'Yes\n'] (4, 8) [(2, 1, 3, 1), (2, 2, 1, 3)] [(1, 2, 3, 6), (1, 3, 5, 2)]no_num = noyes4[0]yes_num = noyes4[1]p_no = no_num / (no_num + yes_num) #若為兩個測試項,P(No)與P(Yes)概率也不變p_yes = yes_num/(no_num + yes_num)for t in range(len(no4)): #根據測試項數目循環計算概率print('結果:',res4[t].replace('\n',''))#計算Bel(No),Bel(Yes)的概率belno = p_no * (no4[t][0]/no_num)*(no4[t][1]/no_num)*(no4[t][2]/no_num)*(no4[t][3]/no_num)belyes = p_yes * (yes4[t][0]/yes_num)*(yes4[t][1]/yes_num)*(yes4[t][2]/yes_num)*(yes4[t][3]/yes_num)print('No概率:',belno)print('Yes概率:', belyes)#根據Bel(No),Bel(Yes)做出決策if belno > belyes:result='No'else:result='Yes'print('決策:',result)#判斷決策是否正確if res4[t].replace('\n','')==result: #若本身決策和計算所得決策一樣,計算概率if len(no4)==2: #若該組內有兩個測試項,則各占50%比率,每次決策正確則概率增加50%i += 0.5else: #若該組內有一個測試項,則占100%比率,決策正確則概率增加100%i += 1.0else: #若決策錯誤,則概率增加為0i+=0print('正確率:',i)print('\n')return i #返回決策的正確率def get_possiblities(gro):'''獲取概率集'''possibilities = []for i in gro: #每一組輪流作為測試標簽#將分組轉化為列表[5]/[2,12]tests = []tests.append(i[0])tests.append(i[-1])tests = list(set(tests))r = getresult(tests) #獲取概率集possibilities.append(r)return possibilities gro = [(5,), (1, 11), (2, 12), (3, 13), (4, 14), (6,), (7,), (8,), (9,), (10,)] posbs=get_possiblities(gro) print('各組作為測試項,決策正確的概率分別為:',posbs) k=0 for h in posbs:k=k+h #計算平均概率 avepos=k/len(posbs) print('平均概率為:',avepos)

下面是運行結果:

花費一天時間,終于把程序編寫完成了!結果很理想!有不足之處,還請社友、大神們多多指導!感謝!

總結

以上是生活随笔為你收集整理的潇洒郎:Ten-fold-cross validation- Naïve Bayes Classifier 十字交叉验证-贝叶斯分类器 Python实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰在线观看91 | 国产精品成人免费 | 深爱开心激情网 | av天天在线 | 亚洲精品粉嫩小泬20p | 丰满少妇高潮在线观看 | 上原亚衣在线观看 | 亚洲成av人片一区二区梦乃 | 国产后入又长又硬 | 韩日视频在线观看 | 5566色| 全部孕妇毛片丰满孕妇孕交 | 91精品国产91久久久久久 | 欧美日韩另类一区 | 欧美激情一二区 | 成人免费观看视频大全 | 国产福利一区在线 | 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | 国产欧美激情视频 | 国产日本一区二区三区 | 欧美一级黄色片网站 | 蜜臀av在线免费观看 | 婷婷射丁香 | 国产美女主播 | 影音先锋亚洲一区 | 日韩黄色网址 | 99re在线视频免费观看 | 91cn.com| 蜜桃视频无码区在线观看 | www日日日| 免费的黄色大片 | 深夜小视频在线观看 | 香蕉视频2020 | 国产美女视频 | 91无打码| 九草网 | 亚洲人高潮女人毛茸茸 | 自拍偷拍五月天 | 日韩深夜视频 | 精品人妻一区二区三区久久夜夜嗨 | 亚洲成人tv | 国产精品久久久久久久久久久久久久久久 | aa视频网站| bbbbbxxxxx性欧美 | 国产激情av | 在线精品视频免费观看 | japan粗暴video蹂躏 | 久久久久久一级片 | 免费日韩视频 | 波多野结衣在线网址 | 99re这里| 得得的爱在线视频 | 日本色视 | 杨贵妃颤抖双乳呻吟求欢小说 | 欧美大片免费在线观看 | 香蕉久热| 麻豆视频免费观看 | 日本激情免费 | 男人与雌性宠物交啪啪 | 竹菊影视一区二区三区 | 不卡av在线免费观看 | 国产一级久久 | 97福利影院 | 7777精品久久久久久 | 肉视频在线观看 | 禁断介护av一区二区 | 欧美卡一卡二卡三 | 黄色av免费在线观看 | 亚洲 欧美 变态 另类 综合 | www.久久综合 | 亚洲精品av中文字幕在线在线 | 青青青在线视频观看 | 紧身裙女教师三上悠亚红杏 | 久久国产激情视频 | www.99爱 | 超污视频软件 | 色站av| 成人开心激情 | 国产传媒在线 | 四虎在线精品 | 天天插日日干 | 丁香婷婷激情 | 蘑菇福利视频一区播放 | 四虎成人在线视频 | 国产人与zoxxxx另类 | 久草aⅴ | 婷婷综合视频 | 美女免费黄视频 | 亚洲国产精品久久久久婷蜜芽 | 欧美性色19p | 丰满人妻一区二区三区免费视频棣 | 亚洲熟女乱色一区二区三区久久久 | 毛片黄色一级 | 国产在线一二三区 | 丁香婷婷色 | 欧美日韩人妻精品一区二区 | 三级电影网址 | 欧美怡红院 | 一区二区视频在线免费观看 |