SVM算法原理详解及python实现

算法原理

{ w T x + b > 0 y i = 1 ⟺ y ( x i ) > 0 w T x + b < 0 y i = − 1 ⟺ y ( x i ) < 0 \begin{cases} w^Tx+b>0 \quad y_i=1 \Longleftrightarrow y(x_i)>0\\ w^Tx+b<0 \quad y_i=-1 \Longleftrightarrow y(x_i)<0\\ \end{cases} { wTx+b>0yi=1y(xi)>0wTx+b<0yi=1y(xi)<0
将点到直线的距离转化为: ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ ( 几 何 间 距 ) ⟺ y i ∣ w T x + b ∣ ⩾ 0 ∣ ∣ w ∣ ∣ ( 函 数 间 隔 ) \frac{|w^Tx+b|}{||w||}(几何间距)\Longleftrightarrow\frac{y_i|w^Tx+b|\geqslant0}{||w||}(函数间隔) wwTx+b()wyiwTx+b0()

进行缩放变换:使 ∣ Y ∣ ⩾ 1 ⇒ y i ∣ w T x + b ∣ ⩾ 1 |Y|\geqslant1\Rightarrow y_i|w^Tx+b|\geqslant1 Y

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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 实现。如有需要,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值