機器學習演算法 之logistic回歸

2021-07-06 07:42:21 字數 1573 閱讀 2111

還是那句話:統計學習=模型+策略+演算法

1.模型

logistic模型是對條件概率進行了建模:

雖然叫做logistic回歸,但實際上解決的是基本的二分類問題,因此可以建立上述的條件概率模型。

這裡利用了sigmoid函式的特性,比之線性模型,應當是乙個更加合理的模型

2.策略

在建立好概率模型之後,本演算法使用的策略是最大似然法則,同樣可以理解成最小經驗風險準則。給定乙個訓練集(xi,yi),那麼對於每個xi都可以得到p(y|x)的概率(由引數theat表示),把他們乘起來即可得到似然表示式,如下所示:

目標就是最大化上述的似然表示式

3.演算法

sigmoid函式是乙個非線性函式,上式沒法求得閉式的最優解。因此可以採用梯度上公升演算法來求解最大值,即如下所示:

在實際求解中往往使用隨機梯度下降法,關於隨機梯度下降和批量梯度下降,詳見:

def

stocgradascent1

(datamatrix, classlabels, numiter=150):

m,n = shape(datamatrix)

weights = ones(n) #initialize to all ones

for j in range(numiter):

dataindex = range(m)

for i in range(m):

alpha = 4/(1.0+j+i)+0.0001

#apha decreases with iteration, does not

randindex = int(random.uniform(0,len(dataindex)))#go to 0 because of the constant

h = sigmoid(sum(datamatrix[randindex]*weights))

error = classlabels[randindex] - h

weights = weights + alpha * error * datamatrix[randindex]

del(dataindex[randindex])

return weights

上面的**片段使用的是隨機梯度下降演算法,同時還對步長alpha做了一些處理,會隨著迭代次數的增加而下降。這也是一種比較好的做法,因為在實際的應用場景下,往往會有個別難以正確分類的資料,因為這些資料而大幅改變引數是不合理的。通過對步長的修改,使得當迭代次數很大的時候,步長變小,這樣就會使得引數不會太受無法分類點的影響。

機器學習之logistic回歸

機器學習 回歸 在 機器學習之線性回歸模型 一章中,我們學習了如何使用線性模型進行回歸學習。如果要將線性模型用來分類,就要用到該章結尾介紹的廣義線性模型了。logistic回歸模型採用logistic函式來將線性回歸產生的 值z wtx b 轉化為乙個接近0或1的 y 值 y 11 e z 1 由此...

機器學習 logistic

一 面對缺失資料集的方法 1.使用可用特徵的均值來填補缺失值 2.使用特殊值來填補缺失值,如 1 3.忽略有缺失值的樣本 4.使用相似樣本的均值添補缺失值 5.使用另外的機器學習演算法 缺失值。二 預處理資料做兩件事 如果測試集中一條資料的特徵值已經確實,那麼我們選擇實數0來替換所有缺失值,因為本文...

《機器學習實戰》之Logistic回歸

本章內容 我們介紹幾個最優化演算法,並利用它們訓練出乙個非線性函式用於分類。回歸 假設我們有一些資料點,我們用一條直線對這些點進行擬合,這個擬合過程就稱作回歸。利用logistic回歸進行分類的主要思想是 根據現有資料對分類邊界線建立回歸公式,以此進行分類 logistic回歸的一般過程 1 收集資...