已采納回答 / Beb
個(gè)人認(rèn)為講師說得有一點(diǎn)問題,不瞞秩或者不正定的時(shí)候,存在多個(gè)解,并不是沒有解,即解不唯一。此時(shí)選擇哪一個(gè)解作為最后模型的參數(shù)呢?一是通過既定的選擇便好來(lái)決定;二是采用梯度下降來(lái)近似。我覺得性能問題倒不是主要原因,主要原因是因?yàn)榇嬖诙鄠€(gè)解(至于為什么你可以查查矩陣相關(guān)的資料)。
2018-11-25
最新回答 / 天空之城123
矩陣相乘 A*B? ? ?A是m*n? B必須為n*k? A的每一行乘以B的每一列(保證A的每行和B的每列元素個(gè)數(shù)相同)? 線性代數(shù)了解一下
2018-08-30
換了X的值或改一下參數(shù),就會(huì)出錯(cuò)。
然后一步步琢磨了下,
theta = theta + np.sum(alpha*(Y-dot(X,theta)) "*X.reshpae" )/3.
實(shí)在想不出引號(hào)部分有什么用,感覺是多余的,直接刪了,就沒問題了。
theta = theta + np.sum(alpha*(Y-dot(X,theta)))/3.
這樣,隨便改X,X里數(shù)的個(gè)數(shù),參數(shù),都沒有問題。記得把‘3.’改成X的數(shù)的個(gè)數(shù)就行。
其實(shí)‘/3.’不寫也行,會(huì)減慢收斂速度‘3’倍,以及得到的值可能是實(shí)際參數(shù)的近似值
然后一步步琢磨了下,
theta = theta + np.sum(alpha*(Y-dot(X,theta)) "*X.reshpae" )/3.
實(shí)在想不出引號(hào)部分有什么用,感覺是多余的,直接刪了,就沒問題了。
theta = theta + np.sum(alpha*(Y-dot(X,theta)))/3.
這樣,隨便改X,X里數(shù)的個(gè)數(shù),參數(shù),都沒有問題。記得把‘3.’改成X的數(shù)的個(gè)數(shù)就行。
其實(shí)‘/3.’不寫也行,會(huì)減慢收斂速度‘3’倍,以及得到的值可能是實(shí)際參數(shù)的近似值
2018-08-26
代碼更新:Python3.2.6
theat=np.full((4,1),1.,dtype=float) #用 1.0去填充一個(gè)4*1的array,類型指定float
alpha=0.1
x0=X.iloc[:,0].values.reshape(-1,1) #-1進(jìn)行占位,代表有多少個(gè)算多少個(gè),例如是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去填充一個(gè)4*1的array,類型指定float
alpha=0.1
x0=X.iloc[:,0].values.reshape(-1,1) #-1進(jìn)行占位,代表有多少個(gè)算多少個(gè),例如是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