支持向量机(核方法)算法

支持向量机(核方法)算法

支持向量机中引入核方法(kernel methods),处理那些无法人力标注特征值的复杂数据

解决分类和回归问题

学习复杂的决策边界

概述

线性支持向量机通过最大化间隔,得到尽可能远离数据的“好的”决策边界。但由于决策边界必定为直线,无法对“每个标签的边界为曲线的数据”进行分类

支持向量机使用核方法学习复杂决策边界

算法说明

“将数据移动到另一个特征空间,然后进行线性回归”

线性不可分数据成为线性可分数据

  • 假设有一个比训练数据更高维的空间,训练数据中每一个点对应着高维空间中一个点
  • 高维空间中,训练数据对应的点线性可分,实际训练数据来自该高维空间投影
  • 将学习到的高维空间的决策边界投影到由原始特征形成的向量空间上,得到决策边界

通过核函数的函数,核方法使用在高维空间中学习到的决策边界,无需构建具体的线性分离的高维空间

示例代码

使用核方法支持向量机学习呈圆形分布的数据的决策边界

生成呈圆形分布数据,将其拆分为训练数据和验证数据,使用训练数据训练模型,使用验证数据评估正确率

代码默认使用RBF(Radial Basis Fuction,径向基核函数)核方法

from sklearn.svm import SVC
from sklearn.datasets import make_gaussian_quantiles
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = make_gaussian_quantiles(n_features = 2, n_classes = 2, n_samples = 300)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
model = SVC()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy_score(y_pred, y_test)

在这里插入图片描述

详细说明

学习结果因核函数而异

线性核函数/Sigmoid核函数/多项式核函数/RBF核函数

注意点

核方法适合用于“相比特征的可解释性更看重精度”,无法清楚知道支持向量机使用的是什么特征

先使用线性核函数进行分析,以了解数据,再使用非线性核函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值