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

Python 将损失函数转化为精度函数,python,numpy,loss-function,loss,Python,Numpy,Loss Function,Loss,我有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

我有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)
作为我的精度度量吗?有更聪明的方法吗?

事实上,您的损失更多的是一个
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