这是我的博客理论推导埋下的坑。目的是使用CVXOPT去实现一个硬边界的支持向量机分类器。在这片博文中将会包括一些核心代码。所有代码整理成Jupyter notebook,发布在我的github上。
1 什么是硬边界SVM?
简单来说,在二维情况下,就是对于线性可分的一些点(包含正例和负例),找一条线能将他们分开。同时,能保证线离点距离拉的最大。具体教程请见我的:机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
2 核心代码
SVM硬边界的优化问题为:
$$\min_{w, b} \frac{1}{2} \textbf{w}^T \textbf{w}$$
$$ s.t: \,\, \forall i\in[N]: y_n (\textbf{w}^Tx_n+b) \geqslant 1 $$
cvxopt文档中QP问题的标准形式为:
<