python两个函数中的均方根误差

时间:2017-05-14 12:50:33

标签: python

我有两个功能:

f(x) = sin(x)

g(x) = x - 1/6x^3

我有range(0, 2*PI),我想计算这两个函数的RMSE。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

可以在此处找到RMSE的说明:

Root mean square error in python

在那里,它向您展示了如何从两个列表(或numpy数组)计算RMSE。您需要指定目标和预测值的目标。

下面是计算两个列表的建议代码,每个列表填充两个函数的结果,值为0到2 * PI,增量为0.1(注意纯python范围函数不支持float类型)。

import numpy as np

def func1(x):

   return np.sin(x)

def func2(x):

   return x - (1/6)*(x**3)

l1 = []
l2 = []

for i in np.arange(0,2*np.pi,0.1):

   l1.append(func1(i))
   l2.append(func2(i))

假设您在下面指定一个新的预测列表(l3),其值为0到6.2,增量为0.1,将l3与l1(l3到l2)进行比较的RMSE值分别为:

# Create new list of equal length for your predictions
l3 = np.arange(0,2*np.pi,0.1)

def rmse(predictions, targets):
    return np.sqrt(((predictions - targets) ** 2).mean())

print(rmse(l3,l1))

print(rmse(l3,l2))