ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习(5)- 支持向量机

2019-05-31 22:50:54  阅读:355  来源: 互联网

标签:SVM 机器 函数 Tx 学习 && theta aligned 向量


根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。

1 支持向量机(Support Vector Machine)

从逻辑回归一点一点修改来得到本质上的支持向量机

优化目标
\[ min_{\theta}C\sum_{i=1}^m[y^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)}cost_0(\theta^Tx^{(i)}))]+\frac{1}{2}\sum_{i=1}^n\theta_j^2 \]
由此可以得到具体的\(\theta\)

假设函数
\[ h_\theta(x)=\left\{ \begin{aligned} 1 && if \ \theta^Tx \ge 0 \\ 0 && otherwise \\ \end{aligned} \right. \]
大间距

更准确地,如果\(y=1\),我们希望\(\theta^Tx \ge 1\);反之,如果\(y=0\),我们希望\(\theta^Tx \le -1\)。

最小化问题转变为
\[ min\frac{1}{2}\sum_{j=1}^n\theta_j^2 \ s.t\left\{ \begin{aligned} \theta^Tx \ge 1 && if \ y^{(i)}=1 \\ \theta^Tx \le -1 && if \ y^{(i)}=0 \\ \end{aligned} \right. \]
根据向量内积,问题变为
\[ min\frac{1}{2}\sum_{j=1}^n\theta_j^2=\frac{1}{2}||\theta||^2 \ s.t\left\{ \begin{aligned} p^{(i)}||\theta|| \ge 1 && if \ y^{(i)}=1 \\ p^{(i)}||\theta|| \le -1 && if \ y^{(i)}=0 \\ \end{aligned} \right. \]
其中\(p^{(i)}\)是\(x^{(i)}\)在\(\theta\)上的投影。

\(\theta\)和决策边界是正交的。(\(\theta^Tx=0,x\)是决策边界上的点)

核函数(相似度函数)\(k(x,l^{(i)})\)

高斯核函数\(exp(-\frac{||x-l^{(i)}||^2}{2\delta^2})\)

在预测时,我们采用的特征不是训练样本本身的特征,而是通过标记点和核函数计算出的新特征\(f1,f2,f3\)。

选取标记点

直接将训练样本作为标记点,\(l^{(1)},\cdots,l^{(m)}\)
\[ \left\{ \begin{aligned} y^{(i)}=1 && if \ \theta^Tf \ge 0 \\ y^{(i)}=0 && otherwise\\ \end{aligned} \right. \]
优化目标
\[ min_{\theta}C\sum_{i=1}^m[y^{(i)}cost_1(\theta^Tf^{(i)})+(1-y^{(i)}cost_0(\theta^Tf^{(i)}))]+\frac{1}{2}\sum_{i=1}^m\theta_j^2 \]
由此可以得到具体的\(\theta\)

参数

\(C\):大,则高方差;低,则高偏差

\(\delta^2\):大,则\(f_i\)平滑,高偏差;低,则\(f_i\)不平滑,高方差

使用SVM

使用软件包:liblinear,libsvm,……

确定参数C

确定核函数

线性核函数No kernel(linear kernel):比如n很大,但是m很小,此时不使用内核参数

高斯核函数Gaussian kernel确定\(\delta^2\);比如n很小,但是m很大(使用前记得特征缩放)

多项式核函数(Polynomial Kernel):\((x^Tl+constant)^{degree}\)

字符串核函数(String kernel

卡方核函数( chi-square kernel

直方图交集核函数(histogram intersection kernel

默塞尔算法

多类

  • SVM包
  • one vs. all

逻辑回归 vs. SVMs

  1. n>m,使用逻辑回归,或者线性核函数的SVM(训练集数据量不够支持我们训练一个复杂的非线性模型)
  2. n小,m中等大小,使用高斯核函数的SVM
  3. n小,m大,首先增加特征数量,然后使用逻辑回归,或者线性核函数的SVM(训练集数据量不太大,SVM速度会很慢)

标签:SVM,机器,函数,Tx,学习,&&,theta,aligned,向量
来源: https://www.cnblogs.com/angelica-duhurica/p/10957870.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有