网站首页 > 技术文章 正文
原理:
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`等参数对核函数进行调优。
猜你喜欢
- 2024-11-19 零基础学习!数据分析分类模型「支持向量机」
- 2024-11-19 机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现
- 2024-11-19 我以前一直没有真正理解支持向量机,直到我画了一张图
- 2024-11-19 研一小姑娘分享机器学习之SVM支持向量机
- 2024-11-19 [机器学习] sklearn支持向量机
- 2024-11-19 支持向量机
- 2024-11-19 初探支持向量机:用大白话解释、原理详解、Python实现
- 2024-11-19 支持向量机的核函数
- 2024-11-19 初探支持向量机模型
- 2024-11-19 如何使用支持向量机学习非线性数据集
你 发表评论:
欢迎- 11-19零基础学习!数据分析分类模型「支持向量机」
- 11-19机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现
- 11-19我以前一直没有真正理解支持向量机,直到我画了一张图
- 11-19研一小姑娘分享机器学习之SVM支持向量机
- 11-19[机器学习] sklearn支持向量机
- 11-19支持向量机
- 11-19初探支持向量机:用大白话解释、原理详解、Python实现
- 11-19支持向量机的核函数
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)