Python 计算不同值范围的均方误差
我有一个.csv,其中有很多值介于-110和-50之间。我想计算10([-110,-100],-100,-90]等)范围内的均方误差。主要目的是,最终我可以绘制不同范围的MSE值,并可以看到行为。 要导入和读取csv,我使用以下代码:Python 计算不同值范围的均方误差,python,pandas,matplotlib,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']
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)
有人知道一个舒适的解决方案吗
提前谢谢 要理解数据是什么并不容易。正如我所理解的,您需要计算宽度为10的每个箱子内测量的
rsrp\u
和模拟的rsrp\u
之间的差异的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)
要理解这些数据是什么并不容易。正如我所理解的,您需要计算宽度为10的每个箱子内测量的
rsrp\u
和模拟的rsrp\u
之间的差异的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)
非常感谢您的回答!你是对的,我想计算宽度为10的每个箱子内的MSE,但不计算差异。我想绘制一个图,其中包括y轴上的MSE值范围和x轴上测量的rsrp_值范围。对于x轴上宽度为10的每个箱子,模拟与相同rsrp_范围相关的MSE值。所以最后我有5-6点告诉我,测量和模拟之间的MSE有多大取决于测量的rsrp_的bin。非常感谢你的回答!你是对的,我想计算宽度为10的每个箱子内的MSE,但不计算差异。我想绘制一个图,其中包括y轴上的MSE值范围和x轴上测量的rsrp_值范围。对于x轴上宽度为10的每个箱子,模拟与相同rsrp_范围相关的MSE值。所以最后我有5-6点告诉我,测量和模拟之间的MSE有多大取决于测量的rsrp_的bin。