SVM原理及代码实现(学习笔记)

本文介绍了SVM的基本概念,包括最大边距超平面和线性分类器。通过拉格朗日乘子法求解KNN条件,探讨了非线性分类时如何通过核函数在高维空间进行分割。SVM的优势在于其凸优化特性、控制模型能力以及处理噪声数据的能力。文中还提到了解决多分类问题的方法和SVM与其他机器学习算法的对比。
摘要由CSDN通过智能技术生成

1.概念

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面.它分类的思想是,给定给一个包含正例和反例的样本集合,svm的目的是寻找一个超平面来对样本根据正例和反例进行分割,从而达到分类的目的。

2.SVM-线性分类器

 对于二维空间来说,我理解的是能够在给定两组不同的数据中用一条直线把这两组数据给分离开来,如下图示。

 

 超平面

对于多维来说,如果能够存在一个线性函数能够将样本完全正确的分离开来,那么这些数据就是线性可分的,反之,称为非线性可分的。什么叫线性函数呢?通俗地讲,就是在一维空间里就是一个点,在二维空间里就是一条直线,三维空间里就是一个平面,以此类推。
如果不关注空间的维数,这种线性函数其实就是超平面

下面讲述一个例子(转自视频:https://www.bilibili.com/video/BV1D64y1f7r6?p=1):

 在样本空间中,我们可以用线性方程来说明:

 对于二维空间来说,线性方程可表示为:w1x1+w2x2+b=0。其中,w=(w1;w2;w3;……w d)为法向量,决定超平面的方向;b为位移项,决定了超平面与原点之间的距离,显然,划分超平面可被法向量w和位移b确定,下面我们将其记为(w,b)。样本空间中任意点x到超平面(w,b)的距离可写为

                        

SVM(支持向量机)是一种常用的机器学习算法,用于分类和回归问题。它的原理可以简要概括如下: 1. SVM的目标是找到一个最优的超平面,将不同类别的样本分隔开来。超平面是一个 (N-1) 维空间中的线性函数,N 是特征的数量。 2. SVM 的关键思想是最大化样本点到超平面的间隔。间隔是指样本点到超平面的最小距离,也可以看作是分类器的鲁棒性。SVM 的最优超平面就是使得这个间隔最大化的超平面。 3. 在二分类问题中,SVM 找到两个离超平面最近的样本点,它们被称为支持向量。支持向量决定了超平面的位置和方向。 4. 对于非线性可分问题,SVM 使用核函数将数据映射到高维特征空间,使其线性可分。常用的核函数有线性核、多项式核和高斯核等。 在Python中,可以使用scikit-learn库来实现SVM算法。以下是一个简单的示例: ```python from sklearn import svm from sklearn.datasets import make_blobs import matplotlib.pyplot as plt # 生成一些随机样本 X, y = make_blobs(n_samples=100, centers=2, random_state=0, cluster_std=0.6) # 创建一个 SVM 分类器对象 clf = svm.SVC(kernel='linear') # 使用样本拟合分类器 clf.fit(X, y) # 绘制决策边界和支持向量 plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired) plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s=100, facecolors='none', edgecolors='k') plt.plot([-1, 4], [4, 1], 'k-') plt.show() ``` 这段代码生成了一些随机样本,并使用线性核的 SVM 分类器拟合数据。最终绘制了决策边界和支持向量。 希望这能帮助到你理解 SVM原理Python 实现。如有需要,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值