实验5 支持向量机分类实验

一、实验要求

在计算机上验证和测试莺尾花数据的支持向量机分类实验,sklearn的支持向量机分类算法。

  • 实验目的

1、掌握支持向量机的原理

2、能够理解支持向量机分类算法;

3、掌握sklearn的支持向量机分类算法;

三、实验内容

实验步骤

  1. 请参考LinearSVC.pdf文档,将莺尾花的数据替换为make_blobs自动生成两个测试数据集(一个是两个类别数据完全分离,另一个是两个类别数据有很少部分的交叉),对比KNN,贝叶斯,决策树,随机森林还有LinearSVC的分界边界线的区别。

没有最好的分类器,只有最合适的分类器。

  1. 数据完全分离
    数据:

 

 

  1. 数据部分交叉:
    数据:

 

 

  1. 请详细测试LinearSVC中的C超参数对分类分界边界线的影响

 

 

C越大,即对分错样本的惩罚程度越大,因此在训练样本中准确率越高,但是泛化能力降低,也就是对测试数据的分类准确率降低。减小C的话,容许训练样本中有一些误分类错误样本,泛化能力强。

3.请同时对比,LinearSVC和SVC,三者在莺尾花数据集,make_blobs生成的数据集,还有makemoons生成的数据集,还有makecircles生成的数据集,对比差异。

 

 

(2)三种SVM分类方法和四组数据综合对比:
备注:三种分类方法纵向对比,四组数组横向对比
数据:图3-1 莺尾花数据、图3-2 make_blobs生成的数据、图3-3 makemoons生成的数据、图3-4 makecircles生成的数据。

 

1.对于SVC, NuSVC,和LinearSVC 3个分类的类,SVC和 NuSVC差不多,区别仅仅在于对损失的度量方式不同,而LinearSVC是线性分类,也就是不支持各种低维到高维的核函数,仅仅支持线性核函数,对线性不可分的数据不能使用。

2,LinearSVC使用的是平方hinge loss,SVC使用的是绝对值hinge loss,我们知道,绝对值hinge loss是非凸的,不能用GD去优化,而平方hinge loss可以;

3.LinearSVC使用的是One-vs-All(也称One-vs-Rest)的优化方法,而SVC使用的是One-vs-One;

4.对于多分类问题,如果分类的数量是N,则LinearSVC适合N模型,而SVC适合N(N-1)/2模型;

四、实验总结
       1、掌握了支持向量机的原理
       2、理解了支持向量机分类算法;
       3、掌握了sklearn的支持向量机分类算法;
       4、SVM对数据的处理效果要好于KNN,贝叶斯和随机森林。当数据分类界限明显且能用直线分割时,可以用LinearSVC;当数据类别分界线呈包围或者半包围状态时,用SVC最好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值