日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 實現樸素貝葉斯算法的示例

瀏覽:23日期:2022-07-09 13:02:40

特點

這是分類算法貝葉斯算法的較為簡單的一種,整個貝葉斯分類算法的核心就是在求解貝葉斯方程P(y|x)=[P(x|y)P(y)]/P(x) 而樸素貝葉斯算法就是在犧牲一定準確率的情況下強制特征x滿足獨立條件,求解P(x|y)就更為方便了 但基本上現實生活中,沒有任何關系的兩個特征幾乎是不存在的,故樸素貝葉斯不適合那些關系密切的特征

from collections import defaultdictimport numpy as npfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom loguru import loggerclass NaiveBayesScratch(): '''樸素貝葉斯算法Scratch實現''' def __init__(self): # 存儲先驗概率 P(Y=ck) self._prior_prob = defaultdict(float) # 存儲似然概率 P(X|Y=ck) self._likelihood = defaultdict(defaultdict) # 存儲每個類別的樣本在訓練集中出現次數 self._ck_counter = defaultdict(float) # 存儲每一個特征可能取值的個數 self._Sj = defaultdict(float) def fit(self, X, y): ''' 模型訓練,參數估計使用貝葉斯估計 X: 訓練集,每一行表示一個樣本,每一列表示一個特征或屬性 y: 訓練集標簽 ''' n_sample, n_feature = X.shape # 計算每個類別可能的取值以及每個類別樣本個數 ck, num_ck = np.unique(y, return_counts=True) self._ck_counter = dict(zip(ck, num_ck)) for label, num_label in self._ck_counter.items(): # 計算先驗概率,做了拉普拉斯平滑處理,即計算P(y) self._prior_prob[label] = (num_label + 1) / (n_sample + ck.shape[0]) # 記錄每個類別樣本對應的索引 ck_idx = [] for label in ck: label_idx = np.squeeze(np.argwhere(y == label)) ck_idx.append(label_idx) # 遍歷每個類別 for label, idx in zip(ck, ck_idx): xdata = X[idx] # 記錄該類別所有特征對應的概率 label_likelihood = defaultdict(defaultdict) # 遍歷每個特征 for i in range(n_feature): # 記錄該特征每個取值對應的概率 feature_val_prob = defaultdict(float) # 獲取該列特征可能的取值和每個取值出現的次數 feature_val, feature_cnt = np.unique(xdata[:, i], return_counts=True) self._Sj[i] = feature_val.shape[0] feature_counter = dict(zip(feature_val, feature_cnt)) for fea_val, cnt in feature_counter.items(): # 計算該列特征每個取值的概率,做了拉普拉斯平滑,即為了計算P(x|y) feature_val_prob[fea_val] = (cnt + 1) / (self._ck_counter[label] + self._Sj[i]) label_likelihood[i] = feature_val_prob self._likelihood[label] = label_likelihood def predict(self, x): ''' 輸入樣本,輸出其類別,本質上是計算后驗概率 **注意計算后驗概率的時候對概率取對數**,概率連乘可能導致浮點數下溢,取對數將連乘轉化為求和 ''' # 保存分類到每個類別的后驗概率,即計算P(y|x) post_prob = defaultdict(float) # 遍歷每個類別計算后驗概率 for label, label_likelihood in self._likelihood.items(): prob = np.log(self._prior_prob[label]) # 遍歷樣本每一維特征 for i, fea_val in enumerate(x): feature_val_prob = label_likelihood[i] # 如果該特征值出現在訓練集中則直接獲取概率 if fea_val in feature_val_prob: prob += np.log(feature_val_prob[fea_val]) else: # 如果該特征沒有出現在訓練集中則采用拉普拉斯平滑計算概率 laplace_prob = 1 / (self._ck_counter[label] + self._Sj[i]) prob += np.log(laplace_prob) post_prob[label] = prob prob_list = list(post_prob.items()) prob_list.sort(key=lambda v: v[1], reverse=True) # 返回后驗概率最大的類別作為預測類別 return prob_list[0][0]def main(): X, y = load_iris(return_X_y=True) xtrain, xtest, ytrain, ytest = train_test_split(X, y, train_size=0.8, shuffle=True) model = NaiveBayesScratch() model.fit(xtrain, ytrain) n_test = xtest.shape[0] n_right = 0 for i in range(n_test): y_pred = model.predict(xtest[i]) if y_pred == ytest[i]: n_right += 1 else: logger.info('該樣本真實標簽為:{},但是Scratch模型預測標簽為:{}'.format(ytest[i], y_pred)) logger.info('Scratch模型在測試集上的準確率為:{}%'.format(n_right * 100 / n_test))if __name__ == '__main__': main()

