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

Posted

技术标签:

【中文标题】计算不同值范围的均方误差【英文标题】:Calculate Mean Squared Error for different value-ranges 【发布时间】:2020-02-14 02:53:24 【问题描述】:

我有一个 .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】:

要理解数据是什么并不容易。据我了解,您希望在每个宽度为 10 的 bin 中计算 rsrp_measuredrsrp_simulated 之间的差异的 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)

【讨论】:

非常感谢您的回答!你是对的,我想计算每个宽度为 10 的箱内的 MSE,但不是为了差异。我想在 y 轴上绘制 MSE 值范围,在 x 轴上绘制 rsrp_measured 值范围的图。对于 x 轴上宽度为 10 的每个 bin,MSE 的值与 rsrp_simulatied 的相同范围相关。所以最后我有 5 - 6 个点告诉我,测量和模拟之间的 MSE 有多大取决于 rsrp_measured 的 bin。

以上是关于计算不同值范围的均方误差的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow 计算的均方误差

如何计算时间序列的均方误差?

Sklearn:如何获得对训练数据进行分类的均方误差

怎么用MATLAB计算均方误差啊

回归分析中的均方怎么算?回归和残差的均方(MS)怎么算?

对时间序列数据作出指数平滑预测后,如何用excel计算数据的均方误差(MSE)?