使用支持向量机(SVM) 算法进行分类

本文深入探讨支持向量机(SVM)的基础概念,包括线性可分与线性不可分问题的解决策略。通过介绍核函数如线性、多项式、径向基和Sigmoid,阐述了选择合适核函数的重要性。SVM通过比较不同核函数的分类效果,以子图的形式展示分类准确性。此外,文章还讨论了SVM的参数调整、多分类方法和回归问题的应用。
摘要由CSDN通过智能技术生成

1 支持向量机(SVM)的基本概念

  SVM是一种分类算法,其侧重于模式识别方面。使用SVM可以大大提高分类的准确性。

  分类相当于模式识别的子集合,模式识别重点在于对已知数据进行特征发现与提取。

  SVM重点在于解决线性可分的问题。但很多时候,实际的问题是线性不可分的。SVM的思想就是将线性不可分的问题转化线性可分的问题。那么如何来是实现呢?就是将空间映射到多维空间。如把二维空间映射到三维空间。以增加维数来减少方程的次数。

  比如,在二维空间中,不得不用 f(x)=ax^2+b^+c 这个曲线将两类样本分开,而不是用一条直线将它们分开,这样就是一个线性不可分的问题。为了解决这个问题,我们可以使用换元法将即 x^2=y1 , x=y2 , 这样一来替换为 z=a'y1+b'y2+c' 这个线性方程,从而转换到了高维空间,代价是维度的增加引入了更多的变量。这样我们就完成了从线性不可分问题到线性可分问题的转换。

  所谓支持向量,即在每一类样本集中,过离separating hyper plane 最近的样本做一个与separating hyper plane 平行的线/超平面。有几个分类,就有几个这种直线/超平面,这样的直线/超平面就叫做支持向量(Support Vector)。

1135245-20170529192706461-785538566.jpg

2 核函数

  那么找到一个线/超平面来完成二分类成为问题的关键。这个线/超平面的函数被我们成为“核函数”。常见的核函数有:

  • 线性核函数————linear
  • 多项式核函数————poly
  • 径向基核函数————rbf(用得较多)
  • Sigmoid核函数————sigmoid

  那么如何来选择合适的核函数呢?答案就是比较不同核函数的分类的准确率。在实际处理分类问题时,分别计算几种核函数的分类性能,将准确率最高的核函数作为最终用于预测分类的核函数即可。在本文的例子中,我们使用画图的方式来判断分类性能的好坏。

  使用模型不同,转换的方式不同,在多维空间中的图形就不同,分类的效果就不同。

  网上关于SVM、线性可不可分、核函数的博文很多,如http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html 。这里就不再赘述。

3 比较分类效果与子图的划分

  为了比较不同分类器的准确性,我们采用绘制散点图,然后人工观察来判断。我们将两个类的点在坐标系中用不同颜色表示出来,同时标出训练数据,看预测点与训练点的在图中的重叠情况。重叠越紧密,说明分类的效果越准确。

  在绘图的时候,我们希望在一个平面中同时展现多幅图片,这时使用matplotlib模块的子图(subplot)来展现。

subplot的参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值