標籤:

機器學習實戰 logistic回歸那章,程序5-1 倒數2-4行代碼,理解困難,求指點?

def gradAscent(dataMatIn, classLabels):

dataMatrix = mat(dataMatIn) #convert to NumPy matrix

labelMat = mat(classLabels).transpose() #convert to NumPy matrix

m,n = shape(dataMatrix)

alpha = 0.001

maxCycles = 500

weights = ones((n,1))

for k in range(maxCycles): #heavy on matrix operations

h = sigmoid(dataMatrix*weights) #matrix mult

error = (labelMat - h) #vector subtraction

weights = weights + alpha * dataMatrix.transpose()* error #matrix mult

return weights


摘自: TsReaper/Machine-Learning-in-Action


之前我也看不懂那裡。這幾天在看周志華的《機器學習》,第三章線性模型裡面有解釋。我直接上傳照片了,但是感覺P59的(3.26)有問題。我用紅筆寫了自己的推算部分


對於這題,我也有疑問,如果目標函數是誤差的平方/2的話(事實上我推導了一下也是這個)那麼,應該求目標函數的最小值,最後替換weights時應該是個減號啊,附上我的草稿紙,有點亂,估計只有我自己能看懂


這裡用到了極大似然法,重新構建了極大似然函數(參數是W)。代碼中是對極大似然函數求導的結果。


可能題主應該已經理解了,但為了後來人能找到答案的話,還是回答一下。

如果你看了前面幾個回答還沒理解的話,請你一定要認真閱讀我下面貼出的這篇文章,裡面有十分詳盡的推導過程。

【機器學習筆記1】Logistic回歸總結 - 洞庭之子的專欄 - CSDN博客


這裡有一個針對小白的完整解釋:

Questions about Logistic Regression in Machine Learning in Action and Full Explanation


梯度向上法是求 平方誤差的極值,1/2E(h(x)-y)^2,求導:由於h(x)是一次函數,故為E(h(x)-y)*X,向量形式就是error × X了


可不可以這麼理解

我數學不好 大神們帶帶我

然後就應該論述y函數 用最大擬然法~


這幾行里的+-*運算都是矩陣運算,而不是實數的運算。


推薦閱讀:

Logit模型和Logistic模型有什麼區別?
Logistic regression是否能在大量有歧義的樣本中很好的學習到其概率分布?

TAG:Logistic回歸 |