支持向量机的原理和使用方法

原理:

1. 基本思想 - SVM的目标是在高维空间中找到一个超平面,能够将不同类别的数据samples分隔开,且分隔超平面与最近的数据samples之间的距离最大化。这些最近的数据samples就是支持向量。

2. 核技巧 - 对于非线性可分的数据,SVM使用一种称为核技巧(kernel trick)的方法,将数据映射到更高维度的空间,使其在高维空间内线性可分。常用的核函数有线性核、多项式核、高斯核等。

3. 软间隔 -对于某些数据集,不可能找到一个能完全正确分类所有samples的超平面。软间隔允许SVM在一定程度上忽略outliers,以获得更好的泛化能力。

使用方法(Python中的scikit-learn):

from sklearn import datasets
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

# 加载数据

iris = datasets.load_iris()
X = iris.data[:, :2] # 仅使用前两个特征
y = iris.target

# 创建Pipeline对象,包含标准化和SVM分类器

clf = Pipeline([('scaler', StandardScaler()),('linear_svc', SVC(kernel='linear', C=1))])

# 训练模型

clf.fit(X, y)

# 预测新数据

new_data = [[5.1, 3.5], [5.9, 3.0]]
print('New samples predictions: ', clf.predict(new_data))

首先导入必要的库,然后加载iris鸢尾花数据集。我们只使用前两个特征(花萼长度和宽度)进行训练。接下来,创建一个Pipeline对象,包含标准化(StandardScaler)和线性核SVM分类器(SVC)。`C`是SVM中的惩罚参数,用于控制软间隔的程度。使用`fit()`方法训练模型,最后可以对新数据`new_data`进行预测(`predict()`)。除了`SVC`用于分类之外,`SVR`可用于回归问题。SVM还支持多项式核、RBF核等,通过`kernel`参数指定。还可以通过`gamma`,`degree`等参数对核函数进行调优。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值