第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多元回歸值的梯度下降不收斂

多元回歸值的梯度下降不收斂

寶慕林4294392 2021-10-19 17:13:42
我已經(jīng)嘗試了這段用于多變量回歸的代碼來查找系數(shù),但找不到我犯錯的地方或者我是否在正確的道路上?問題是 mse 值沒有收斂。這里 x1 、 x2 、 x3 是我擁有的 3 個特征變量(我將每個特征列切成這些 x1 、 x2 、x3 變量)def gradientDescent(x,y):   mCurrent1=mCurrent2=mCurrent3=bCurrent=0   iteration=1000   learningRate=0.0000001   n=len(x)   for i in range(0,iteration):       y_predict=mCurrent1*x1+mCurrent2*x2+mCurrent3*x3+bCurrent       mse=(1/n)*np.sum([val**2 for val in (y-y_predict)])       mPartDerivative1=-(2/n)*np.sum(x1*(y-y_predict))       mPartDerivative2=-(2/n)*np.sum(x2*(y-y_predict))       mPartDerivative3=-(2/n)*np.sum(x3*(y-y_predict))       bPartDerivative=-(2/n)*np.sum(y-y_predict)       mCurrent1=mCurrent1-(learningRate*mPartDerivative1)       mCurrent2=mCurrent2-(learningRate*mPartDerivative2)       mCurrent3=mCurrent3-(learningRate*mPartDerivative3)       bCurrent=bCurrent-(learningRate*bPartDerivative)       print('m1:{} m2:{} m3:{} b:{} iter:{} mse:{}'.format(mCurrent1,mCurrent2,mCurrent3,bCurrent,i,mse))    return(round(mCurrent1,3),round(mCurrent2,3),round(mCurrent3,3),round(bCurrent,3))
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

看起來你的程序應(yīng)該可以工作。但是,您的學(xué)習(xí)率可能太小了。請記住,學(xué)習(xí)率是您減少成本函數(shù)的步驟的大小。如果一個學(xué)習(xí)率太小,它會沿著成本曲線的下移太慢,并且需要很長時間才能達到收斂(需要很大的迭代次數(shù))。但是,如果學(xué)習(xí)率太大,那么就會出現(xiàn)發(fā)散的問題。選擇正確的學(xué)習(xí)率和迭代次數(shù)(換句話說,調(diào)整超參數(shù))與其說是科學(xué),不如說是一門藝術(shù)。你應(yīng)該嘗試不同的學(xué)習(xí)率。


我創(chuàng)建了自己的數(shù)據(jù)集和隨機生成的數(shù)據(jù)(其中(m1, m2, m3, b) = (10, 5, 4, 2))并運行了您的代碼:


import pandas as pd

import numpy as np


x1 = np.random.rand(100,1)

x2 = np.random.rand(100,1)

x3 = np.random.rand(100,1)

y = 2 + 10 * x1 + 5 * x2 + 4 * x3 + 2 * np.random.randn(100,1)

df = pd.DataFrame(np.c_[y,x1,x2,x3],columns=['y','x1','x2','x3'])


#df.head()

#            y        x1        x2        x3

# 0  11.970573  0.785165  0.012989  0.634274

# 1  19.980349  0.919672  0.971063  0.752341

# 2   2.884538  0.170164  0.991058  0.003270

# 3   8.437686  0.474261  0.326746  0.653011

# 4  14.026173  0.509091  0.921010  0.375524

以 的學(xué)習(xí)率運行您的算法會0.0000001產(chǎn)生以下結(jié)果:


(m1, m2, m3, b) = (0.001, 0.001, 0.001, 0.002)

以 的學(xué)習(xí)率運行您的算法會.1產(chǎn)生以下結(jié)果:


(m1, m2, m3, b) = (9.382, 4.841, 4.117, 2.485)

請注意,當(dāng)學(xué)習(xí)率為 時0.0000001,您的系數(shù)與它們開始時的 ( 0)沒有太大區(qū)別。就像我之前說的,小學(xué)習(xí)率使它成為這樣,所以我們以太小的速率改變系數(shù),因為我們以超小步長向下移動成本函數(shù)。


我添加了一張圖片來幫助可視化選擇步長。請注意,第一張圖片使用了較小的學(xué)習(xí)率,第二張圖片使用了較大的學(xué)習(xí)率。


小學(xué)習(xí)率:

http://img1.sycdn.imooc.com//616e8c6e00010ab106410506.jpg

大學(xué)習(xí)率:

http://img1.sycdn.imooc.com//616e8c7f000102a206060421.jpg

查看完整回答
反對 回復(fù) 2021-10-19
  • 1 回答
  • 0 關(guān)注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號