将损失函数转化为精度函数

问题描述 投票:0回答:1

我有RMSE损失,定义为 。

RMSE = np.sum(np.sqrt((np.array(pred_df.real_values) - np.array(pred_df.estimate_values))**2))

其中实际值和预测值在0.0和5.0之间。

我想把它作为一个精度指标,而不是作为损失,然而我不知道这个函数取值的区间。我唯一能想到的是。

最坏的情况--所有的预测都是错误的(所有的预测都是5.0) 。RMSE = 5.0 * len(pred_df)最好的情况--所有预测都是正确的 。RMSE = 0.0

我可以只用 RMSE - 5.0 * len(pred_df) 作为我的精度指标?有没有更聪明的方法?

python numpy loss-function loss
1个回答
1
投票

其实,你的损失更多的是 TRSE 因为你是先取根,再取总和,而不是取平均值,所以才有 "总根平方误差":)。如果你真的想要RMSE损失。

RMSE = np.sqrt(np.mean((np.array(pred_df.real_values) - np.array(pred_df.estimate_values))**2))

要将其转换为精度指标,你找minmax值是正确的,但不应该用max值来减,应该先减去min值,然后除以max和min值的差值,即min-max归一化。这样可以得到的数值范围是 [0, 1]. RMSE的最小值为0,最大值为5(你的最坏情况方法证明了这一点)。那么,(RMSE - 0) (5 - 0) = RMSE 5就是精度指标。acc = RMSE / 5

© www.soinside.com 2019 - 2024. All rights reserved.