我们要编程计算所选直线的平均平方误差(MSE), 即数据集中每个点到直线的Y方向距离的平方的平均数,表达式如下:
MSE=1n∑i=1n(yi−mxi−b)2
最初麻烦的写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 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 太常用了
1
2
3
|
# 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 计算平均平方误差(MSE)的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/chuan403082010/article/details/79410141