#------------------------------sklearn 實現樸素貝葉斯-----------------------
# 在scikit-learn中,一共有3個樸素貝葉斯的分類演算法類。
# 分別是gaussiannb,multinomialnb和bernoullinb。
# 其中gaussiannb就是先驗為高斯分布的樸素貝葉斯,
# multinomialnb就是先驗為多項式分布的樸素貝葉斯,
# 而bernoullinb就是先驗為伯努利分布的樸素貝葉斯。
## 這三個類適用的分類場景各不相同,一般來說,如果樣本特徵的分布大部分是連續值,使用gaussiannb會比較好。
# 如果如果樣本特徵的分大部分是多元離散值,使用multinomialnb比較合適。
# 而如果樣本特徵是二元離散值或者很稀疏的多元離散值,應該使用bernoullinb。
#----------------------------------案例一------------------------------------
#gaussiannb_高斯樸素貝葉斯
import numpy as np
from sklearn.*****_bayes import gaussiannb
from sklearn.*****_bayes import multinomialnb
from sklearn.*****_bayes import bernoullinb
x=np.array([[-1,-1],[-2,-1],[-3,-2],[1,1],[2,1],[3,2]])
y=np.array([1,1,1,2,2,2])
clf=gaussiannb()
clf.fit(x,y)
print(clf.predict([[-0.8,-1]]))
print(clf.predict_proba([[-0.8,-1]]))
print(clf.predict_log_proba([[-0.8,-1]]))
'''在使用gaussiannb的fit方法擬合資料後,我們可以進行**。此時**有三種方法,
包括predict,predict_log_proba和predict_proba。
predict方法就是我們最常用的**方法,直接給出測試集的**類別輸出。
predict_proba則不同,它會給出測試集樣本在各個類別上**的概率。
容易理解,predict_proba**出的各個類別概率裡的最大值對應的類別,也就是predict方法得到類別。
predict_log_proba和predict_proba類似,它會給出測試集樣本在各個類別上**的概率的乙個對數轉化。
轉化後predict_log_proba**出的各個類別對數概率裡的最大值對應的類別,也就是predict方法得到類別。
'''clf_pf = gaussiannb()
clf_pf.partial_fit(x, y, np.unique(y))
print(clf_pf.predict([[-0.8, -1]]))
'''gaussiannb乙個重要的功能是有 partial_fit方法,這個方法的一般用在如果訓練集資料量非常大,一次不能全部載入記憶體的時候。
這時我們可以把訓練集分成若干等分,重複呼叫partial_fit來一步步的學習訓練集,非常方便。
'''#multinomialnb_多項樸素貝葉斯
x1=np.random.randint(5,size=(6,100))#6*100的陣列,每個數不超過4
y1=np.array([1,2,3,4,5,6])
clf1=multinomialnb()
clf1.fit(x1,y1)
print(clf1.predict(x1[2:3]))
#bernoullinb_伯努利樸素貝葉斯
x2=np.random.randint(2,size=(6,100))
y2=np.array([1,2,3,4,5,4])
clf2=bernoullinb()
clf2.fit(x2,y2)
print(clf2.predict(x2[2:3]))
Sklearn實現樸素貝葉斯
sklearn 實現樸素貝葉斯 在scikit learn中,一共有3個樸素貝葉斯的分類演算法類。分別是gaussiannb,multinomialnb和bernoullinb。其中gaussiannb就是先驗為高斯分布的樸素貝葉斯,multinomialnb就是先驗為多項式分布的樸素貝葉斯,而be...
sklearn之樸素貝葉斯實戰
multinomialnb 實現了資料服從多項式分布時的貝葉斯演算法。import numpy as np 隨機產生0 4之間的整數,產六組,一組100個 x np.random randint 5,size 6,10 y np.array 1,2,3,4,5,6 from sklearn.baye...
sklearn調包俠之樸素貝葉斯
樸素貝葉斯演算法常用於文件的分類問題上,但計算機是不能直接理解文件內容的,怎麼把文件內容轉換為計算機可以計算的數字,這是自然語言處理 nlp 中很重要的內容。tf idf方法資料匯入和tf idf 在sklearn中,通過load files方法可以將子目錄的名字轉換為文件類別 target 將目錄...