我有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)
作为我的准确性指标吗?有更聪明的方法吗?
答案 0 :(得分:1)
实际上,您的损失更多地是TRSE
,因为您首先求根,然后求和而不是平均值,因此就是“总平方根误差” :)。如果您真的想要RMSE损失,
RMSE = np.sqrt(np.mean((np.array(pred_df.real_values) - np.array(pred_df.estimate_values))**2))
要将其转换为精度度量,可以正确地找到最小/最大值,但不应减去最大值。您应该先减去最小值,然后除以最大值和最小值之间的差,即最小值-最大值归一化。这将给出[0, 1]
范围内的值。 RMSE的最小值为0,最大值为5(最好/最坏的情况证明了这一点)。然后,(RMSE-0)/(5-0)= RMSE / 5是精度指标:acc = RMSE / 5