【发布时间】:2019-02-11 05:25:51
【问题描述】:
我试图找到给定 Phi 的 mse,输出 y 和计算的权重 w。在尝试在 w(transpose) * Phi 中实现 (y - w(transpose) * Phi ) 时,我收到了 Value 错误。我知道这是尺寸错误,但我已尝试更改它,但它对我不起作用。
我尝试过转置(但它并不是真正的转置,只是保持原样),然后重新整形。
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)
【问题讨论】:
-
请附上完整的错误信息。
-
检查缩进。尤其是
evaluate_model() -
看起来你的索引是错误的,试试
g = np.matmul(wt,Phi[i,:])我假设缩进错误只在stackoverflow中,你的实际代码是正确的 -
@Tacratis 请不要编辑代码;虽然您对缩进的假设可能正确,但您不能确定它实际上是 OP 所写的。
-
@AlexanderReynolds 我的理解是,编辑首先要经过发布问题的人进行确认 - 他们是否真的在他确认之前就上线了?
标签: python python-3.x machine-learning scikit-learn