為什麼說樸素貝葉斯是高偏差低方差?

2021-09-16 19:20:37 字數 896 閱讀 9017

大家在學習機器學習的時候可能聽說過一種演算法,這種演算法就是樸素貝葉斯演算法,而很多人說樸素貝葉斯演算法是高偏差低方差,在這篇文章中我們就詳細的為大家介紹一下樸素貝葉斯為什麼被說高偏差低方差的原因。

首先,我們假設知道訓練集和測試集的關係。簡單來講是我們要在訓練集上學習乙個模型,然後拿到測試集去用,效果好不好要根據測試集的錯誤率來衡量。但很多時候,我們只能假設測試集和訓練集的是符合同乙個資料分布的,但是我們卻拿不到真正的測試資料。那麼問題來了,怎麼在只看到訓練錯誤率的情況下,去衡量測試錯誤率呢?

而由於訓練樣本很少,因此通過訓練集得到的模型,不是真正正確的。而且,在實際中,訓練樣本往往還有一定的噪音誤差,所以如果太追求在訓練集上的完美而採用乙個很複雜的模型,會使得模型把訓練集裡面的誤差都當成了真實的資料分布特徵,從而得到錯誤的資料分布估計。如果按照這樣的結果,到了真正的測試集上就錯的很明顯了。但是也不能用太簡單的模型,否則在資料分布比較複雜的時候,模型就不足以刻畫資料分布,而體現為連在訓練集上的錯誤率都很高,這種現象較欠擬合。過擬合表明採用的模型比真實的資料分布更複雜,而欠擬合表示採用的模型比真實的資料分布要簡單。

當然,在統計學習框架下,大家刻畫模型複雜度的時候,很多人認為模型的**錯誤率是有兩部分組成的,一部分是由於模型太簡單而帶來的估計不準確的部分,另一部分是由於模型太複雜而帶來的更大的變化空間和不確定性。其實這樣的想法是正確的,所以說,這樣就容易分析樸素貝葉斯了。它簡單的假設了各個資料之間是無關的,是乙個被嚴重簡化了的模型。所以,對於這樣乙個簡單模型,大部分場合都會不準確部分大於不確定部分,也就是說高偏差而低方差。所以說在實際中,為了讓錯誤率盡量小,我們在選擇模型的時候需要平衡不準確和不確定性所佔的比例,這樣當模型複雜度上公升的時候,偏差會逐漸變小,而方差會逐漸變大。

樸素貝葉斯

樸素貝葉斯演算法是一種基於概率統計的分類方法,它主要利用貝葉斯公式對樣本事件求概率,通過概率進行分類。以下先對貝葉斯公式做個了解。對於事件a b,若p b 0,則事件a在事件b發生的條件下發生的概率為 p a b p a b p b 將條件概率稍作轉化即可得到貝葉斯公式如下 p a b p b a ...

樸素貝葉斯

1.準備資料 從文字中構建詞向量 2.訓練演算法 從詞向量計算概率 3.測試演算法 儲存為 bayes.py 檔案 參考 coding utf 8 from numpy import 文字轉化為詞向量 def loaddataset postinglist my dog has flea probl...

樸素貝葉斯

機器學習是將資料轉化為決策面的過程 scikit learn縮寫為sklearn 訓練乙個分類器,學習之後 其處理的準確性 def nbaccuracy features train,labels train,features test,labels test from sklearn.bayes ...