1. 程式人生 > >樸素貝葉斯的引數估計

樸素貝葉斯的引數估計

輸入空間 XRnn 維向量的集合,輸出空間 Y={c1,c2,...,cK} 為類標記集合設輸入為特徵向量 x,輸出為類標記 yX 為定義在輸入空間上的隨機向量,Y 是定義在輸出空間上的隨機向量。P(x,y)XY 的聯合概率分佈,訓練資料集 T={(x1,y1),(x2,y2),...,(xN,yN)}P(X,Y) 獨立同分布產生。

樸素貝葉斯的決策函式為:

y=argmaxckP(Y=ck)jNP(X(j)=x(j)|Y=ck)

模型的學習意味著估計 P(Y=ck)P(X(j)=x(j)|Y=ck). 可以使用極大似然估計(MLE)最大後驗概率估計(MAP)

來進行引數估計.這裡主要討論極大似然估計。

1. 極大似然估計

極大似然估計適於“模型已知,引數未定”的情況. 已知某個隨機樣本滿足某種概率分佈,但是其中具體的引數不清楚,引數估計就是通過若干次試驗,觀察其結果,利用結果推出引數的大概值。最大似然估計是建立在這樣的思想上:已知某個引數能使這個樣本出現的概率最大,我們當然不會再去選擇其他小概率的樣本,所以乾脆就把這個引數作為估計的真實值。我們所估計的模型引數,要使得產生這個給定樣本的可能性最大. 該方法通常有以下幾個步驟:

  • 寫出似然函式
  • 對似然函式取對數
  • 求導數
  • 解似然方程

其中最關鍵的一步在於列出似然函式。

2. 從變數 Y
的分佈律出發構造似然函式

2.1 最簡單的假設:變數 Y 服從伯努利分佈

為簡單起見,考慮二分類的情況,並假設變數 Y 服從伯努利分佈。設 p{Y=c1}=p,則 p{Yc1}={Y=c2}=1p. 統一起來表示為 P{Y=t}=pt(1p)1t(t=0,1).

事件 yi 發生的概率是P{yi=t}=pti(1p)1ti. 設訓練集中 c1 出現的次數為 d ,則 d=Ni=1I(yi=c1).

樣本聯合分佈為:

L(y1,y2,...,yN;p)=i=1Npti(1p)Nti=pd(1p)Nd

L(y1,y2,...,yN;p) 看成是 p

的函式,稱為引數 p 的似然函式,記為 L(p). 取對數似然函式 lnL(p)=dlnp

相關推薦

最大似然和引數估計

引數估計是指已知分類器結構或函式形式,從訓練樣本中估計引數。以貝葉斯分類為例,假定概率密度分佈符合一維高斯分佈,則引數估計的任務就是根據訓練樣本估計μ和σ。常用的引數估計方法有最大似然估計和貝葉斯引數估計法。 最大似然估計 假設引數為確定值,根據似然度最大進行最

最大似然估計和最大後驗概率估計引數估計

舉個例子:偷盜的故事,三個村莊,五個人偷。 村子被不同小偷偷的概率:P(村子|小偷1)、P(村子|小偷2)、P(村子|小偷3) 小偷1的能力:P(偷盜能力)=P(村子1|小偷1)+P(村子2|小偷1)+P(村子3|小偷1)+P(村子4|小偷1)+P(村子5|小偷1) 小

引數估計思想和引數估計

貝葉斯與頻率派思想頻率派思想    長久以來,人們對一件事情發生或不發生,只有固定的0和1,即要麼發生,要麼不發生,從來不會去考慮某件事情發生的概率有多大,不發生的概率又是多大。而且事情發生或不發生的概率雖然未知,但最起碼是一個確定的值。比如如果問那時的人們一個問題:“有一個

引數估計的理解

極大似然估計 貝葉斯估計是引數估計中的一種方法,以貝葉斯思想為基礎,而貝葉斯思想在機器學習中經常用到。機器學習中常涉及貝葉斯網路,最終的問題都是轉化為引數求解。貝葉斯引數估計是這些問題的基礎版本。前方高能預警,本文的講解比較理論。 實際問題中我們會有很多資料

樸素引數估計

輸入空間 X⊆Rn 為 n 維向量的集合,輸出空間 Y={c1,c2,...,cK} 為類標記集合設輸入為特徵向量 x,輸出為類標記 y。X 為定義在輸入空間上的隨機向量,Y 是定義在輸出空間上的隨機向量。P(x,y) 為 X 和 Y 的聯合概率分佈,訓練資料集

機器學習筆記(六)——樸素法的引數估計

一、極大似然估計 在上一筆記中,經過推導,得到了樸素貝葉斯分類器的表示形式: y=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck)(1) 也就是說,樸素貝葉斯方法的學習是對概率P(Y=ck)和P(X(j)=x(j)|Y=ck)的

樸素法的引數估計

極大似然估計 在樸素貝葉斯法中,可以使用極大似然估計法估計相應的概率。可以用極大似然估計去估計先驗概率。 貝葉斯估計: 用極大似然估計可能會出現所要估計的概率值為0的情況。這時會影響到後驗概率的結果。使分類產生誤差。

