樸素貝葉斯分類器的訓練速度比線性模型更快。這種高效率所付出的代價是,樸素貝葉斯模型的泛化能力要比線性分類器(如 logisticregression 和 linearsvc)稍差。
樸素貝葉斯模型如此高效的原因在於,它通過單獨檢視每個特徵來學習引數,並從每個特徵中收集簡單的類別統計資料。scikit-learn 中實現了三種樸素貝葉斯分類器:gaussiannb、bernoullinb 和 multinomialnb。gaussiannb 可應用於任意連續資料,而bernoullinb 假定輸入資料為二分類資料,multinomialnb 假定輸入資料為計數資料(即每個特徵代表某個物件的整數計數,比如乙個單詞在句子**現的次數)。bernoullinb 和 multinomialnb 主要用於文字資料分類。
bernoullinb 分類器計算每個類別中每個特徵不為 0 的元素個數。用乙個簡單的例子來說明會很容易理解:
x = np.array([[
0,1,
0,1]
,[1,
0,1,
1],[
0,0,
0,1]
,[1,
0,1,
0]])
y = np.array([0
,1,0
,1])
這裡我們有 4 個資料點,每個點有 4 個二分類特徵。一共有兩個類別:0 和 1。對於類別 0(第 1、3 個資料點),第乙個特徵有 2 個為零、0 個不為零,第二個特徵有 1 個為零、1 個不為零,以此類推。然後對類別 1 中的資料點計算相同的計數。計算每個類別中的非零元素個數:
counts =
for label in np.unique(y)
:# 對每個類別進行遍歷
# 計算(求和)每個特徵中 1 的個數
counts[label]
= x[y == label]
.sum
(axis=0)
print
("feature counts:\n{}"
.format
(counts)
)'''
feature counts:
'''
另外兩種樸素貝葉斯模型(multinomialnb 和 gaussiannb)計算的統計資料型別略有不同。multinomialnb 計算每個類別中每個特徵的平均值,而 gaussiannb 會儲存每個類別中每個特徵的平均值和標準差。 機器學習之監督學習
一 監督學習的三要素 模型 總結資料的內在規律,用數學函式描述的系統 策略 選取最優模型的評價準則 演算法 選取最優模型的具體方法 二 監督學習的實現步驟 1.得到乙個有限的訓練資料集 2.確定包含所有學習模型的集合 3.確定模型選擇的準則,也就是學習策略 4.實現求解最優模型的演算法,也就是學習演...
機器學習之 監督學習應用
最近想搞點新東西,然後就選擇了機器學習,剛開始學 史丹福大學的公開課 有很多不懂地方,如果有什麼錯誤,歡迎指正。首先來介紹一下什麼叫回歸 回歸在數學上來說是給定乙個點集,能夠用一條曲線去擬合,如果這個曲線是一條直線,那就被稱為線性回歸,如果曲線是一條二次曲線,就被稱為二次回歸.引入乙個房屋銷售的例子...
機器學習之監督學習 回歸
回歸問題和 分類問題的區別在於 其待 的目標是 連續變數 線性回歸器 如果面對訓練資料十分龐大的任務,隨機梯度法不論是在分類還是在回歸問題上都表現得十分高效,可以在不損失過多效能的前提下,節省大量計算時間 根據scikit learn官網的建議,如果資料規模超過10萬,推薦使用隨機梯度估計引數模型 ...