4分钟
单调约束
1. 在模型中可能会有一些单调的约束:当 x ≤ x' 时:
- 若 f(x_1, x_2,···,x,···,x_n) ≤ f(x_1, x_2,···,x',···,x_n) ,则称该约束为单调递增约束
- 若 f(x_1, x_2,···,x,···,x_n) ≥ f(x_1, x_2,···,x',···,x_n) ,则称该约束为单调递减约束
2. 如果想在xgboost
中添加单调约束,则可以设置monotone_constraints
参数。
假设样本有 2 个特征,则:
params['monotone_constraints'] = "(1,-1)"
:表示第一个特征是单调递增;第二个特征是单调递减params['monotone_constraints'] = "(1,0)"
:表示第一个特征是单调递增;第二个特征没有约束params['monotone_constraints'] = "(1,1)"
:表示第一个特征是单调递增;第二个特征是单调递增
右侧的 1
表示单调递增约束;0
表示无约束; -1
表示单调递减约束。 有多少个特征,就对应多少个数值。
学员评价