換了X的值或改一下參數(shù),就會出錯。
然后一步步琢磨了下,
theta = theta + np.sum(alpha*(Y-dot(X,theta)) "*X.reshpae" )/3.
實(shí)在想不出引號部分有什么用,感覺是多余的,直接刪了,就沒問題了。
theta = theta + np.sum(alpha*(Y-dot(X,theta)))/3.
這樣,隨便改X,X里數(shù)的個數(shù),參數(shù),都沒有問題。記得把‘3.’改成X的數(shù)的個數(shù)就行。
其實(shí)‘/3.’不寫也行,會減慢收斂速度‘3’倍,以及得到的值可能是實(shí)際參數(shù)的近似值
然后一步步琢磨了下,
theta = theta + np.sum(alpha*(Y-dot(X,theta)) "*X.reshpae" )/3.
實(shí)在想不出引號部分有什么用,感覺是多余的,直接刪了,就沒問題了。
theta = theta + np.sum(alpha*(Y-dot(X,theta)))/3.
這樣,隨便改X,X里數(shù)的個數(shù),參數(shù),都沒有問題。記得把‘3.’改成X的數(shù)的個數(shù)就行。
其實(shí)‘/3.’不寫也行,會減慢收斂速度‘3’倍,以及得到的值可能是實(shí)際參數(shù)的近似值
2018-08-26
代碼更新:Python3.2.6
theat=np.full((4,1),1.,dtype=float) #用 1.0去填充一個4*1的array,類型指定float
alpha=0.1
x0=X.iloc[:,0].values.reshape(-1,1) #-1進(jìn)行占位,代表有多少個算多少個,例如是150,則-1代表150,其它同理
x1=X.iloc[:,1].values.reshape(-1,1)
x2=X.iloc[:,2].values.reshape(-1,1)
x3=X.iloc[:,3].values.reshape(-1,1)
print(x3[0:6,:])
theat=np.full((4,1),1.,dtype=float) #用 1.0去填充一個4*1的array,類型指定float
alpha=0.1
x0=X.iloc[:,0].values.reshape(-1,1) #-1進(jìn)行占位,代表有多少個算多少個,例如是150,則-1代表150,其它同理
x1=X.iloc[:,1].values.reshape(-1,1)
x2=X.iloc[:,2].values.reshape(-1,1)
x3=X.iloc[:,3].values.reshape(-1,1)
print(x3[0:6,:])
2018-08-24
老師講解很詳細(xì),已經(jīng)學(xué)會用python處理線性回歸問題。學(xué)好數(shù)據(jù)挖掘,還需要有數(shù)學(xué)統(tǒng)計的基礎(chǔ),趕緊回去溫習(xí)基礎(chǔ)知識。
2018-07-16