我有一个.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)
有人知道舒适的解决方案吗?
谢谢!
答案 0 :(得分:0)
了解数据是不容易的。据我了解,您想针对rsrp_measured
和rsrp_simulated
之间的差异计算宽度10的每个bin中的MSE。您可以将groupby
与apply
结合使用,如下所示:
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)