python中 计算计算平均平方误差 (MSE)

承接ARVR项目开发: QQ 2118590660

我们要编程计算所选直线的平均平方误差(MSE), 即数据集中每个点到直线的Y方向距离的平方的平均数,表达式如下:

MSE=1n∑i=1n(yi−mxi−b)2

最初麻烦的写法

# TODO 实现以下函数并输出所选直线的MSE
def calculateMSE(X,Y,m,b):
    in_bracket = []
    for i in range(len(X)):
        num = Y[i] - m*X[i] - b
        num = pow(num,2)
        in_bracket.append(num)
        
    all_sum = sum(in_bracket)
    MSE = all_sum / len(X)

    return MSE

print(calculateMSE(X,Y,m1,b1))

优化后 zip 太常用了

# TODO 实现以下函数并输出所选直线的MSE
def calculateMSE(X,Y,m,b): 
    return  sum([(y-m*x -b)**2 for x,y in zip(X,Y)])/len(X)

 

 

 

 

 

 

你可能感兴趣的:(Python)