【问题标题】: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)

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

提前致谢!

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2022-01-14
    • 2021-12-26
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多