Logistic迴歸(隨機梯度上升)

由於梯度上升優化算法在每次更新數據集時都需要遍歷整個數據集,計算複雜都較高,這裏有一個隨機梯度上升算法也可以求得迴歸係數,這種算法一次只用一個樣本點來更新迴歸係數。

def stocGradAscent0(dataMatrix, classLabels):
    m,n = shape(dataMatrix)
    alpha = 0.01
    weights = ones(n)   #initialize to all ones
    for i in range(m):
        h = sigmoid(sum(dataMatrix[i]*weights))
        error = classLabels[i] - h
        weights = weights + alpha * error * dataMatrix[i]
    return weights
這個算法與梯度上升優化算法很相似,但是也有些區別,後者h和error都是向量,這裏都是數值,這裏沒有矩陣轉換過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章