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 表示单调递减约束。 有多少个特征,就对应多少个数值。
学员评价