【问题标题】:Mean Square Error in Python from scratch from equationPython中的均方误差从等式开始
【发布时间】: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


【解决方案1】:

您的索引似乎有误,请尝试

g = np.matmul(wt,Phi[i,:])

【讨论】:

    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 2020-03-29
    • 2013-05-22
    • 2019-07-17
    • 2015-07-11
    • 2017-06-29
    • 1970-01-01
    • 2011-01-22
    相关资源
    最近更新 更多