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

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
import matplotlib.pyplot 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值