为线性SVM /逻辑回归目标函数添加仿射项

ual*_*lex 5 classification machine-learning mathematical-optimization convex-optimization svm

我目前正在解决一个问题,我必须解决L2正则逻辑回归或L2-reg线性SVM问题,其中我有一个附加的仿射项.

所以我的问题就是:

min_ w {C*sum_i max(1-w*x_i*y_i,0) + 0.5*||w||^2_2 + w * v }
Run Code Online (Sandbox Code Playgroud)

其中v是常数向量.

当然这是一个凸起的问题,可以用通常的方法解决,但我必须解决这种类型的许多大问题,所以我非常想使用像liblinear这样的标准库.

我的问题是,有没有办法转换数据x,标签y或加权因子C(可能为每个实例转换为不同的C_i),这样这个问题将等同于标准的铰链损耗SVM或逻辑回归问题?

Dav*_*ing 5

我想不出一种方法可以把它变成可以通过像liblinear这样的东西来处理的东西.但是,您可以使用通用切割平面优化库之一轻松解决此优化问题.您所要做的就是编写代码来计算子梯度的元素(在您的情况下只是w + v - C sum_i x_i y_i)和目标的值.然后切割平面例程可以找到最佳w.

Shogun中有一个CPA优化器,dlib中也有一个.我没有使用Shogun的版本,但我在dlib中使用了一个很多问题(我也是dlib的作者).