1、問題的提出
有時我們必須設計在整個先驗概率上都能很好工作的分類器。也就是說,先驗概率可能波動較大又或者先驗概率在設計分類器時是未知的,那么我們要如何設定分類器的判決邊界,使得無論先驗概率以何種形式出現時,都可以將貝葉斯分類器的誤差控制在一定范圍,而不是大幅度的誤差波動。
2、判決邊界是什么?
先來看下面這張圖
橫軸為特征值x,縱軸為似然比。似然比就是似然函數的比值。假設有一個兩類分類問題,兩個似然比分別為p(x|ω1)和p(x|ω2),那么似然比就是p(x|ω1)/p(x|ω2)。
貝葉斯決策規則可以解釋成如果“似然比超過某個閾值(θ),那么可判決為ω1類”。
3、為何可以依靠似然比及閾值來做決策?
由【此文】我們知道了風險是什么以及風險是如何計算的。根據如下的條件風險計算公式
我們可以計算兩類分類問題
R(a1|x)=λ11P(ω1|x) + λ12P(ω2|x)
R(a2|x)=λ21P(ω1|x) + λ22P(ω2|x)
各個式子的含義:
R(a1|x)的意思是對特征值x采取a1行動所可能導致的風險。
R(a2|x)的意思是對特征值x采取a2行動所可能導致的風險。
λij的含義是將ωi類歸到ωj類所導致的錯誤代價。
按照貝葉斯決策的意思,對特征值x要選擇風險最小的一個行為來action。也就是說如果R(a1|x)<R(a2|x),那么將特征值x所在的樣本判為ω1類。
進一步演繹這個不等式,得
λ11P(ω1|x) + λ12P(ω2|x) < λ21P(ω1|x) + λ22P(ω2|x)
λ11P(ω1|x) - λ21P(ω1|x) < λ22P(ω2|x) - λ12P(ω2|x)
(λ11 - λ21)P(ω1|x) < (λ22 - λ12)P(ω2|x) 【式 ①】
又根據貝葉斯公式
式①可以整理為
(λ11 - λ21)p(x|ω1)P(ω1) < (λ22 - λ12)p(x|ω2)P(ω2)
寫成分數形式為
若將不等式的右邊用θ替代,即
那么將有
這個不等式出現。
這個不等式的含義就是:“當似然比大於θ時,也就是R(a1|x)<R(a2|x)時,因此判決為ω1”,得證。
4、如何確定閾值θ ?
閾值θ可以說是我們分類器的判決邊界,那么怎樣的θ才能滿足我們在1中提出的問題,即在先驗概率未知的情況下設定一個判決邊界,該邊界可以使總的風險的最壞情況界定在一定范圍之內。
確定閾值的方法如下:
在似然函數固定的情況下,可以根據
(式②)
(式③)
兩個公式求出在x的取值域內,當P(ω1)取不同值時的曲線。如下圖所示:
如圖所示,當P(ω1)=0.5時,出現最大的貝葉斯誤差。我們就將此P(ω1)值作為制訂判決邊界的參數來計算閾值θ。另一個參數P(ω2) = 1 - P(ω1)。λ11、λ21、λ22 、λ12均為已知。
P(error)的計算函數為:
function perror = getPerror(rate1,rate2) for index=0:10 pw1 = index/10; pw2 = 1-pw1; for x= 1:12 perror(index + 1) = 0; px = rate1(x)*pw1 + rate2(x)*pw2; pw1x = rate1(x)*pw1/px; pw2x = rate2(x)*pw2/px; if(pw1x < pw2x) perror(index + 1) = perror(index + 1) + pw1x * px; else perror(index + 1) = perror(index + 1) + pw2x * px; end end end
參數rate1為p(x|ω1),rate2為p(x|ω2)。
————————————————————————————
有朋友留言說太難懂。我在這里列一下文章的順序,這一篇其實是貝葉斯決策的一個延伸,所以在此之前如果有貝葉斯的基礎會比較容易看懂文章的內容。