這節進入邏輯回歸。邏輯回歸實際上是一個分類問題,很多情況下,我們的輸出值y并不是一個連續量,很可能只是0、1這樣的離散量。我們可能用1表示一種輸出類型,用0表示另一種輸出類型,顯然此時不能像之前那樣直接利用線性回歸來判定我們的數據趨勢。
<h4>Sigmoid Function</h4>
在這種情況下,我們先在數學上表示y的范圍:

其次:
\le1)
我們將認為大于0.5的值認定為邏輯1,小于0.5的值認定為邏輯0,因此我們需要找到一個函數滿足上面的關系,在這里我們使用sigmoid function,它同時也被稱為logistic function:
=g(\theta^T X))
sigmoid函數的圖像為:

我們可以看到當z大于0時,g(z)>0.5,z小于0時,g(z)<0.5.
即:

\ge 0.5)
實際上h(x)的數值代表的是輸出值為1的概率,就像上面這個推導式,h(x)≥0.5的意思指的是y=1的概率大于百分之五十,用數學表達式表示則為:
Cost Function
在線性回歸中,cost function的表達式為:
=%5Cfrac%7B1%7D%7B2m%7D%5Csum_%7Bi=1%7D%5E%7Bm%7D%5Bh_%7B%5Ctheta%7D%5Cleft(%20x%5Ei%20%5Cright)-y%5E%7B(i)%7D%5D%5E2=%5Cfrac%7B1%7D%7B2m%7D(X%5Ctheta%20-%20%5Cvec%7By%7D)%5ET(X%5Ctheta%20-%20%5Cvec%7By%7D))
顯然對于分類問題,這樣的cost function是不合理的,因此我們可以構造一個函數來合理地描述分類問題的偏差值。
令:
同時假設:
根據上面的條件,我們可以構造一個函數,如下所示:
為了計算方便,我們將上面的式子簡化為:
所以邏輯回歸的cost function為:
將上面的式子向量化后得到:
)
利用梯度下降算法我們可以得到參數的變化方程:
)
為了方便下面對cost function求偏導,我們先計算sigmoid function的導數:
然后求代價函數的偏導數:
(對,很長...近乎絕望...但是并不難)
因此,對代價函數的偏導向量化之后得到:
=\frac{1}{m}X^T [g(X \theta)-\vec{y}\ ])
<h4>最后</h4>
這一節的數學推導可能略難一點,請好好消化,如果有不明白的地方多去問問度娘==
下一節就用matlab實現上述算法。