機器學習實戰 logistic回歸那章,程序5-1 倒數2-4行代碼,理解困難,求指點?
01-31
def gradAscent(dataMatIn, classLabels):
dataMatrix = mat(dataMatIn) #convert to NumPy matrix labelMat = mat(classLabels).transpose() #convert to NumPy matrixm,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回歸 |