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



我有两个函数:

f(x) = sin(x)

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

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

RMSE的澄清可以在这里找到:

python中的均方根误差

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

下面是计算两个列表的建议

代码,每个列表都填充了两个函数的结果,值介于 0 和 2*PI 之间,增量为 0.1(注意纯 python 范围函数不支持浮点类型(。

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))

最新更新