从公式中重新计算Python中的均方误差

时间:2019-02-11 05:25:51

标签: python python-3.x machine-learning scikit-learn

我试图找到给定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)

1 个答案:

答案 0 :(得分:0)

看来您的索引编制错误,请尝试

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