我试图找到给定Phi的mse,输出为y,并计算出权重w。尝试在w(transpose)* Phi中实现(y-w(transpose)* Phi)时出现值错误。我知道这是尺寸错误,但我尝试对其进行更改,但它对我不起作用。
我尝试过移调(但是它不是真正的移调,只是保持原样),然后重塑。
X=[1,2,3]
d=3
Phi=np.polynomial.polynomial.polyvander(X,d)
y=[2,3,4]
def train_model(Phi, y):
pht = np.matrix.transpose(Phi)
u = np.matmul(pht,Phi)
q = np.linalg.inv(u)
s = np.matmul(q,pht)
w = np.matmul(s,y)
return w
w=train_model(Phi,y)
def evaluate_model(Phi, y, w):
sum=0
wt = np.matrix.transpose(w)
for i in range (0,len(y)):
g = np.matmul(wt,Phi[:,i])
k = y[i]-g
l = k ** 2
sum+=l
avg=sum/len(y)
return avg
编辑:
我得到的错误是
ValueError: shapes (4,) and (53,) not aligned: 4 (dim 0) != 53 (dim 0)
答案 0 :(得分:0)
看来您的索引编制错误,请尝试
g = np.matmul(wt,Phi[i,:])