22、23 SVM支持向量机概念及实例

本文介绍了SVM的工作原理,包括寻找最大分类间隔的超平面,硬间隔与软间隔的概念,以及非线性分类器的核函数使用。通过实例展示了如何使用sklearn的SVC进行乳腺癌检测,解释了SVC构造函数的参数如kernel、C和gamma。最后,数据集来自美国威斯康星州的乳腺癌诊断,目标是构建SVM分类器并计算准确率,实验结果显示准确率为0.9415。
摘要由CSDN通过智能技术生成

SVM是有监督学习模型,可以进行模式识别、分类及回归分析。
工作原理:
SVM就是找到一个超平面,将样本划分开,并且使样本集中的样本点到这个分类超平面的最小距离(分类间隔)最大化。
n维空间超平面的数学表达式为:
在这里插入图片描述
在这里插入图片描述
上图中di是样本点xi到超平面的欧氏距离,目的是求di的最小值,作为该样本到超平面的最短距离。
SVM的目标就是找出所有分类间隔中最大的值对应的最优超平面。
硬间隔:完全线性可分,找最大分类间隔;
软间隔:大部分线性可分,允许一定量的分类错误;
非线性分类器:线性不可分,利用核函数,将原有样本空间投射到更高维空间,使其线性可分。
对于多分类问题,可以将SVM二分类器进行组合,形成多分类器。

实例: 用SVM进行乳腺癌检测

sklearn中有SVM算法:

from sklearn import svm

做分类器要用SVC(非线性),或LinearSVC(线性)。

创建SVM分类器:
SVC的构造函数:
model=svm.SVC(kernel=‘rbf’, C=1.0, gamma=‘auto’ )
kernel代表核函数,有四种,默认rbf:
1、linear:线性核函数(数据线性可分,速度快,效果好)
2、poly:多项式函数(数据从低维映射到高维,参数多,计算量大)
3、rbf:高斯核函数(低维映射到高维,参数少,性能好)
4、sigmoid:sigmoid核函数(多层神经网络)。
C为目标函数惩罚系数,C越大,准确度越高,但泛化能力越差,默认1.0。
gamma表示核函数系数,默认为样本特征数的倒数:gamma=1/n_features。
传入训练集并训练:
model.fit(train_X,train_Y), 参数分别为特征值矩阵和分类标识。
结果预测:
prediction=model.predict(test_X), 传入测试集样本特征矩阵,得到分类结果。

对于数据量大的线性可分问题,创建线性SVC:model=svm.LinearSVC( ),限制使用线性核函数,对线性分类进行了优化,效率比SVC高。

下面进行乳腺癌检测项目:
数据集来自美国威斯康星州的乳腺癌诊断数据集,下载自极客时间老师的github。
数据描述:
数据中包含32个字段,除了ID字段和分类标识结果字段外,有10个特征值的三个维度,分别是平均值、标准差和最大值。无缺失值,共有569组患者数据,其中357个良性(B),212个恶性(M)。
目的:
生成乳腺癌诊断的SVM分类器,并计算分类器准确率。

import sklearn
from sklearn import svm
import pandas as pd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值