二分類


分類

 分類問題是機器學習中非常重要的一個課題。現實生活中有很多實際的二分類場景,如對於借貸問題,我們會根據某個人的收入、存款、職業、年齡等因素進行分析,判斷是否進行借貸;對於一封郵件,根據郵件內容判斷該郵件是否屬於垃圾郵件。

圖1-1 分類示意圖

回歸作為分類的缺陷

 由於回歸的輸出類型是連續性,不能直接輸出類別,因此通常將某個區間內的取值作為某個類別。以二分類為例,則有。似乎可以解決分類問題,但如果出現圖1-2右圖情況,顯然綠色的分界線具有更好的魯棒性,但使用回歸進行梯度下降時,為了減少整體誤差,最終的分界線就變為紫色。

 

 

圖1-2 二分類示例圖

回歸應用於多分類中的缺陷

 在進行回歸時,需要有一個樣本的標簽。那么,如果我們假設class1的標簽為1,class2的標簽為2,class3的標簽為3,那這就意味你做了一個潛在假設:class1和class2比較接近,class1跟class3比較遠。但如果實際數據並不符合這個假設,使用回歸就會得到一個很差的結果。

貝葉斯分類

 可以從概率的角度進行分類,分別計算出某個樣本屬於各個類別的概率,最后選擇最大的概率作為樣本的類別;假設Box1和Box2分別是兩個類別,其中數據的分布如圖1-3所示,當給定一個藍色圓圈,能否求解藍色圓圈Blue是從Box1還是Box2取出?

圖1-3 盒子分類樣例

 分別計算P(B1|Blue)、P(B2|Blue)

 所以,藍色圓圈從Box1中取出的概率更大。

數據分布假設

  在計算(1)的時候,P(Blue|B1)是比較好計算的,但是在一些更復雜的情況下,我們就很難直接統計出P(Blue|B1);例如,我們已知數據集{(2,1),(3,1),...(4,7)}是屬於class1,那么當給定數據x=(5,1),如何計算P(x|class1)?

   通常我們假設數據是由正態分布生成而來:

  

  采用極大似然估計,求解出參數;極大似然估計是在已知數據集和模型,但不知道模型的具體參數時,對參數進行求解的方法。極大似然估計做出這樣一個假設:如果某組參數使已知數據集生成的概率達到最大,這組參數就是我們所要求解。以(2)為例:

   

 解(5)得:

 

 將求解出的(6)帶入(2)中就求解出高斯分布。對於未知數據,帶入(2)便可獲得P(x|class1)。

 

Logistics回歸推導過程

  對於不同類別的數據,我們可以分別求解出但是對於對於不同的類別可以共享。因為對於不同類別都求解,會導致模型參數過多,從而導致過擬合。因此,我們對(1)進行更一般的描述,並進行適當轉化處理

 將(8)帶入(7)中有

   

 對(8)進行處理

 

 

 由於共享參數Σ,,將(12)的第二項展開,最終的結果有 

 將(13)帶入(9)有

 

Logistic回歸的評估函數

   Logistics回歸常用於二分類,如判斷一封郵件是否是垃圾郵件;在已知Logistics回歸的表達形式(14),如何來確定目標函數,並且最優化目標函數?

以二分類為例,假設數據集如圖1-4

圖1-4 二分類數據集

則目標函數為(15),我們的目標是找到w,b,使L(w,b)最大化。但通常可以采用最小化某個值來進行參數更新,因此對(15)進行轉換

對(15)先取ln,在添加負號有:

 為了對(17)能有一個統一的描述公式,對數據集的標簽進行轉換

 

圖1-5 二分類標簽轉換

 

 因此,可以將(17)轉換為

 

 可以看做是兩個伯努利分布的cross entropy(交叉熵)

 

圖1-6 cross entropy(交叉熵)示意圖 

均方誤差作為Logistics回歸的缺陷

 將(15)作為目標函數,其假設Logistics生成整個數據集最大概率的參數作為模型的最佳參數。不同於極大似然估計,將極大似然的表達式取負號,采用梯度下降進行整個式子最小化,最終更新參數。

假設使用均方誤差作為Logistics的損失函數,損失函數表示如下:

   

 采用梯度下降進行參數更新:

  

  對(20)來說,當表明實際值等於標簽值,應停止變化,確實為0;當,表明實際值不等於標簽值,參數應發生變化,但也為0,導致參數無法更新;因此,采用均方誤差作為Logistics回歸的問題在於,有時模型還沒達到最優解或者局部最優解,但是參數就已經停止更新

參考資料

[1]機器學習-李宏毅


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM