Python:从数据帧计算RMSE的简单示例
需要一个使用DataFrame计算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
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
,因为它是均方根误差?用户名不签出:)