菜单

Administrator
发布于 2026-04-20 / 238 阅读
1
0

第四次作业-SVM

主要文件

svm.zip

流程

完成svm.ipynb文件里需要补全的函数,需要补全的地方均有提示。

友情提示:大多数补全的地方一行代码就OK

补全完整后运行最后的主代码,求得准确率

提交文件

提交代码文件(zip格式,包含代码和运行结果截图)到https://cloud.xycpp.org/s/ReCjZ3JKNiKxEWj

格式:学号+姓名+统计学习第四次作业

截止日期

2026.5.11

提示

讲解文档:homewwork.pdf

约束形式

minw,b,ξmaxλ,μL(w,b,ξ,λ,μ)=12w2+Ci=1mξi+i=1nλi[1ξiyi(wTxi+b)]i=1nμiξis.t.λi0μi0\begin{align} \\ \min_{w,b,\xi} \max_{\lambda,\mu} L(w,b,\xi,\lambda,\mu) = \frac{1}{2}\|w\|^2 + C \sum_{i=1}^m \xi_i + \sum_{i=1}^n \lambda_i[1 - \xi_i - y_i(w^T x_i + b)] - \sum_{i=1}^n \mu_i \xi_i\\ s.t. \quad \lambda_i \ge 0 \quad \mu_i \ge 0 \end{align}

对偶形式

maxλ,μminw,b,ξL(w,b,ξ,λ,μ)\max_{\lambda,\mu} \min_{w,b,\xi} L(w,b,\xi,\lambda,\mu)

约束:

w=i=1mλiyixi0=i=1mλiyiC=λi+μi\begin{align} w &= \sum_{i=1}^m \lambda_i y_i x_i \\ 0 &= \sum_{i=1}^m \lambda_i y_i \\ C &= \lambda_i + \mu_i \end{align}
minw,b,ξL(w,b,ξ,λ,μ)=j=1nλi12i=1nj=1nλiλjyiyj(xixj)\min_{w,b,\xi} L(w,b,\xi,\lambda,\mu) = \sum_{j=1}^n \lambda_i - \frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n \lambda_i \lambda_j y_i y_j (x_i \cdot x_j)

目标:

maxλ[j=1nλi12i=1nj=1nλiλjyiyj(xixj)]s.t.i=1nλiyi=0,λi0,Cλiμi=0\begin{align} \max_\lambda \left[\sum_{j=1}^n \lambda_i - \frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n \lambda_i \lambda_j y_i y_j (x_i \cdot x_j)\right] \\ s.t. \quad \sum_{i=1}^n \lambda_i y_i = 0, \quad \lambda_i \ge 0, \quad C - \lambda_i - \mu_i = 0 \end{align}

SMO算法更新

α1y1+α2y2=γα1=(γα2y2)/y1=(γα2y2)y1α1=α1_old+y1y2(α2_oldα2)\begin{align} \alpha_1 \cdot y_1 + \alpha_2 \cdot y_2 &= \gamma \\ \rightarrow \alpha_1 &= (\gamma - \alpha_2 \cdot y_2) / y_1 = (\gamma - \alpha_2 \cdot y_2) \cdot y_1 \quad \\ \rightarrow \alpha_1 &= \alpha_{1\_old} + y_1 \cdot y_2 \cdot (\alpha_{2\_old} - \alpha_2) \end{align}

根据0α1C0\le\alpha_1\le C 可以解出α2\alpha_2的范围。

问题转换为求解上面对偶形式的目标关于α2\alpha_2的最值。


评论