如何在百度上做網(wǎng)站品牌策劃書
1. 邏輯回歸
邏輯回歸(Logistic Regression)的模型是一個非線性模型,
sigmoid函數(shù),又稱邏輯回歸函數(shù)。但是它本質上又是一個線性回歸模型,因為除去sigmoid映射函
數(shù)關系,其他的步驟,算法都是線性回歸的。
可以說,邏輯回歸,都是以線性回歸為理論支持的。
只不過,線性模型,無法做到sigmoid的非線性形式,sigmoid可以輕松處理0/1分類問題。
? ? ? ?首先,找一個合適的預測函數(shù),一般表示為h函數(shù),該函數(shù)就是需要找的分類函數(shù),它用來預
測輸入數(shù)據(jù)的判斷結果。然后,構造一個Cost函數(shù)(損失函數(shù)),該函數(shù)表示預測的輸出(h)與
訓練數(shù)據(jù)類別(y)之間的偏差,可以是二者之間的差(h—y)或者是其他的形式。綜合考慮所有
訓練數(shù)據(jù)的“損失”,將Cost求和或者求平均,記為J(θ)函數(shù),表示所有訓練數(shù)據(jù)預測值與實際類
別的偏差。顯然,J(θ)函數(shù)的值越小表示預測函數(shù)越準確(即h函數(shù)越準確),所以這一步需要
做的是找到J(θ)函數(shù)的最小值。找函數(shù)的最小值有不同的方法,Logistic Regression實現(xiàn)時有的
是梯度下降法(Gradient Descent )。
2. 二分類問題
二分類問題是指預測的y值只有兩個取值(0或1),二分類問題可以擴展到多分類問題。例如:我
們要做一個垃圾郵件過濾系統(tǒng),x是郵件的特征,預測的y值就是郵件的類別,是垃圾郵件還是正常
郵件。對于類別我們通常稱為正類(positive class)和負類(negative class),垃圾郵件的例子
中,正類就是正常郵件,負類就是垃圾郵件。
應用舉例:是否垃圾郵件分類?是否腫瘤、癌癥診斷?是否金融欺詐?
3. logistic函數(shù)
如果忽略二分類問題中y的取值是一個離散的取值(0或1),我們繼續(xù)使用線性回歸來預測y的取
值。這樣做會導致y的取值并不為0或1。邏輯回歸使用一個函數(shù)來歸一化y值,使y的取值在區(qū)間
(0,1)內,這個函數(shù)稱為Logistic函數(shù)(logistic function),也稱為Sigmoid函數(shù)(sigmoid
function)。函數(shù)公式如下:
Logistic函數(shù)當z趨近于無窮大時,g(z)趨近于1;當z趨近于無窮小時,g(z)趨近于0。Logistic
函數(shù)的圖形如下:
線性回歸模型幫助我們用最簡單的線性方程實現(xiàn)了對數(shù)據(jù)的擬合,然而,這只能完成回歸任務,無
法完成分類任務,那么 logistics regression 就是在線性回歸的基礎上添磚加瓦,構建出了一種分類
模型。如果在線性模型的基礎上做分類,比如二分類任務,即:y取值{0,1},
最直觀的,可以將線性模型的輸出值再套上一個函數(shù)y = g(z),最簡單的就是“單位階躍函數(shù)”
(unit—step function),如下圖中紅色線段所示。
也就是把
看作為一個分割線,大于 z 的判定為類別0,小于 z 的判定為類別1。
但是,這樣的分段函數(shù)數(shù)學性質不太好,它既不連續(xù)也不可微。通常在做優(yōu)化任務時,目標函數(shù)最
好是連續(xù)可微的。這里就用到了對數(shù)幾率函數(shù)(形狀如圖中黑色曲線所示)。
它是一種"Sigmoid”函數(shù),Sigmoid函數(shù)這個名詞是表示形式S形的函數(shù),對數(shù)幾率函數(shù)就是其中最
重要的代表。這個函數(shù)相比前面的分段函數(shù),具有非常好的數(shù)學性質,其主要優(yōu)勢如下:使用該函
數(shù)做分類問題時,不僅可以預測出類別,還能夠得到近似概率預測。這點對很多需要利用概率輔助
決策的任務很有用。對數(shù)幾率函數(shù)是任意階可導函數(shù),它有著很好的數(shù)學性質,很多數(shù)值優(yōu)化算法
都可以直接用于求取最優(yōu)解。
總的來說,模型的完全形式如下:,LR模型就是在擬合
這條直線,使得這條直線盡可能地將原始數(shù)據(jù)中的兩個類別正確的劃分開。
對于線性邊界的情況,邊界形式如下:
構造預測函數(shù)為:
h(x)的值有特殊的含義,它表示結果取1的概率,因此對于輸入x分類結果為類別1和類別0的概率分
別為:
正例(y=1)? ?
負例(y=0)? ?
4. 損失函數(shù)
對于任何機器學習問題,都需要先明確損失函數(shù),LR模型也不例外,在遇到回歸問題時,通常我
們會直接想到如下的損失函數(shù)形式(平均誤差平方損失MSE):
但在LR模型要解決的二分類問題中,損失函數(shù)的形式是這樣的:
這個損失函數(shù)通常稱作為對數(shù)損失(logloss),這里的對數(shù)底為自然對數(shù)e,其中真實值 y 是有 0/1 兩
種情況,而推測值由于借助對數(shù)幾率函數(shù),其輸出是介于0~1之間連續(xù)概率值。仔細查看,不難發(fā)
現(xiàn),當真實值y=0時,第一項為0,當真實值y=1時,第二項為0,所以,這個損失函數(shù)其實在每次
計算時永遠都只有一項在發(fā)揮作用,那這就可以轉換為分段函數(shù),分段的形式如下:
5. 優(yōu)化求解?
現(xiàn)在我們已經(jīng)確定了模型的損失函數(shù),那么接下來就是根據(jù)這個損失函數(shù),不斷優(yōu)化模型參數(shù)從而
獲得擬合數(shù)據(jù)的最佳模型。
重新看一下?lián)p失函數(shù),其本質上是 L 關于模型中線性方程部分的兩個參數(shù) w?和 b 的函數(shù):
?其中,
現(xiàn)在的學習任務轉化為數(shù)學優(yōu)化的形式即為:
由于損失函數(shù)連續(xù)可微,我們可以借助梯度下降法進行優(yōu)化求解,對于兩個核心參數(shù)的更新方式如
下:?
求得:
進而求得:
轉換為矩陣的計算方式為:
至此,?Logistic Regression模型的優(yōu)化過程介紹完畢。
6. 梯度下降算法
梯度下降法求J(θ)的最小值,θ的更新過程:
要使得最大化,則運用梯度上升法,求出最高點:
# 梯度上升,主要是采用了最大似然的推導
def gradAscent(dataMatIn,classLabels):dataMatrix = mat(dataMatIn)labelMat = mat(classLabels).transpose()m,n = shape(dataMatrix) # n=3alpha=0.001 # 學習率maxCycles=500 # 循環(huán)輪數(shù)theta = ones((n,1))for k in range(maxCycles):h=sigmoid(dataMatrix * theta)error = (labelMat - h)theta = theta + alpha * dataMatrix.transpose()*errorreturn theta
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?