看了不少有關邏輯回歸的文章,感覺講的對新手不是很友好。

所以冒昧寫一篇,權當拋磚引玉。本人精力能力有限,個人理解可能與正確情況存在偏差,歡迎大家指正。

在寫具體的邏輯回歸之前,先想說下分類的基本思路與步驟

1.分類的基本思路與步驟

1.我們需要一個基本模型。給這個基本模型輸入一系列樣本的數據,依據這個模型的輸出來判斷這個樣本屬於哪一類。

假定右邊的那個y=x就是我們的基本模型,我們在分類的時候,可以規定當輸出值,也就是y的值,大於0時(y軸右半邊),可以將這個輸入對應的樣本分為正類;當y小於0時,將它分為負類

2.對待不同的問題,這個模型需要不同的優化調整,以達到分類相應問題的能力。

比如一個樣本有兩個屬性值,分別為1,-1。權重分別為2,1。樣本為負類。我們計算的時候,發現2*1-1*1=1,在y軸右邊,應該分類為正類。是錯誤分類,所以我們可以調整權重為1,2或者改變模型為y=x-2。

3.為了優化這個模型,我們需要尋找一個優化函數,就是代價函數,需要依據這個函數,來優化我們的模型。

比如我們需要讓屬於一個類的點之間的距離小等等

在對模型進行優化調整的時候,一般是從兩個方面入手。

  • 調整函數參數,達到調整函數模型的目的
  • 調整樣本屬性數據的權重,達到目的

絕大多數情況下,我們是選擇後者來進行調整模型

2.邏輯回歸

邏輯回歸中,它也確定了一個基本函數模型,叫做邏輯回歸模型。表達式如下

它的函數圖像是這樣的:

對於邏輯回歸的介紹,可以從兩個角度來思考。

從對數幾率的角度理解,下回再說

1、從概率的角度來考慮

1)當我們進行分類問題的時候,如果有一隻貓,我們需要去判斷它的性別。我們用一個函數去檢測它,發現計算出來它屬於公貓的概率大於0.5。我們是不是有一定理由去相信它是一直公貓。

現在,我們回頭看下邏輯回歸函數,我們發現這個函數的取值在0到1之間,符合概率中的0到1取值。

當有個樣本需要我們進行分類的時候,只要將這個樣本的屬性,帶入到這個函數中,計算出來的結果,大於0.5,它就屬於A類,小於0.5,它就屬於B類。

從這個角度理解,這個函數就是一個簡單的決策函數,一個輸出概率的函數,我們依據輸出的概率進行分類。

2)那接下來,我們需要確定上述邏輯回歸函數的輸入。

我們將輸入表示成樣本屬性與權重的乘積和。

上述邏輯回歸函數的輸入表示為z,若我們將樣本的屬性值表示為x1,x2。則z=w1x1+w2x2+b。

大致來看,模型基本算搭建好了。如果我們有樣本,將樣本的屬性值,通過權重作用後,輸入到邏輯回歸函數中,然後依據邏輯回歸函數的輸出值,進行分類,最後與樣本的實際類別進行比較,再通過調整權重或者模型,直到得到比較滿意的結果

這樣看,邏輯回歸函數,只是計算屬性的輸出值,根據輸出值來判斷類型而已。

3)但,彷彿沒有這麼簡單。一群蛋疼的人,又開始搗鼓起來。

我們不根據輸出值與0.5的關係來進行判斷,那樣大材小用了。輸出值明明可以當作概率的。

比如

樣本屬性值1屬性值2實際類別Ax1=5x2=9正/y=1Bx1=3x2=2負/y=0

假如我們規定,屬於正類的概率表示為p,p為上面的g(z),z=w1x1+w2x2+b。

則負類的概率為1-p,1-p為上面的1-g(z),z=w1y1+w2y2+b。

注意,這裡有個邏輯。我們寫A樣本概率的時候,如果知道它是正類,它是不是利用g(z)求解出的結果是最大的。若A是負類,那我們用g(z)求解出來的數值也許為0.3,也就是說,如果我們用1-g(z)這個來求解A的負類概率的話,是為0.7

也就是說,如果所有樣本都能正確分類,正類的用p計算,負類的用1-p計算,這樣各自都可以得到最大的結果。那我們可以構造一個函數,它表示每個樣本被分類後的概率乘積,我們的目的,是為了讓這個函數最大,也就達到樣本被正確分類。

所以我們需要一個表達式來表達,每一個樣本被分類的概率

我們來看下這個表達式的巧妙之處。

當一個樣本A被分類成正類別的時候,y=1,P=p;若A真為正類別,那這個P是最大的。

當一個樣本B被分類成負類別的時候,y=0,P=1-p;若B真為負類別,那這個P也是最大的。

若有n個樣本,如果都被正確分類,各自最大,則他們的概率乘積也是最大的。也就是求下面函數的最大

接下來,就是對這個進行運算,取對數,將乘積變成相加。為了計算這個的最大值,可以加一個負號,變為計算它的最小值。

直接搬運其他人內容,下圖中,h(x)為上式的p,L為上式的F

總結下,將邏輯回歸的輸出值當作概率,若樣本被正確分類,利用正類利用p,負類利用1-p所計算的概率都是最大的,所以若所有樣本都被正確分類,則每個樣本概率的乘積也是最大的。可以利用數學方法,加負號,將求解最大值運算轉換為求解最小值運算。

推薦閱讀:

相关文章