貝葉斯分類器詳解

?1 概率論知識

1.1 先驗概率

先驗概率是基于背景常識或者歷史數據的統計得出的預判概率,一般只包含一個變量,例如P(A),P(B)。

1.2 聯合概率

聯合概率指的是事件同時發生的概率,例如現在A,B兩個事件同時發生的概率,記為P(A,B)、P(A∩B)、P(AB)。

若事件A和事件B相互獨立,則有:

P(A,B)=P(A)P(B)

例子:假設事件A為明天上班,事件B為明天中彩票,其中P(A)=0.5,P(B)=0.5,則明天既上班又中彩票的概率為P(A)P(B)=0.25

1.3 條件概率

其中一般條件概率中的A事件表示結果,B事件表示原因,即由因求果

其中,P (AB) 就是聯合概率。在A與B相互獨立的情況下,易得:

即B事件對A事件沒有影響

1.4 后驗概率

后驗概率和條件概率的區別是:后驗概率是由果求因:,例如,事件A是由事件B引起的,則P(A|B)是條件概率,P(B|A)是后驗概率

舉個通俗易懂的例子:

  • 條件概率:新聞說今天路上出現了交通事故,若想推算一下因此而堵車的概率,也就是 P(堵車|交通事故),這是由因推果。
  • 后驗概率:出門后路上遇到了堵車,若想推算一下這次堵車是由發生了交通事故而引起的概率,也就是后驗概率 P(交通事故|堵車),這是由果求因。

1.5 全概率公式

(1)樣本空間

(2)全概率公式

1.6 貝葉斯公式

設樣本空間為Ω,B為Ω中的事件,A_{1},A_{2},\cdots ,A_{n}為Ω的一個劃分,且P(B) > 0, P(A_{i})>0,i = 1,2,\cdots,n,則有:

P(A_{i}|B)=\frac{P(B|A_{i})P(A_{i})}{\sum_{j=1}^{n} P(B|A_{j})P(A_{j})}, i=1,2,\cdots,n

稱上式為貝葉斯公式,也稱為逆概率公式

2 貝葉斯分類器理論知識

2.1 樸素貝葉斯發的學習與分類

2.1.1?基本方法

  • 輸入空間:\chi?\subseteq?\mathbb{R}^{n}為n維集合的向量
  • 輸出空間:類標記集合\Upsilon =?\begin{Bmatrix} c_{1},c_{2},\cdots,c_{k} \end{Bmatrix}
  • 輸入為特征向量:x \in?\chi
  • 輸出為類標記(class label):y \in?\Upsilon

X是定義在輸入空間\chi上的隨機向量,Y是定義在輸出空間\Upsilon上的隨機變量。P(X,Y)是X和Y的聯合概率分布。訓練數據集

?T=\begin{Bmatrix} \begin{pmatrix} x_{1},y_{1} \end{pmatrix}, \begin{pmatrix} x_{2},y_{2} \end{pmatrix},\cdots,\begin{pmatrix} x_{N},y_{N} \end{pmatrix} \end{Bmatrix}

P(X,Y)獨立同分布產生

樸素貝葉斯法通過訓練數據集學習聯合概率分布P(X,Y),學習過程如下:

(1)學習先驗概率分布及條件概率分布

  • 先驗概率分布:P(Y=c_{k}),k=1,2,\cdots,K
  • 條件概率分布:\mbox{$P(X=x|Y=c_{k})=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_{k}), k=1,2,\cdots,K$}

假設x^{(j)}可取值有S_{j}個,j=1,2,\cdots,n,Y的可能取值有K個,那么參數的個數有K\prod_{j=1}^{n}S_{j},因此條件概率分布P(X=x|Y=c_{k})有指數級別數量的參數,其估計實際是不可行的

樸素貝葉斯法對條件概率分布作了條件獨立性的假設。由于這是一個較強的假設,樸素貝葉斯法也由此得名。樸素貝葉斯法的條件獨立性假設為

\mbox{$P(X=x|Y=c_{k})=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_{k})=\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k}) ~~~(1)$}

樸素貝葉斯法實際上學習到生成數據的機制,所以屬于生成模型。條件獨立假設等于是說用于分類的特征在類確定的條件下都是條件獨立的。這一假設使樸素貝葉斯法變得簡單,但有時會犧牲一定的分類準確率。

樸素貝葉斯分類時,對給定的輸入x,通過學習到的模型計算后驗概率分布P(X=x|Y=c_{k}),將后驗概率最大的類作為x的類輸出,后驗概率計算根據貝葉斯定理進行:

