[英]L1 regularisation in cplex
我正在尝试执行使用 L1 正则化方法的优化。
但是,我正在使用 cplex,并且在使用 cplex 时看不到执行 L1 正则化的明显方法。 有人可以帮忙吗?
让我从Model Building的示例曲线拟合开始
没有正则化:
int n=...;
range points=1..n;
float x[points]=...;
float y[points]=...;
// y== b*x+a
dvar float a;
dvar float b;
minimize sum(i in points) (b*x[i]+a-y[i])^2;
subject to
{
}
execute
{
writeln("b=",b);
writeln("a=",a);
}
Lasso 版本(L1 正则化)将是:
int n=...;
range points=1..n;
float x[points]=...;
float y[points]=...;
float lambda=0.1;
// y== b*x+a
dvar float a;
dvar float b;
minimize sum(i in points) (b*x[i]+a-y[i])^2+lambda*(abs(a)+abs(b));
subject to
{
}
execute
{
writeln("b=",b);
writeln("a=",a);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.