《統計學習方法》 樸素 極大使然估計 Python實現

程式碼可在Github上下載:程式碼下載 今天看了一下《統計學習方法》的樸素貝葉斯的演算法,然後結合參考了《機器學習實戰》一些程式碼。用Python實現了一下例4.1。 實現的是P50頁的例4.1,先簡單說下公式。 $$y=argmax_{y_k}{P(Y=y_k)\p

統計學習方法第四章極大似然估計樸素分類方法例題4.1程式碼實踐

#-*- coding:utf-8 -*- from numpy import * #將書上的資料輸入,這裡懶得輸入那麼多個列表就用下array的轉置方法吧!就用這個方法吧0.0 def loadDataSet(): dataSet=[[1,1,1,1,1,2,2,2,2,2,3,3,3,3,3],

《統計學習方法》第4章樸素法與估計

前言 寫本文章主要目的是複習(畢竟之前看紙質版做的筆記), 對於證明比較跳躍和勘誤的地方我都做了註解,以便初學者和以後複習地時候快速閱讀理解不會卡住。 本文原文將書上所有證明給出,由於CSDN的公式編輯

極大似然估計法推出樸素法中的先驗概率估計公式如何理解

下面的答案將先照《統計學習方法》一書將問題補充完整,以便手上沒這本書的人也能看明白,然後再給出推導過程。 設輸入空間為 n 維向量的集合,輸出空間為類標記集合 {}。輸入為特徵向量 x 屬於輸入空間,輸出為類標記 y 屬於輸出空間。X 是定義在輸入空間上的隨機向量,Y 是定義

最大似然估計、最大後驗估計樸素分類演算法

最大似然估計、最大後驗估計與樸素貝葉斯分類演算法 目錄   一、前言   二、概率論基礎   三、最大似然估計   四、最大後驗估計   五、樸素貝葉斯分類   六、參考文獻   一、前言   本篇文章的主要內容為筆者對概率論基礎內容的回顧,及個人對其中一些知識點的解讀。另外,在這些上述知識的基礎之

<Machine Learning in Action >之二 樸素 C#實現文章分類

options 直升機 water 飛機 math mes 視頻 write mod def trainNB0(trainMatrix,trainCategory): numTrainDocs = len(trainMatrix) numWords =

(筆記)斯坦福機器學習第六講--樸素

span || -h 沒有 height 單純 去除 變量 logistic 本講內容 1. Naive Bayes(樸素貝葉斯) 2.Event models(樸素貝葉斯的事件模型) 3.Neural network (神經網絡) 4.Support vector mac

基於的樸素的文本分類(附完整代碼(spark/java)

ava -s for 轉換成 模型保存 ext js rgs cti txt 本文主要包括以下內容: 1)模型訓練數據生成(demo) 2 ) 模型訓練(spark+java),數據存儲在hdfs上 3)預測數據生成(demo) 4)使用生成的模型進行文本分類。 一

樸素分類算法

貝葉斯 樸素 之前有次考試考的是手工計算樸素貝葉斯的分類。當時沒答對,後來搞明白了,不久又忘得差不多了。所以寫個例子在這兒記一下。先推導一下貝葉斯公式:假定我們觀察到兩個事件都發生了,記做P(AB),那麽我們既可以認為先發生了事件A,在此基礎上又發生了事件B,也可以認為先發生了事件B,在此基礎上又發生

利用樸素(Navie Bayes)進行垃圾郵件分類

判斷 ase create numpy water 向量 not in imp img 貝葉斯公式描寫敘述的是一組條件概率之間相互轉化的關系。 在機器學習中。貝葉斯公式能夠應用在分類問題上。這篇文章是基於自己的學習所整理。並利用一個垃圾郵件分類的樣例來加深對於理論的理解

樸素分類算法介紹及python代碼實現案例

urn bus 人的 元素 1.2 -s index 代碼 步驟 樸素貝葉斯分類算法 1、樸素貝葉斯分類算法原理 1.1、概述 貝葉斯分類算法是一大類分類算法的總稱 貝葉斯分類算法以樣本可能屬於某類的概率來作為分類依據 樸素貝葉斯分類算法是貝葉斯分類算法中最簡單的一種 註:

樸素算法資料整理和PHP 實現版本

樸素貝葉斯樸素貝葉斯算法簡潔http://blog.csdn.net/xlinsist/article/details/51236454 引言先前曾經看了一篇文章,一個老外程序員寫了一些很牛的Shell腳本,包括晚下班自動給老婆發短信啊,自動沖Coffee啊,自動掃描一個DBA發來的郵件啊, 等等。於是我也想

javascript實現樸素分類與決策樹ID3分類

.com 訓練集 this ice map ive sum length roc 今年畢業時的畢設是有關大數據及機器學習的題目。因為那個時間已經步入前端的行業自然選擇使用JavaScript來實現其中具體的算法。雖然JavaScript不是做大數據處理的最佳語言,相比還沒有