SVM支持向量机算法

参考资料:http://www.cppblog.com/sunrise/archive/2012/08/06/186474.html                       http://blog.csdn.net/sunanger_wang/article/details/7887218

我的数据挖掘算法代码:https://github.com/linyiqun/DataMiningAlgorithm

介绍

svm(support vector machine)是一种用来进行模式识别,模式分类的机器学习算法。svm的主要思想可以概括为2点:(1)、针对线性可分情况进行分析。(2)、对于线性不可分的情况,通过使用核函数,将低维线性不可分空间转化为高维线性可分的情况,然后在进行分析。目前已经有实现好的svm的算法包,在本文的后半部分会给出我实现好的基于libsvm包的svm分类代码。

SVM算法原理

svm算法的具体原理得要分成2部分,一个是线性可分的情况,一个是线性不可分的情况,下面说说线性可分的情况:

线性可分的情况

下面是一个二维空间的形式:

image

中间的那条线就是划分的分割线,我们可以用f(X)=w*x+b,  w,x在这里都是向量的形式。向这样的分割线,只要稍稍移动一下,又会有一个正确的目标线,因此我们要找的一个目标解,当然是找出分割的临界条件。

比如上面所示的情况,最佳的分类情况,应该是上面的margin的大小最大的时候,保证了分类的最准确。这里省去了一些数学的推理证明。要使用下面这个最大化:

image

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SVM支持向量机算法是一种用于分类和回归分析的机器学习算法。它的核心思想是寻找一个最优的超平面来将样本数据分割成不同的类别。超平面被定义为在n维空间中的一个n-1维子空间,其中n是属性的数量。 在SVM算法中,样本被表示为特征向量,每个特征向量都对应于一个在n维空间中的点。这些点被分为两个类别,目标是找到一个超平面,使得不同类别的样本点尽可能远离超平面,从而实现最大间隔。这些样本点中距离超平面最近的点被称为支持向量,它们对于确定超平面起到重要的作用。 SVM算法的关键是通过求解一个优化问题来找到最优的超平面。这个问题可以被转化为一个凸优化问题,通过拉格朗日乘子法可以得到其对偶形式的求解方法。通过求解对偶问题,可以得到最优的超平面参数,从而实现对新样本的分类。 需要注意的是,SVM算法是一种二分类算法,但它也可以通过一些扩展方法来处理多分类问题。其中一种常用的方法是使用“一对多”策略,将多个二分类器组合成一个整体分类器。 总结来说,SVM支持向量机算法是一种用于分类和回归分析的机器学习算法,通过寻找一个最优的超平面来将样本数据分割成不同的类别。它的核心思想是最大化不同类别样本点与超平面的间隔,并通过求解一个凸优化问题来得到最优的超平面参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值