版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Spark實現(xiàn)貝葉斯算法實現(xiàn)貝葉斯算法本章要點本章要點一、分類算法一、分類算法二、貝葉斯公式二、貝葉斯公式三、樸素貝葉斯分類三、樸素貝葉斯分類四、四、Spark實現(xiàn)貝葉斯算法實現(xiàn)貝葉斯算法分類算法分類算法何為分類算法?簡單來說,就是將具有某些特性的物體歸類對應到何為分類算法?簡單來說,就是將具有某些特性的物體歸類對應到一個已知的類別集合中的某個類別上。從數(shù)學角度來說,可以做如一個已知的類別集合中的某個類別上。從數(shù)學角度來說,可以做如下定義:下定義:已知集合:已知集合: C=y 1 ,y 2 ,.,y n 和和 I=x 1 ,x 2 ,.,x m ,. ,確定映射,確定映射規(guī)則規(guī)則 y=f(x)
2、 ,使得任意,使得任意 x i I 有且僅有一個有且僅有一個 y j C 使得使得 y j =f(x i ) 成立。成立。其中,其中,C為類別集合,為類別集合,I為待分類的物體,為待分類的物體,f則為分類器,分類算法則為分類器,分類算法的主要任務就是構造分類器的主要任務就是構造分類器f。分類算法的構造通常需要一個已知類別的集合來進行訓練,通常來分類算法的構造通常需要一個已知類別的集合來進行訓練,通常來說訓練出來的分類算法不可能達到說訓練出來的分類算法不可能達到100%的準確率。分類器的質量的準確率。分類器的質量往往與訓練數(shù)據(jù)、驗證數(shù)據(jù)、訓練數(shù)據(jù)樣本大小等因素相關。往往與訓練數(shù)據(jù)、驗證數(shù)據(jù)、訓練
3、數(shù)據(jù)樣本大小等因素相關。分類算法分類算法舉個例子,我們?nèi)粘I钪锌吹揭粋€陌生人,要做的第一件事情就舉個例子,我們?nèi)粘I钪锌吹揭粋€陌生人,要做的第一件事情就是判斷其性別,判斷性別的過程就是一個分類的過程。根據(jù)以往的是判斷其性別,判斷性別的過程就是一個分類的過程。根據(jù)以往的生活經(jīng)驗,通常經(jīng)過頭發(fā)長短、服飾和體型這三個要素就能判斷出生活經(jīng)驗,通常經(jīng)過頭發(fā)長短、服飾和體型這三個要素就能判斷出來一個人的性別。這里的來一個人的性別。這里的“生活經(jīng)驗生活經(jīng)驗”就是一個訓練好的關于性別就是一個訓練好的關于性別判斷的模型,其訓練數(shù)據(jù)是日常生活中遇到的形形色色的人。突然判斷的模型,其訓練數(shù)據(jù)是日常生活中遇到的形
4、形色色的人。突然有一天,一個娘炮走到了你面前,長發(fā)飄飄,穿著緊身的衣褲,可有一天,一個娘炮走到了你面前,長發(fā)飄飄,穿著緊身的衣褲,可是體型卻很是體型卻很man,于是你就疑惑了,根據(jù)以往的經(jīng)驗,于是你就疑惑了,根據(jù)以往的經(jīng)驗也就是已也就是已經(jīng)訓練好的模型,無法判斷這個人的性別。于是你學會了通過喉結經(jīng)訓練好的模型,無法判斷這個人的性別。于是你學會了通過喉結來判斷其性別,這樣你的模型被訓練的質量更高了。但不可否認的來判斷其性別,這樣你的模型被訓練的質量更高了。但不可否認的是,永遠會出現(xiàn)一個讓你無法判斷性別的人。所以模型永遠無法達是,永遠會出現(xiàn)一個讓你無法判斷性別的人。所以模型永遠無法達到到100%的
5、準確,只會隨著訓練數(shù)據(jù)的不斷增多而無限接近的準確,只會隨著訓練數(shù)據(jù)的不斷增多而無限接近100%的的準確。準確。貝葉斯公式貝葉斯公式貝葉斯公式,或者叫做貝葉斯定理,是貝葉斯分類的基礎。而貝葉貝葉斯公式,或者叫做貝葉斯定理,是貝葉斯分類的基礎。而貝葉斯分類是一類分類算法的統(tǒng)稱,這一類算法的基礎都是貝葉斯公式。斯分類是一類分類算法的統(tǒng)稱,這一類算法的基礎都是貝葉斯公式。目前研究較多的四種貝葉斯分類算法有:目前研究較多的四種貝葉斯分類算法有:Naive Bayes、TAN、BAN和和GBN。理工科的學生在大學應該都學過概率論,其中最重要的幾個公式中理工科的學生在大學應該都學過概率論,其中最重要的幾個公
6、式中就有貝葉斯公式就有貝葉斯公式用來描述兩個條件概率之間的關系,比如用來描述兩個條件概率之間的關系,比如P(A|B)和和P(B|A)。如何在已知事件。如何在已知事件A和和B分別發(fā)生的概率,和事件分別發(fā)生的概率,和事件B發(fā)生時事件發(fā)生時事件A發(fā)生的概率,來求得事件發(fā)生的概率,來求得事件A發(fā)生時事件發(fā)生時事件B發(fā)生的概率,發(fā)生的概率,這就是貝葉斯公式的作用。其表述如下:這就是貝葉斯公式的作用。其表述如下:貝葉斯公式貝葉斯公式樸素貝葉斯分類樸素貝葉斯分類樸素貝葉斯分類,樸素貝葉斯分類,Naive Bayes,你也可以叫它,你也可以叫它NB算法。其核心思算法。其核心思想非常簡單:對于某一預測項,分別計
7、算該預測項為各個分類的概想非常簡單:對于某一預測項,分別計算該預測項為各個分類的概率,然后選擇概率最大的分類為其預測分類。就好像你預測一個娘率,然后選擇概率最大的分類為其預測分類。就好像你預測一個娘炮是女人的可能性是炮是女人的可能性是40%,是男人的可能性是,是男人的可能性是41%,那么就可以判,那么就可以判斷他是男人。斷他是男人。Naive Bayes的數(shù)學定義如下:的數(shù)學定義如下:1.設設 x=a 1 ,a 2 ,.,a m 為一個待分類項,而每個為一個待分類項,而每個 a i 為為 x 的一個的一個特征屬性特征屬性2.已知類別集合已知類別集合 C=y 1 ,y 2 ,.,y n 3.計算
8、計算 x 為各個類別的概率:為各個類別的概率: P(y 1 |x),P(y 2 |x),.,P(y n |x) 4.如果如果 P(y k |x)=maxP(y 1 |x),P(y 2 |x),.,P(y n |x) ,則,則 x 的類別為的類別為 y k 樸素貝葉斯分類樸素貝葉斯分類如何獲取第四步中的最大值,也就是如何計算第三步中的各個條件如何獲取第四步中的最大值,也就是如何計算第三步中的各個條件概率最為重要。可以采用如下做法:概率最為重要。可以采用如下做法:1.獲取訓練數(shù)據(jù)集,即分類已知的數(shù)據(jù)集獲取訓練數(shù)據(jù)集,即分類已知的數(shù)據(jù)集2.統(tǒng)計得到在各類別下各個特征屬性的條件概率估計,即:統(tǒng)計得到在
9、各類別下各個特征屬性的條件概率估計,即: P(a 1 |y 1 ),P(a 2 |y 1 ),.,P(a m |y 1 );P(a 1 |y 2 ),P(a 2 |y 2 ),.,P(a m |y 2 );.;P(a 1 |y n ),P(a 2 |y n ),.,P(a m |y n ) ,其中的數(shù)據(jù)可以是離,其中的數(shù)據(jù)可以是離散的也可以是連續(xù)的散的也可以是連續(xù)的3.如果各個特征屬性是條件獨立的,則根據(jù)貝葉斯定理有如下推導:如果各個特征屬性是條件獨立的,則根據(jù)貝葉斯定理有如下推導: P(y i |x)=P(x|y i )P(y i )P(x) 對于某對于某x來說,分母是固定的,所以只要找出分
10、子最大的即為條件來說,分母是固定的,所以只要找出分子最大的即為條件概率最大的。又因為各特征屬性是條件獨立的,所以有:概率最大的。又因為各特征屬性是條件獨立的,所以有: P(x|y i )P(y i )=P(a 1 |y i )P(a 2 |y i ).P(a m |y i )P(y i )=P(y i ) m j=1 P(a j |y i ) Spark實現(xiàn)貝葉斯算法測試數(shù)據(jù)測試數(shù)據(jù)0,1 0 00,2 0 00,1 0 0.10,2 0 0.20,1 0.1 00,2 0.2 01,0 1 0.11,0 2 0.2樸素貝葉斯分類樸素貝葉斯分類其中第一列代表類別,訓練數(shù)據(jù)中有三種類別:其中第一
11、列代表類別,訓練數(shù)據(jù)中有三種類別:0、1、2。第。第2-4列列代表數(shù)據(jù)的三個維度,可以想象成前文中性別分類算法中的頭發(fā)長代表數(shù)據(jù)的三個維度,可以想象成前文中性別分類算法中的頭發(fā)長度、服飾和體型這三個要素。通常來說為了保證每個要素的權值相度、服飾和體型這三個要素。通常來說為了保證每個要素的權值相差不大,需要取相對的數(shù)值,例如頭發(fā)長度差不大,需要取相對的數(shù)值,例如頭發(fā)長度/最長的頭發(fā)長度。最長的頭發(fā)長度。Spark實現(xiàn)貝葉斯算法實現(xiàn)貝葉斯算法public static void main(String args) SparkConf sparkConf = new SparkConf().setA
12、ppName(Bayes).setMaster(local2); JavaSparkContext sc = new JavaSparkContext(sparkConf); JavaRDD data = sc.textFile(/home/yurnom/data/sample_naive_bayes_data.txt); RDD parsedData = data.map(line - String parts = line.split(,); double values = Arrays.stream(parts1.split( ) .mapToDouble(Double:parseDouble) .toArray(); /LabeledPoint代表一條訓練數(shù)據(jù),即打過標簽的數(shù)據(jù)代表一條訓練數(shù)據(jù),即打過標簽的數(shù)據(jù) return new LabeledPoint(Double.parseDouble(parts0), Vectors.dense(values); ).rdd(); Spark實現(xiàn)貝葉斯算法實現(xiàn)貝葉斯算法結果結果Accuracy=1.0Prediction of (0.5, 3.0, 0.5):1.0Prediction of (1.5, 0.4, 0.6):0.0Prediction of (0.3, 0.4, 2.6):2.0由于數(shù)據(jù)的人為捏造過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《計量管理系統(tǒng)論》課件
- 腰椎血管瘤的健康宣教
- 羥磷灰石沉積病的臨床護理
- 踝部骨折的健康宣教
- 手部濕疹的臨床護理
- 2021年功率器件設計行業(yè)新潔能分析報告
- 《電工電子技術 》課件-第4章 變壓器及應用
- 孕期牙痛的健康宣教
- 安全生產(chǎn)培訓課件金能
- 《支付寶相關功能》課件
- 新能源汽車充電樁項目可行性研究報告模板及范文
- 新西蘭飲食文化英文介紹課件
- 改溝改渠施工方案
- DB11T 2081-2023 道路工程混凝土結構表層滲透防護技術規(guī)范
- 我的教育故事
- 中學教職工安全知識測試練習試題
- 2024商業(yè)地產(chǎn)策劃定位和規(guī)劃設計合同書模板
- FANUC機器人培訓教程(完成版)
- 玉溪大紅山鐵礦二期北采區(qū)采礦施工組織設計
- 2024新教科版四年級上冊科學知識點總結精簡版
- 中西文化鑒賞智慧樹知到答案2024年鄭州大學
評論
0/150
提交評論