以上就是python 實現樸素貝葉斯算法的示例的詳細內容,更多關于python實現樸素貝葉斯算法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人av动漫在线观看| 丝袜美腿亚洲一区| 国内精品美女在线观看| 尹人成人综合网| 青青在线精品| 成人一二三区| av亚洲免费| 亚洲日本免费电影| 日本国产一区| 亚洲精品乱码久久久久久蜜桃麻豆 | 日韩a一区二区| 免费观看亚洲| 精品三级av| 欧美偷窥清纯综合图区| 中文日韩在线| 综合色一区二区| 婷婷综合成人| 国产白浆在线免费观看| 久久久久久婷| 激情欧美亚洲| 日韩一二三区在线观看| 美女精品一区| 久久夜夜操妹子| 一区二区三区四区日韩| 精品国产aⅴ| 欧美freesex黑人又粗又大| 四虎影视精品| 丝袜脚交一区二区| 国产日韩欧美高清免费| 精品入口麻豆88视频| 国产欧美午夜| 国产精选在线| 午夜精品成人av| 久久精品天堂| 99久久亚洲精品蜜臀| 亚洲一区国产一区| 水蜜桃久久夜色精品一区的特点 | 一区二区电影在线观看| 福利精品一区| 欧美日韩午夜电影网| 亚洲乱码视频| 日本大胆欧美人术艺术动态| 加勒比视频一区| 精品美女在线视频| 日韩高清三区| 蜜桃免费网站一区二区三区| 日韩欧美一区免费| 精品香蕉视频| 亚洲高清毛片| 高清精品久久| 亚洲一区二区免费看| 国产日韩免费| 久久精品国产www456c0m| 久久视频精品| 日韩精品视频网| 欧美亚洲在线日韩| 日韩精选在线| 成人精品亚洲| 欧美一区不卡| 久久精品国产亚洲夜色av网站| 日韩高清欧美激情| 中文字幕亚洲精品乱码| 国产精品日韩精品在线播放| 蜜臀av一区二区三区| 国产视频一区二| 日韩一区二区三免费高清在线观看 | 亚洲免费高清| 欧美在线亚洲综合一区| 日韩在线观看中文字幕| 国产日韩亚洲欧美精品| 亚洲先锋成人| 国产精品videosex极品| 国产欧美日韩一区二区三区四区 | 福利精品在线| 麻豆精品在线观看| 欧美福利专区| 日韩精品2区| 视频在线观看一区| 美女少妇全过程你懂的久久| 欧美日韩水蜜桃| 丝袜美腿一区二区三区| 精品国产乱码久久久| 欧美黄色网页| 国产精品亚洲成在人线| 日本黄色精品| 日韩三级精品| 亚洲开心激情| 正在播放日韩精品| 亚洲精品黄色| 日韩精品电影| 中文日韩欧美| 久久亚洲欧洲| 福利一区在线| 日韩精品永久网址| 激情久久一区二区| 综合干狼人综合首页| 久久国产高清| 另类中文字幕国产精品| 国产午夜精品一区在线观看| 啪啪国产精品| 久久狠狠久久| 综合激情网...| 欧美1区2区3区| 老司机免费视频一区二区三区| 日韩在线观看一区| 欧美高清不卡| 亚洲www啪成人一区二区| 蜜桃久久久久久久| 国产伦精品一区二区三区在线播放 | 久久久久97| 在线国产日韩| 在线一区视频| 欧美1区2区3区| 欧美日韩精品免费观看视完整 | 最新国产精品视频| 婷婷亚洲五月| 97精品一区| 国产资源在线观看入口av| 麻豆国产精品视频| 国产精品久久久久久久久久妞妞| 日本国产欧美| 在线观看一区| 亚洲午夜国产成人| 日韩精品一二三四| 中文字幕日韩高清在线| 亚洲精品伦理| 婷婷综合一区| 欧美午夜网站| 国产精品伦一区二区| 国产精品亚洲综合在线观看| 国产亚洲欧美日韩在线观看一区二区 | 国产欧美88| 久久精品影视| 狠狠爱www人成狠狠爱综合网| 午夜精品婷婷| 午夜在线观看免费一区| 久久不射网站| 在线看片一区| 亚洲天堂免费| 日韩和欧美一区二区| 日韩av影院| 久久不见久久见中文字幕免费| 欧美1区2区3| 91欧美国产| 久久九九99| 久久午夜影视| 欧美亚洲tv| 国产精品xxx在线观看| 国产精品亲子伦av一区二区三区| 精品免费视频| 久久国产电影| 欧美女激情福利| 老司机精品久久| 久久国产福利| 国产麻豆一区二区三区精品视频| 欧美激情福利| 蜜桃精品在线| 天堂成人国产精品一区| 日韩av在线免费观看不卡| 久久精品九色| 欧美.日韩.国产.一区.二区| 一区二区精彩视频| 美女高潮久久久| 久久国产亚洲精品| 亚洲精品大全| 精品国产一级| 欧美中文一区二区| 亚洲综合电影一区二区三区| 亚洲91在线| 欧美激情一区| 亚洲大片在线| 日韩国产欧美一区二区三区| 国产精品精品| 国产精品一区二区av日韩在线| 桃色av一区二区| 免费日韩视频| 久久精品国产99国产精品| 91精品蜜臀一区二区三区在线| 久久亚洲影院| 精品视频久久| 久久婷婷丁香| 一区二区91| 国产一区二区三区不卡av| 免费国产自久久久久三四区久久 | 色婷婷成人网| 国产中文在线播放| 中文欧美日韩| 国产乱论精品| 激情欧美丁香| 国产精品2023| 亚洲黄色影院| 国产精品资源| 婷婷久久一区| 蜜桃视频在线观看一区二区| 国产成人77亚洲精品www| 亚洲欧洲一区| 久久精品国产久精国产| 中文一区二区| 国产中文字幕一区二区三区| 亚洲欧美日韩精品一区二区|