svm rbf人脸识别 yale_实操课——机器学习之人脸识别

SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。在n维空间中找到一个分类超平面,将空间上的点分类。一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。SVM就是要最大化这个间隔值。而在虚线上的点便叫做支持向量Supprot Verctor。通过本任...
摘要由CSDN通过智能技术生成
SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。在n维空间中找到一个分类超平面,将空间上的点分类。一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。SVM就是要最大化这个间隔值。而在虚线上的点便叫做支持向量Supprot Verctor。 通过本任务,您将掌握以下内容:1、理解支持向量机(support vector machine)算法思想。2、掌握sklearn库对SVM的用法。3、熟悉机器学习构建模型并预测数据的思想。4、理解训练集和测试集的作用。5、掌握如何通过matplotlib库绘制图形。6、学会评估模型好坏的方法。
实验原理:

支持向量机(support vector machine)是一种分类算法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

具体原理:

1. 在n维空间中找到一个分类超平面,将空间上的点分类。如下图是线性分类的例子。

504c4f1f98ffaf313a753561f1ea0244.png

2. 一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。SVM就是要最大化这个间隔值。而在虚线上的点便叫做支持向量Supprot Verctor。

a490a58d6a7b68acfe69ac631627d3fd.png

5358d3a376cc08c5623c0b4357e70e2f.png

3. 实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去(如下图);

cdfbc5b3693ed6c15665f883d758bee3.png

3. 线性不可分映射到高维空间,可能会导致维度大小高到可怕的(19维乃至无穷维的例子),导致计算复杂。核函数的价值在于它虽然也是讲特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算。

4.使用松弛变量处理数据噪音

66cd87ffc9a56c3fa3eab5fc87807d45.png

sklearn中SVM的结构,及各个参数说明如下

sklearn.svm.SVC :

view plain copy

  1. sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False,tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=None,random_state=None)  

参数说明:

view plain copy

  1. C:C-SVC的惩罚参数C?默认值是1.0  

  2. C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。  

  3. kernel :核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’  

  4.     0 – 线性:u'v  

  5.     1 – 多项式:(gamma*u'*v + coef0)^degree  

  6.     2 – RBF函数:exp(-gamma|u-v|^2)  

  7.     3 –sigmoid:tanh(gamma*u'*v + coef0)  

  8. degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略。  

  9. gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features  

  10. coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用。  

  11. probability :是否采用概率估计?.默认为False  

  12. shrinking :是否采用shrinking heuristic方法,默认为true  

  13. tol :停止训练的误差值大小,默认为1e-3  

  14. cache_size :核函数cache缓存大小,默认为200  

  15. class_weight :类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)  

  16. verbose :允许冗余输出?  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值