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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sklearn(v3)——朴素贝叶斯(1)

發布時間:2025/3/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sklearn(v3)——朴素贝叶斯(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

真正的概率分類器

在許多分類算法應用中特征和標簽之間的關系并非是決定性的比如說我們想預測一個人究竟是否會在泰坦尼克號海難中生存下來那我們可以建一棵決策樹來學習我們的訓練集在訓練中其中一個人的特征為:30?通艙他最后在泰坦尼克號海難中去世了當我們測試的時候我們發現有另一個人的特征也為30普通???基于在訓練集中的學習我們的決策樹必然會給這個人打上標簽去世然而這個人的真實情況一定是去世了嗎?并非如此

也許這個人是心臟病患者得到了上救生艇的優先權又有可能這個人就是擠上了救生艇活了下來分類算法來說,基于訓練的經驗,這個人很有可能是沒有活下來但算法永遠也無法確定這個人一定沒有活下來即便這個人最后真的沒有活下來算法也無法確定基于訓練數據給出的判斷,是否真的解釋了這個人沒有存活下來的真實情況。這就是說,算法得出的結論,永遠不是100%確定更多的是判斷出了一種“樣本的標簽更可能是某類的可能性而非一種“確定”我們通過某些規定比如說在決策樹的葉子節點上占比較多的標簽就是葉子節點上所有樣本的標簽,來強行讓算法為我們返回一個固定結果但許多時候我們也希望能夠理解算法判斷出的可能性本身

每種算法使用不同的指標來衡量這種可能性。比如說,決策樹使用的就是葉子節點上占比較多的標簽所占的比例(接predict_proba調用),邏輯回歸使用的是sigmoid函數壓縮后的似然(接口predict_proba調用),SVM使用的是樣本點到決策邊界的距離(接口decision_function調用)。但這些指標的本其實都是一種類概率的表示們可以通過歸一化或sigmoid函數將這些指標壓縮到0~1之間讓他們表示我們的模型對預測的結果究竟有多大的把握(置信度)。但無論如何我們都希望使用真正的概率來衡量可能性因此就有了真正的概率算法樸素貝葉斯

樸素貝葉斯是一種直接衡量標簽和特征之間的概率關系的有監督學習算法是一種專注分類的算法。樸素貝葉斯的算法根源就是基于概率論和數理統計的貝葉斯理論因此它是根正苗紅的概率模型接下來我們就來認識一下這個簡單快速的概率算法

樸素貝葉斯是如何工作的

概率大于0.5標簽為1

概率小于0.5標簽為0

溫度和觀察到的瓢蟲數量不是獨立的,但是當控制了冬眠個變量時,溫度和觀察到了瓢蟲數量就不是獨立的了?

fit過程是在估計對應分布的參數,predict過程是在該參數下的分布中去進行概率預測

sklearn中的樸素貝葉斯 ?

?高斯樸素貝葉斯

import numpy as np import matplotlib.pyplot as plt from sklearn.naive_bayes import GaussianNB from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split#十分類問題 digits = load_digits() X, y = digits.data,digits.target Xtrain,Xtest,Ytrain,Ytest = train_test_split(X,y,test_size=0.3,random_state=420)gnb = GaussianNB().fit(Xtrain,Ytrain) #查看分數 acc_score = gnb.score(Xtest,Ytest) acc_score

結果:

0.8592592592592593 #查看預測結果 Y_pred = gnb.predict(Xtest) #查看預測的概率結果 prob = gnb.predict_proba(Xtest) prob #每一行和為1

結果:?

from sklearn.metrics import confusion_matrix as CM CM(Ytest,Y_pred)

結果:
?

貝葉斯——要求變量是相互獨立的,故通常而言不是第一選擇

不同樣本量是橫坐標,?準確率是縱坐標

import numpy as np import matplotlib.pyplot as plt from sklearn.naive_bayes import GaussianNB from sklearn.svm import SVC from sklearn.ensemble import RandomForestClassifier as RFC from sklearn.tree import DecisionTreeClassifier as DTC from sklearn.linear_model import LogisticRegression as LR from sklearn.datasets import load_digits from sklearn.model_selection import learning_curve from sklearn.model_selection import ShuffleSplit from time import time import datetimedef plot_learning_curve(estimator,title, X, y,ax, #選擇子圖ylim=None, #設置縱坐標的取值范圍cv=None, #交叉驗證n_jobs=None #設定索要使用的線程):train_sizes,train_scores,test_scores = learning_curve(estimator,X,y,cv=cv,n_jobs=n_jobs)ax.set_title(title) #設置標題if ylim is not None:ax.set_ylim(*ylim) #縱坐標在一致的量綱下ax.set_xlabel("Training examples")ax.set_ylabel("Score")ax.grid() #顯示網格作為背景,不是必須ax.plot(train_sizes,np.mean(train_scores,axis=1),'o-', color="r",label="Training score")ax.plot(train_sizes,np.mean(test_scores,axis=1),'o-', color="g",label="Test score")ax.legend(loc="best")return axdigits = load_digits() X, y = digits.data, digits.targettitle = ["Naive Bayes" ,"DecisionTree" ,"SVM, RBF kernel" ,"RandomForest" ,"Logistic"] model = [GaussianNB(),DTC(),SVC(gamma=0.001),RFC(n_estimators=50),LR(C=.1,solver="lbfgs")] cv = ShuffleSplit(n_splits=50, test_size=0.2, random_state=0)fig, axes = plt.subplots(1,5,figsize=(30,6)) for ind,title_,estimator in zip(range(len(title)),title,model):times = time()plot_learning_curve(estimator, title_, X, y,ax=axes[ind], ylim = [0.7, 1.05],n_jobs=4, cv=cv) print("{}:{}".format(title_,datetime.datetime.fromtimestamp(time()-times).strftime("%M:%S:%f"))) plt.show()

note:

?結果:

Naive Bayes:00:00:417101 DecisionTree:00:00:604189 SVM, RBF kernel:00:08:924170 RandomForest:00:05:252286 Logistic:00:05:541503

三個模型表現出的狀態非常有意思

我們首先返回的結果是各個算法的運行時間。可以看到決策樹和貝葉斯不相伯仲(如果你沒有發現這個結果那么可以多運行幾次你會發現貝葉斯和決策樹的運行時間逐漸變得差不多)。決策樹之所以能夠運行非常快速是因為sklearn中的分類樹在選擇特征時有所偷懶,沒有計算全部特征的信息熵而是隨機選擇了一部分特征來進行計算此速度快可以理解但我們知道決策樹的運算效率隨著樣本量逐漸增大會越來越慢,但樸素貝葉斯卻可以在很少的樣本上獲得不錯的結果因此我們可以預料隨著樣本量的逐漸增大貝葉斯會逐漸變得比決策樹更快樸素貝葉斯計算速度遠遠勝過SVM,隨機森林這樣復雜的模型,邏輯回歸的運行受到最大迭代次數的強烈影響和輸入數據的影響(邏輯回歸一般在線性數據上運行都比較快但在這里應該是受到了稀疏矩陣的影響)。因此在運算時間上樸素貝葉斯還是十分有優勢的

緊接著,我們來看一下每個算法在訓練集上的擬合。手寫數字數據集是一個較為簡單的數據集決策樹森林SVC和邏輯回歸都成功擬合了100%的準確率,但貝葉斯的最高訓練準確率都沒有超過95%這也應證了我們最開始說樸素貝葉斯的分類效果其實不如其他分類器貝葉斯天生學習能力比較弱并且我們注意到隨著訓練樣本量的逐漸增大其他模型的訓練擬合都保持在100%的水平但貝葉斯的訓練準確率卻逐漸下降證明樣本量越大葉斯需要學習的東西越多對訓練集的擬合程度也越來越差。反而比較少量的樣本可以讓貝葉斯有較高的訓練準確率

再來看看過擬合問題首先一眼看到所有模型在樣本量很少的時候都是出于過擬合狀態的(訓練集上表現好測試集上表現糟糕),但隨著樣本的逐漸增多過擬合問題都逐漸消失了不過每個模型的處理手段不同比較強大的分類器們,比如SVM,隨機森林和邏輯回歸,是依靠快速升高模型在測試集上的表現來減輕過擬合問題相對的決策樹雖然也是通過提高模型在測試集上的表現來減輕過擬合但隨著訓練樣本的增加模型在測試集上的表現善生卻非常緩慢。樸素貝葉斯獨樹一幟是依賴訓練集上的準確率下降測試集上的準確率上升來逐漸解決過擬合問題

接下來看看每個算法在測試集上的擬合結果即泛化誤差的大小隨著訓練樣本數量的上升所有模型的測試表現都上升了但貝葉斯和決策樹在測試集上的表現遠遠不如SVM隨機森林和邏輯回歸??SVM在訓練數據量增大到1500個樣本左右的時候測試集上的表現已經非常接近100%而隨機森林和邏輯回歸的表現也在95%以上而決策樹和樸素貝葉斯還徘徊在85%左右但這兩個模型所面臨的情況十分不同決策樹雖然測試結果不高但是卻依然具有潛力,因為它的過擬合現象非常嚴重我們可以通過減枝來讓決策樹的測試結果逼近訓練結果然而貝葉斯的過合現象在訓練樣本達到1500左右的時候已經幾乎不存在了訓練集上的分數和測試集上的分數非常接近只有在非常少的時候測試集上的分數才能夠比訓練集上的結果更高,所以我們基本可以判斷85%左右就是貝葉斯在這個數據集上的極限了可以預測到如果我們進行調參那決策樹最后應該可以達到90%左右的預測準確率但貝葉斯卻幾乎沒有潛力了

在這個對比之下我們可以看出貝葉斯是速度很快但分類效果一般并且初次訓練之后的結果就很接近算法極限的算法幾乎沒有調參的余地也就是說如果我們追求對概率的預測并且希望越準確越好那我們應該先選擇邏輯回歸如果數據十分復雜或者是稀疏矩陣那我們堅定地使用貝葉斯如果我們分類的目標不是要追求對概率的預測那我們完全可以先試試看高斯樸素貝葉斯的效果(反正它運算很快速還不需要太多的樣本),如果效果很不我們就很幸運地得到了一個表現優秀又快速的模型如果我們沒有得到比較好的結果那我們完全可以選擇再更換成更加復雜的模型

總結

以上是生活随笔為你收集整理的Sklearn(v3)——朴素贝叶斯(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91丨九色丨国产在线 | 久草视频在线免费播放 | 麻豆 美女 丝袜 人妻 中文 | 国产精品一区二区在线观看 | 毛片在线免费播放 | 婷婷在线免费 | 一区二区三区资源 | 色婷婷精品久久二区二区密 | 亚洲美免无码中文字幕在线 | 亚洲乱码国产乱码精品天美传媒 | 亚洲一本之道 | 热热热av| 亚洲人视频 | 亚洲成人毛片 | 四色永久访问 | 亚洲自拍中文 | 国产在线播放一区 | 久久久久久五月天 | www.超碰在线观看 | 亚洲24p| 在线观看亚洲一区 | 成人黄色免费看 | 天天想你在线观看完整版高清 | 国产日韩视频一区 | 国产二级一片内射视频播放 | 午夜有码| 久久99深爱久久99精品 | 男女午夜视频在线观看 | 99国产精品久久久久久久成人热 | 成人av一区二区在线观看 | 日韩精品网 | 综合色亚洲 | av综合在线观看 | 免费播放毛片精品视频 | 国产成人精品一区二区在线小狼 | 特黄特色特刺激免费播放 | www.人人草| 免费在线观看黄色网址 | 人人爱爱 | 精品欧美视频 | 特级西西444www | 欧美人与禽猛交乱配 | 女人的天堂av在线 | 国产一区二区中文字幕 | 亚洲区在线 | 国产国语亲子伦亲子 | 久久伊人国产 | 一级特黄毛片 | 亚洲一二三区视频 | 中国美女一级片 | 国产精品久久一 | 理论黄色片 | 三级视频网站 | 免费在线观看亚洲 | 中文字幕亚洲乱码熟女一区二区 | 中文第一页 | 国产成人无码精品久久 | 污版视频在线观看 | 欲色影音 | 国产精品一区二区三区久久久 | 国产伦一区二区三区 | 日韩aⅴ在线观看 | 日韩欧美国产综合 | 日本69视频 | 君岛美绪在线 | 五月激情六月丁香 | 久久久久久久亚洲精品 | 男生女生操操操 | 成人午夜视频在线免费观看 | 青青操91 | 少女视频的播放方法 | 男人插女人的网站 | 亚洲yy| 波多野结衣视频播放 | 中文字幕一区二区三区不卡 | 久久免费视频播放 | 91九色蝌蚪91por成人 | 久久久久久av无码免费看大片 | 国产日韩不卡 | 2025韩国大尺度电影 | 国产日产欧美一区二区 | 91玉足脚交白嫩脚丫 | 欧美a级在线免费观看 | 激情午夜av | 一级做a爰片 | 国产肉体xxxx裸体784大胆 | 夜夜超碰| 国产suv精品一区二区68 | 天天操国产 | 国产精品久久久久久婷婷天堂 | 国产人妻大战黑人20p | 精品少妇一区二区三区免费观 | 99久久99久久 | 小h片在线观看 | 欧美a免费 | 极品探花在线播放 | 女优视频在线观看 | 国产伦精品一区二区三 | 又黄又爽又刺激的视频 |