
這里再重復一下標題為什么是"使用"而不是"實現":
首先,專業人士提供的算法比我們自己寫的算法無論是效率還是正確率上都要高。
其次,對于數學不好的人來說,為了實現算法而去研究一堆公式是很痛苦的事情。
再次,除非他人提供的算法滿足不了自己的需求,否則沒必要"重復造輪子"。
下面言歸正傳,不了解貝葉斯算法的可以去查一下相關資料,這里只是簡單介紹一下:
1.貝葉斯公式:
P(A|B)=P(AB)/P(B)
2.貝葉斯推斷:
P(A|B)=P(A)×P(B|A)/P(B)
用文字表述:
后驗概率=先驗概率×相似度/標準化常量
而貝葉斯算法要解決的問題就是如何求出相似度,即:P(B|A)的值
3. 在scikit-learn包中提供了三種常用的樸素貝葉斯算法,下面依次說明:
1)高斯樸素貝葉斯:假設屬性/特征是服從正態分布的(如下圖),主要應用于數值型特征。
使用scikit-learn包中自帶的數據,代碼及說明如下:
>>>from sklearn import datasets ##導入包中的數據
>>> iris=datasets.load_iris() ##加載數據
>>> iris.feature_names ##顯示特征名字
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
>>> iris.data ##顯示數據
array([[ 5.1, 3.5, 1.4, 0.2],[ 4.9, 3. , 1.4, 0.2],[ 4.7, 3.2, 1.3, 0.2]............
>>> iris.data.size ##數據大小 ---600個
>>> iris.target_names ##顯示分類的名字
array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
>>> from sklearn.naive_bayes import GaussianNB ##導入高斯樸素貝葉斯算法
>>> clf = GaussianNB() ##給算法賦一個變量,主要是為了方便使用
>>> clf.fit(iris.data, iris.target) ##開始分類。對于量特別大的樣本,可以使用函數partial_fit分類,避免一次加載過多數據到內存
>>> clf.predict(iris.data[0].reshape(1,-1)) ##驗證分類。標紅部分特別說明:因為predict的參數是數組,data[0]是列表,所以需要轉換一下
array([0])
>>> data=np.array([6,4,6,2]) ##驗證分類
>>> clf.predict(data.reshape(1,-1))
array([2])
這里涉及到一個問題:如何判斷數據符合正態分布? R語言里面有相關函數判斷,或者直接繪圖也可以看出來,但是都是P(x,y)這種可以在坐標系里面直接
畫出來的情況,而例子中的數據如何確定,目前還沒有搞明白,這部分后續會補上。
2)多項式分布樸素貝葉斯:常用于文本分類,特征是單詞,值是單詞出現的次數。
##示例來在官方文檔,詳細說明見第一個例子
>>> import numpy as np
>>> X = np.random.randint(5, size=(6, 100)) ##返回隨機整數值:范圍[0,5) 大小6*100 6行100列
>>> y = np.array([1, 2, 3, 4, 5, 6])
>>> from sklearn.naive_bayes import MultinomialNB
>>> clf = MultinomialNB()
>>> clf.fit(X, y)
MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)
>>> print(clf.predict(X[2]))
[3]
3)伯努力樸素貝葉斯:每個特征都是是布爾型,得出的結果是0或1,即出現沒出現
##示例來在官方文檔,詳細說明見第一個例子
>>> import numpy as np
>>> X = np.random.randint(2, size=(6, 100))
>>> Y = np.array([1, 2, 3, 4, 4, 5])
>>> from sklearn.naive_bayes import BernoulliNB
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB(alpha=1.0, binarize=0.0, class_prior=None, fit_prior=True)
>>> print(clf.predict(X[2]))
[3]
補充說明:此文還不完善,示例一中也有部分說明需要寫,最近事情較多,后續會逐漸完善。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24