计算不同值范围的均方误差

时间:2019-10-17 08:37:28

标签: python pandas matplotlib

我有一个.csv,其值介于-110和-50之间。我想计算10([-110,-100],[-100,-90]等)的均方误差。主要目的是,最终我可以绘制不同范围的MSE值并查看其行为。 要导入和读取csv,请使用以下代码:

data = pd.read_csv('MY_Bahnhof_Bridge_DATASET.csv')


data_Measured = data['rsrp_measured'] 
data_Simulated = data['rsrp_simulated']

要计算MSE,我从numpy中使用了此函数,但我不知道它是否支持pyplot之类的范围:


MSE = np.square(np.subtract(data_Messung,data_Simulation)).mean()

我发现的另一个功能是:

from sklearn.metrics import mean_squared_error

MSE = mean_squared_error(data_Measured, data_Simulated)

有人知道舒适的解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

了解数据是不容易的。据我了解,您想针对rsrp_measuredrsrp_simulated之间的差异计算宽度10的每个bin中的MSE。您可以将groupbyapply结合使用,如下所示:

from sklearn.metrics import mean_squared_error

# Calculate differences
data["diff"] = data.eval('rsrp_measured - rsrp_simulated')

# Get bins of width 10
data["bin"] = data["diff"] // 10

# Get MSE per bin
data.groupby("bin").apply(lambda x:
    mean_squared_error(x["rsrp_measured"], x["rsrp_simulated"]), axis=1)