\mbox{$P(Y=c_{k}|X=x) = \frac{P(X=x|Y=c_{k})P(Y=c_{k})}{\sum_{k}P(X=x|Y=c_{k})P(Y=c_{k})}~~~(2)$}

將公式(1)代入到公式(2)可得:

\mbox{$P(Y=c_{k}|X=x) = \frac{P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}{\sum_{k}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}~k=1,2,\cdots,K~~~(3)$}

于是, 樸素貝葉斯分類器可表示為:

\mbox{$y=f(x)=argmax_{c_{k}}P(Y=c_{k}|X=x) = \frac{P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}{\sum_{k}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}~~~(4)$}

由于分母是一樣的,所以可以簡化為:

\mbox{$y=f(x)=argmax_{c_{k}}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})~~~(5)$}

2.1.2 后驗概率最大化含義

樸素貝葉斯會將實例分到后驗概率最大的類中,即等價于期望風險最小化,假設選擇0-1損失函數:

L(Y,f(X))=\left\{\begin{matrix} 1,Y \neq f(X)& \\ 0,Y=f(X)& \end{matrix}\right.

其中f(X)是分類決策函數。這時,期望風險函數為

R_{exp}(f)=E[L(Y,f(X))]

期望是對聯合分布P(X,Y)取的。所以取條件期望

R_{exp}(f)=E_{X}\sum_{k=1}^{K}[L(c_{k},f(X))]P(c_{k}|X)

為了使期望風險最小化,只需對X=x逐個最小化,因此有

最終可知后驗概率最大的類=期望風險最小的類,即樸素貝葉斯采用的原理:

f(x)=argmax_{c_{k}}P(c_{k}|X=x)

2.2?樸素貝葉斯法的參數估計

2.2.1 極大似然估計

2.2.2 學習與分類算法

1 算法流程

2 例子

2.2.3 貝葉斯估計

1 理論

2 例子

取λ=1,之后如下所示:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11037.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11037.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11037.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python: 獲取時間

from datetime import datetime, timedelta# 獲取當前時間 current_time datetime.now() print(f"current_time {current_time}")# 獲取時分秒部分 time current_time.time() print(f"time {time}")# 獲取當前時間,只要日期部分 current_date current…

華為交換機配置導出備份python腳本

一、腳本編寫思路 (一)針對設備型號 主要針對華為(Huawei)和華三(H3C)交換機設備的配置備份 (二)導出前預處理 1.在配置導出前,自動打開crt軟件或者MobaXterm軟件&am…

掌握MySQL執行計劃分析【Explain】

前言 MySQL是一個強大的關系型數據庫管理系統,其高效執行SQL查詢的能力是其核心價值之一。然而,當查詢變得復雜或者數據量急劇增長時,SQL查詢的性能問題往往成為我們不得不面對的挑戰。為了深入了解查詢的執行過程并找到性能瓶頸&#xff0c…

Modbus通訊協議初學

目錄 Modbus通訊協議初學什么是Modbus?Modbus用來做什么?4個種類的寄存器協議速記功能碼Modbus 報文幀示例解讀 Modbus通訊協議初學 什么是Modbus? 顧名思義,它是一個bus,即總線協議。比如串口協議、IIC協議、SPI都是通訊協議。你接觸到這種協議,相信你所處的行業是工業方…

如何自定義Linux命令

說明:本文介紹如何將自己常用的命令設置為自定義的命令,以下操作在阿里云服務器CentOS上進行。 修改配置文件 修改配置文件前,先敲下面的命令查看當前系統配置的shell版本 echo $SHELL或者 echo $0區別在于,$SHELL查看的是系統…

落雪音樂 超好用的桌面端音樂播放器

之前一直都是充某Q音樂的會員,突然不想氪金了,終于找到一個開源的音樂播放器,在此先給落雪無痕大佬跪了 太愛了 簡直白嫖怪的福音 話不多說,直接上操作:解壓密碼:www.1234f.com下載地址:極速云…

圖片批量管理邁入智能新時代:一鍵輸入關鍵詞,自動生成并保存驚艷圖片,輕松開啟創意之旅!

在數字化時代,圖片已成為我們表達創意、記錄生活、傳遞信息的重要工具。然而,隨著圖片數量的不斷增加,如何高效、便捷地管理這些圖片,卻成為了一個令人頭疼的問題。 第一步,進入首助編輯高手主頁面,在上方…

簡單的Python示例母親節的祝福

在Python中,我們通常不會直接編寫HTML源碼,但我們可以編寫一個Python腳本來生成或發送包含母親節祝福的HTML內容。以下是一個簡單的Python示例,它使用字符串拼接來創建一個簡單的HTML頁面,其中包含母親節的祝福。 # 定義一個包含…

【AMBA Bus ACE 總線 9.1 -- Non-cache Master 寫操作 詳細介紹】

請閱讀【AMBA Bus ACE 總線與Cache 專欄 】 歡迎學習:【嵌入式開發學習必備專欄】 文章目錄 Non-cache MasterACE 和系統級緩存一致性ACE 非緩存主控(Non-cacheable Master)Non-cache Master ARM的ACE(AXI Coherency Extension)是一種用于增強系統級緩存一致性的接口規范…

視頻封面一鍵提取:從指定時長中輕松獲取您想要的幀圖片

在數字媒體時代,視頻已成為人們獲取信息、娛樂和溝通的主要形式之一。而一個好的視頻封面,往往能夠吸引觀眾的眼球,增加視頻的點擊率和觀看量。然而,對于很多視頻創作者和編輯者來說,如何從視頻中快速、準確地提取出合…

Git知識點總結

目錄 1、版本控制 1.1什么是版本控制 1.2常見的版本控制工具 1.3版本控制分類 2、集中版本控制 SVN 3、分布式版本控制 Git 2、Git與SVN的主要區別 3、軟件下載 安裝:無腦下一步即可!安裝完畢就可以使用了! 4、啟動Git 4.1常用的Li…

Shell編程之循環語句之for

一.for循環語句 讀取不同的變量值,用來逐個執行同一組命令 for 變量名 in 取值列表 do命令序列 done 示例: 1.計算從1到100所有整數的和 2.提示用戶輸入一個小于100的整數,并計算從1到該數之間所有整數的和 3.求從1到100所有整數的偶數和…

【牛客】SQL206 獲取每個部門中當前員工薪水最高的相關信息

1、描述 有一個員工表dept_emp簡況如下: 有一個薪水表salaries簡況如下: 獲取每個部門中當前員工薪水最高的相關信息,給出dept_no, emp_no以及其對應的salary,按照部門編號dept_no升序排列,以上例子輸出如下: 2、題目…

SBM模型、超效率SBM模型代碼及案例數據(補充操作視頻)

01、數據簡介 SBM(Slack-Based Measure)模型是一種數據包絡分析(Data Envelopment Analysis, DEA)的方法,用于評估決策單元(Decision Making Units, DMUs)的效率。而超效率SBM模型是對SBM模型的…

輪轉數組 與 消失的數字

輪轉數組 思路一 創建一個新內存空間,將需輪轉的數依次放入,之后在把其它數放入 代碼: void rotate(int* nums, int numsSize, int k) {k k % numsSize;// 確定有效的旋轉次數if(k 0)return;int* newnums (int*)malloc(sizeof(int) * nu…

HarmonyOS應用開發者高級認證 試題+答案

判斷題 云函數打包完成后,需要到AppGallery Connect創建對應函數的觸發器才可以在端側中調用(錯誤) 每一個自定義組件都有自己的生命周期(正確) 基于端云一體化開發,開發者需要精通前端、后端不同的開發語言…

h2 數據庫Statement was canceled or the session timed out 解決辦法

背景 某項目因需要存儲的數據較少,選擇了h2 數據庫。數據庫的某張表的數據需要全部加載到內存中使用。 最近,某個項目使用該應用時需求比較特殊,使得這張表的數據量增加到了一萬條。此時,查詢全量數據的 SQL 發生了異常&#xf…

遞歸求fabonacci數列 pta

斐波那契數列(Fibonacci sequence)是一個經典的數列,它由以下遞歸關系定義: [ F(n) F(n-1) F(n-2) ] 其中,( F(0) 0 ) 和 ( F(1) 1 )。 在編程中,遞歸是一種實現斐波那契數列的直觀方法。以下是使用遞…

git之tag操作

查看本地有哪些 tags # git tag -l v0.0.3 v0.0.5 v0.0.6查看遠程有哪些 tags # git ls-remote --tags From https://github.com/eyjian/gomooon.git 1fe7f5ecf369cba34f4328285ce1ec72d62c091e refs/tags/v0.0.3 9371db55046109d7fc9a9f75625d5ec31c326ad1 re…

[muduo網絡庫]——muduo庫Acceptor類(剖析muduo網絡庫核心部分、設計思想)

接著之前我們剖析的muduo庫三大核心組件Channel類,Poller/EpollPoller類,EventLoop類,我們接下來繼續看muduo庫中的其他類,這一篇,我們先來介紹Acceptor類。 Acceptor類 主要功能 Acceptor類用于創建套接字&#xf…