繁体   English   中英

cplex 中的 L1 正则化

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM