換了X的值或改一下參數(shù),就會出錯。
然后一步步琢磨了下,
theta = theta + np.sum(alpha*(Y-dot(X,theta)) "*X.reshpae" )/3.
實在想不出引號部分有什么用,感覺是多余的,直接刪了,就沒問題了。
theta = theta + np.sum(alpha*(Y-dot(X,theta)))/3.
這樣,隨便改X,X里數(shù)的個數(shù),參數(shù),都沒有問題。記得把‘3.’改成X的數(shù)的個數(shù)就行。
其實‘/3.’不寫也行,會減慢收斂速度‘3’倍,以及得到的值可能是實際參數(shù)的近似值
然后一步步琢磨了下,
theta = theta + np.sum(alpha*(Y-dot(X,theta)) "*X.reshpae" )/3.
實在想不出引號部分有什么用,感覺是多余的,直接刪了,就沒問題了。
theta = theta + np.sum(alpha*(Y-dot(X,theta)))/3.
這樣,隨便改X,X里數(shù)的個數(shù),參數(shù),都沒有問題。記得把‘3.’改成X的數(shù)的個數(shù)就行。
其實‘/3.’不寫也行,會減慢收斂速度‘3’倍,以及得到的值可能是實際參數(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進行占位,代表有多少個算多少個,例如是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進行占位,代表有多少個算多少個,例如是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
老師講解很詳細,已經(jīng)學會用python處理線性回歸問題。學好數(shù)據(jù)挖掘,還需要有數(shù)學統(tǒng)計的基礎(chǔ),趕緊回去溫習基礎(chǔ)知識。
2018-07-16