机器学习实战----初识支持向量机(SVM)

一什么是支持向量机

       SVM - 支持向量机。支持向量机,其含义是通过支持向量运算的分类器。其中“机”的意思是机器,可以理解为分类器。它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

二基本概念

1间隔

给定训练样本集d = {(X 1,Y 1),(X 2,Y 2),......,(X ,Y )},Y ∈{-1,+ 1},分类学习的基本思想是基于训练集d的样本空间中找到一个划分超平面,将不同类别的样本分开。这样的超平面可能有很多个,我们应该找位于两类训练样本“正中间”的划分超平面,该划分超平面对训练样本容忍性最好。在样本空间中,划分超平面可通过线性方程来描述:w T x + b = 0,其中w =(w1; w2; ......; wd)为法向量,决定了超平面的方向,b为位移项,决定了超平面与原点之间的距离具体推导公式),

假设超平面(w,b)能将训练样本正确分类,即对于(x i,y i)∈D,若y i = + 1,则有w T x + b> 0; y i = -1,则有w T x + b <0。得到

距离超平面最近的几个训练样本使得上面的等式成立,他们被称为“支持向量”,两个异类支持向量到超平面的距离之和为γ=2d=2/||w||,这个γ被称为间隔。想要找到具有最大间隔的划分超平面,也就是使得γ最大,即最大化||w||-1,这等价于最小化||w||2   ,min(1/2||w||2),这就是SVM的基本型。

2 对偶问题

min(1/2||w||2)本身是一个凸二次规划问题,能直接用现成的优化计算求解,但我们可以用更高效的办法。使用拉格朗日乘子法可到其“对偶问题”。具体说来每条约束添加拉格朗日乘子ai≧0,则该问题的拉格朗日函数可写成:

,其中a=(a1;a2;……am;);令L(w,b,a)对w和b的偏导为零可得

将w带入L(w,b,a),可将w和b消去,再考虑上面式子的约束条件就得到对偶问题:


3 核函数

      实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去。但进一步,如果凡是遇到线性不可分的样例,一律映射到高维空间,那么这个维度大小是会高到可怕的)。那咋办呢?此时,核函数就隆重登场了,核函数的价值在于它虽然也是讲特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算。

举例:为相同颜色的点分类


用线性函数无法将两种不同颜色的原点区分开;很自然的我们会想到曲线救国,如下图所示:



我们可以在不增加参数的前提下,扩展一个维度,也就是第三维。​​第三维可以用x,y的关系表示.x + y,xy,x 2

。这三个函数关系只有XY能够区分开四个点如下图所示:


增加的第三维对应的值为0或者2,这样就把四个数区分开了。


很容易借助第三维,我们可以获得一个超平面,用于分类数据。


核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。其实就是运用原有可调参数,将可调参数的某个或某些函数关系来增加维度,用于分类。

相关视频地址:核函数

总结:

核函数是为了再不增加可调参数的情况下,增加参数某种或某些函数关系来增加维度用于分类数据;间隔是为了找到划分的超平面;对偶问题是为了更好的求间隔距离。

参考文章:核函数(核函数)与SVM

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 机器学习实战Python基于支持向量机SVM)是一种强大的分类器算法。SVM是一种监督学习方法,可以用于解决二分类和多分类问题。 SVM的基本思想是找到一个最佳的超平面,将数据分割成不同的类别。超平面被定义为在n维空间具有n-1维的子空间。这个子空间可以将不同类别的数据点分开,并且尽可能地最大化边界。这就意味着SVM在分类时尽量避免误分类,并且对于新的未知数据具有较好的泛化能力。 在Python,我们可以使用scikit-learn库SVM实现机器学习任务。首先,我们需要导入必要的库和数据集。然后,我们可以对数据集进行预处理,如特征缩放和数据划分。接下来,我们可以创建一个SVM分类器,并使用训练数据进行模型的训练。训练完成后,我们可以使用测试数据进行预测,并评估模型的性能。 SVM还有一些重要的参数需要调节,如C和gamma。C表示惩罚项的权重,用于控制分类器的错误率和边界的平衡。较大的C值会减小错误率,但可能导致边界过拟合。gamma表示径向基函数核的参数,影响分类器的决策边界的灵活性。较大的gamma值会导致边界更加精确地拟合训练数据,但可能导致过拟合。 总的来说,机器学习实战Python基于支持向量机SVM)是一个强大的分类器算法,可以用于解决二分类和多分类问题。在实际应用,我们需要注意调节参数,使得分类器具有良好的泛化能力。 ### 回答2: 机器学习实战是一本非常实用的书籍,其详细介绍了如何使用Python编程语言基于支持向量机SVM)进行机器学习实践。 支持向量机是一种强大的监督学习算法,可以用于解决分类和回归问题。该算法通过寻找一个最优的超平面来分割样本空间,使得不同类别的样本尽可能远离超平面。实际上,SVM通过最大化支持向量超平面的距离,来确保分类的准确性和泛化能力。 在书籍,作者通过经典的例子和详细的代码示例,展示了如何应用Python编程语言和scikit-learn库来构建和训练SVM模型。读者将学会如何准备数据集,进行特征选择和数据预处理,选择合适的SVM参数以及评估模型的性能。 此外,书还强调了交叉验证、网格搜索和模型调优等重要概念。这些概念是整个机器学习过程不可或缺的一部分,能够帮助我们提高模型的准确性和可靠性。 机器学习实战还提供了丰富的示例和应用,涵盖了多个领域,如文本分类、手写数字识别和人脸识别等。通过这些实例,读者可以深入理解SVM在实际问题的应用。 总而言之,机器学习实战是一本非常实用的书籍,提供了丰富的例子和代码,使读者能够快速上手并应用SVM算法解决实际问题。无论是对于初学者还是有一定机器学习经验的人来说,这本书都是一本值得推荐的学习资料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值