我想在Python中计算函数的均方根。我的函数是一个简单的形式,如y = f(x)。 x和y是数组。
我尝试了Numpy and Scipy Docs并且找不到任何东西。
答案 0 :(得分:12)
我将假设您要计算以下伪代码给出的表达式:
ms = 0
for i = 1 ... N
ms = ms + y[i]^2
ms = ms / N
rms = sqrt(ms)
即。 y
元素平方值均值的平方根。
在numpy中,您可以简单地将y
平方,取其mean,然后取其square root,如下所示:
rms = np.sqrt(np.mean(y**2))
所以,例如:
>>> y = np.array([0, 0, 1, 1, 0, 1, 0, 1, 1, 1]) # Six 1's
>>> y.size
10
>>> np.mean(y**2)
0.59999999999999998
>>> np.sqrt(np.mean(y**2))
0.7745966692414834
如果您想提出其他问题,请澄清您的问题。
答案 1 :(得分:0)
你可以使用 sklearn 函数
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_actual,[0 for _ in y_actual], squared=False)