2024-05-15 23:36:30 发布
网友
我有分类数据和一个目标函数,我正在努力优化。在xgboost文档中,提到您可以提供自己的目标函数,但它必须返回梯度和hessian。当我有分类数据时,我不确定hessian或gradient意味着什么。目标函数看起来有点像这样
sum_{all classes i} ((number of correct predictions in class_i) / (number in class i))
在这种情况下,是否可以创建自定义目标函数?在
要分析计算目标函数的梯度和hessian(二阶导数),需要根据模型的预测和给定的真实标签来定义它。 从您的目标函数可以清楚地看出,您正在优化加权精度(不含百分比)度量,其中类的权重取决于该类的实例数。 让我们为三个类A、B和C定义以下三个类:- C_A,C_B和C_C是相应类中正确预测的数量;-N_A,N_B,N_C是这些类中每个类的实例数;-N_A+N_B+N_C = T是实例总数。 {也可以写成:(C_A/T)*(T/N_A) + (C_B/T)*(T/N_B) + (C_C/T)*(T/N_C)。这可以直接与总体精度相比较:C_A/T + C_B/T + C_C/T这意味着您可以通过使用多:softmax“xgboost中内置的目标函数。在
A
B
C
C_A
C_B
C_C
N_A
N_B
N_C
N_A+N_B+N_C = T
(C_A/T)*(T/N_A) + (C_B/T)*(T/N_B) + (C_C/T)*(T/N_C)
C_A/T + C_B/T + C_C/T
要分析计算目标函数的梯度和hessian(二阶导数),需要根据模型的预测和给定的真实标签来定义它。
也可以写成:
从您的目标函数可以清楚地看出,您正在优化加权精度(不含百分比)度量,其中类的权重取决于该类的实例数。 让我们为三个类
A
、B
和C
定义以下三个类:-
C_A
,C_B
和C_C
是相应类中正确预测的数量;-
N_A
,N_B
,N_C
是这些类中每个类的实例数;-
N_A+N_B+N_C = T
是实例总数。 {(C_A/T)*(T/N_A) + (C_B/T)*(T/N_B) + (C_C/T)*(T/N_C)
。这可以直接与总体精度相比较:
C_A/T + C_B/T + C_C/T
这意味着您可以通过使用多:softmax“xgboost中内置的目标函数。在
相关问题 更多 >
编程相关推荐