【发布时间】:2021-12-13 08:50:48
【问题描述】:
我正在尝试使用 L1 正则化方法进行优化。
但是,我正在使用 cplex,但在使用 cplex 时,我看不到执行 L1 正则化的明显方法。有人可以帮忙吗?
【问题讨论】:
标签: convex-optimization convex
我正在尝试使用 L1 正则化方法进行优化。
但是,我正在使用 cplex,但在使用 cplex 时,我看不到执行 L1 正则化的明显方法。有人可以帮忙吗?
【问题讨论】:
标签: convex-optimization convex
让我从Model Building 中的示例curve fitting 开始
没有正则化:
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);
}
套索版本(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);
}
【讨论】: