Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从数据帧计算RMSE的简单示例_Python_Pandas - Fatal编程技术网

Python:从数据帧计算RMSE的简单示例

Python:从数据帧计算RMSE的简单示例,python,pandas,Python,Pandas,需要一个使用DataFrame计算RMSE的简单示例。如果有返回周期真值和预测值的函数: def fun (data): ... return trueVal, predVal for data in set: fun(data) 然后一些代码将这些结果放在下面的数据框中,x是一个实际值,p是一个预测值: In [20]: d Out[20]: {'p': [1, 10, 4, 5, 5], 'x': [1, 2, 3, 4, 5]} In [21]: df = pd.D

需要一个使用DataFrame计算RMSE的简单示例。如果有返回周期真值和预测值的函数:

def fun (data):
   ...
   return trueVal, predVal

for data in set:
   fun(data)
然后一些代码将这些结果放在下面的数据框中,
x
是一个实际值,
p
是一个预测值:

In [20]: d
Out[20]: {'p': [1, 10, 4, 5, 5], 'x': [1, 2, 3, 4, 5]}

In [21]: df = pd.DataFrame(d)

In [22]: df
Out[22]: 
    p  x
0   1  1
1  10  2
2   4  3
3   5  4
4   5  5
问题:

1) 如何将
fun
函数的结果放入
df
数据框中


2) 如何使用
df
数据帧计算RMSE

问题1
这取决于数据的格式。我希望你已经有了你的真实值,所以这个函数只是一个传递

问题2

使用熊猫
((df.p-df.x)**2).mean()**.5

使用
numpy


(np.diff(df.values)**2).mean()**.5
问题1

我知道你已经有了数据帧df。要在新行中添加新值,请执行以下操作:

for data in set:

    trueVal, predVal = fun(data)

    auxDf = pd.DataFrame([[predVal, trueVal]], columns = ['p', 'x'])

    df.append(auxDf, ignore_index = True)
问题2

要使用df计算RMSE,我建议您使用scikit学习函数

from sklearn.metrics import mean_squared_error 
realVals = df.x
predictedVals = df.p
mse = mean_squared_error(realVals, predictedVals)
# If you want the root mean squared error
# rmse = mean_squared_error(realVals, predictedVals, squared = False)

非常重要的是,列中不能有空值,否则它将不起作用

检查此项:是否应该是
((df.p-df.x)**2).mean()**.5
,因为它是均方根误差?用户名不签出:)