Рассчитать среднеквадратичную ошибку для разных диапазонов значений - PullRequest
0 голосов
/ 17 октября 2019

У меня есть .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 голосов
/ 17 октября 2019

Нелегко понять, что это за данные. Как я понял, вы хотите рассчитать MSE в каждом бине шириной 10 для различий между rsrp_measured и rsrp_simulated. Вы можете достичь этого, используя 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...