本文主要分兩個部分進行討論,首先介紹最簡單的線性回歸模型;接着對邏輯回歸進行分析
1、線性回歸-->最小二乘法
對於線性回歸問題,我們根據自變量的個數將其分為一元線性回歸和多元線性回歸,本部分先詳細介紹一元線性模型,然后將其推廣到多元線性模型
1)一元線性模型
當輸入只有一個自變量時,我們稱之為一元線性模型。(最簡單)
設樣本集合為:(xi,yi),i=1,2,…,m。
目標為:在平面上找出一條線,使得樣本點盡可能多的在這條直線上。
設一元線性模型為:h(x)=ax+b,輸出誤差為:Si=yi-h(xi)。
則樣本的整體損失為:
為了讓整體損失函數最小,我們使用最小二乘法。由於整體損失函數為凸函數,因而其極小值即為最小值。
先對a,b求偏導數,並令偏導為0。
整理得:
兩個等式,兩個變量,可以直接使用公式求得a,b。
參數a, b的計算方法見參考文獻[2]。
2)多元線性模型
當輸入的自變量有多個時,我們稱之為多元線性模型。
設多元線性模型為:h(x)=a0+a1x1+a2x2+…+anxn
對單個樣例的誤差為:Si=yi-h(xi)
整體誤差為:
對每個參數求偏導,並賦0:
有n個等式,n個變量,可以求得每個變量ai的值。
變量ai的計算過程見參考文獻[2]。
2、邏輯(logistics)回歸
邏輯回歸可以進行二分類和多分類,下面分別進行討論:
1)二項邏輯回歸(二分類)
假如我們現在需要對一類物品進行二分類,首先根據物品的多個特征,然后將物品的多個特征進行線性組合,這和我們上面討論的多元線性模型有點類似。只是我們現在不是需要擬合平面(空間)上的點,而是需要將平面(空間)上的不同類別的點區分開來。
多元線性模型為:h(x)=a0+a1x1+a2x2+…+anxn
我們可以直接使用多元線性模型來對物品進行分類,通過設置一個閥值,然后將所有h(x)大於閥值的樣本分為一類,其他的分為另一類。但這種方式存在一個問題,由於h(x)的值是任意大小的,閥值的選擇是一件困難的事情,若我們對其進行歸一化處理,則閥值的選擇就相對簡單很多。
設閥值為:t,則
為了方便表述,設:
在此我們使用sigmoid函數對其進行歸一化。
此時,若我們使用平方最小誤差函數來估算參數,由於歸一化后的函數為非凸函數,故而不能使用梯度下降法來找到其最小值。但我們使用極大似然估計的方法估計模型參數。
由於是二分類,可以設:
所以似然函數為:
對數似然函數:
對L(a)求極大值,得到a的估計值。為了能使用梯度下降算法,我們在對數似然函數前面加上負號,這樣就可以求其最小值:
每次讓參數a向對數似然函數的負梯度方向移動一小步。
//推導過程很簡單,感興趣的可以去看參考文獻[2]
最后,對a的值進行更新:
2)多項邏輯回歸
上面介紹了二項邏輯回歸,多分類的邏輯回歸有點類似,假如類別共有K類,對於前面的k-1類使用下式進行計算:
對於第K類:
總結
邏輯回歸雖然有回歸二字,但是它並不能處理回歸問題,其主要用來進行二分類,當然也能進行多分類。其主要過程是將輸入線性加權后再歸一化到(0,1)這個區間內,其歸一化使用sigmoid函數。
參考文獻:
[1] peghoty, http://blog.csdn.net/itplus/article/details/10857843
[2] 李航,統計學習方法。