目录

SVM原理概述

Sklearn实现SVM

线性SVM分类

非线性SVM分类

使用多项式特征来增加特征

内核的使用


SVM原理概述

这里不对SVM原理进行详细推导,只对SVM进行简单介绍

SVM要解决的就是最优化问题,最优化基本型为:

软间隔就是允许支持向量机在一些样本上出错。软间隔的基本为:

三种常用的替代损失函数:

hinge损失
指数损失(exponential loss)
对率损失(logistic loss)

对偶问题的引入是为了能够更加高效的求解这个最优化问题。

核函数的引入:低维上的数据难以区分,所以上升到高维上进行分解。如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使得样本可分。

核函数要干的事情就是将低维上的数据映射到高维上。

常见的核函数有:

名称 表达式 参数
线性核
多项式核 d>=1为多项式的次数
高斯核 >0为高斯核的带宽(width)
拉普拉斯核
Sigmoid核 tanh为双曲正切函数,

这里没对SVM具体原理进行说明,详细可以了解B站大神:机器学习SVM

Sklearn实现SVM

线性SVM分类

import numpy as np
from sklearn import datasets
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
iris = datasets.load_iris()
x=iris['data'][:,(2,3)]
y=(iris['target']==2).astype(np.float64)
svm_clf=Pipeline([('scaler',StandardScaler()),('linear_svc',LinearSVC(C=1,loss='hinge'))])
svm_clf.fit(x,y)

非线性SVM分类

虽然在很多情况下,线性SVM分类器是有效的,并且通常出人意料的好,但是有时候数据集不是线性可分的。处理非线性数据集的方法之一就是添加更多特征,比如多项式特征。

使用多项式特征来增加特征

from sklearn.datasets import make_moons
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
x,y=make_moons(n_samples=100,noise=0.15)
polynomial_svm_clf=Pipeline([('poly_features',PolynomialFeatures(degree=3)),('scaler',StandardScaler()),('svm_clf',LinearSVC(C=10,loss='hinge'))])
polynomial_svm_clf.fit(x,y)

内核的使用

添加多项式特征实现起来很简单,并且对于所有的机器学习算法(不只是SVM)都非常有效。但问题是,如果多项式太低阶,则处理不了非常复杂的数据集。而高阶则会创造出大量的特征,导致模型变得太慢
幸运的是在使用SVM时,有一个魔术般的数学技巧可以应用,这就是核技巧。它产生的结果跟添加了很多多项式特征一样,但实际上并不需要真正的添加。因为实际上并没有添加任何特征,所以不存在数量爆炸的组合特征。这个技巧由SVC类来实现。

#多项式内核
from sklearn.svm import SVC
#coef0用来控制模型收到高阶多项式还是低阶多项式影响的程度
poly_kernel_svm_clf=Pipeline([('scaler',StandardScaler()),('svm_clf',SVC(kernel='poly',coef0=1,C=5))])
poly_kernel_svm_clf.fit(x,y)
#高斯RBF内核
#gamma参数就像是一个正则化超参数:模型过拟合,就降低它的值,如果欠拟合则提升它的值
rbf_kernel_svm_clf=Pipeline([('scaler',StandardScaler()),('svm_clf',SVC(kernel='rbf',gamma=5,C=0.001))])
rbf_kernel_svm_clf.fit(x,y)

机器学习实战(SVM)相关推荐

  1. 机器学习实战-SVM算法-27

    SVM算法-线性分类 import numpy as np import matplotlib.pyplot as plt from sklearn import svm # 创建40个点 x_dat ...

  2. 机器学习实战-SVM模型实现人脸识别

    文章目录 SVM建模进行人脸识别案例 1.导包 2.加载数据集 3.直接使用SVM模型建模 4.数据可视化 5.网络搜索优化确定最佳性能 6.使用最佳性能SVM建模 7.优化后的数据可视化 8.完整代 ...

  3. 机器学习实战之SVM

    一引言: 支持向量机这部分确实很多,想要真正的去理解它,不仅仅知道理论,还要进行相关的代码编写和测试,二者想和结合,才能更好的帮助我们理解SVM这一非常优秀的分类算法 支持向量机是一种二类分类算法,假 ...

  4. 机器学习实战(五)支持向量机SVM(Support Vector Machine)

    目录 0. 前言 1. 寻找最大间隔 2. 拉格朗日乘子法和KKT条件 3. 松弛变量 4. 带松弛变量的拉格朗日乘子法和KKT条件 5. 序列最小优化SMO(Sequential Minimal O ...

  5. Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM

    原 Python3<机器学习实战>学习笔记(八):支持向量机原理篇之手撕线性SVM 置顶 2017年09月23日 17:50:18 阅读数:12644 转载请注明作者和出处: https: ...

  6. Python3《机器学习实战》学习笔记(九):支持向量机实战篇之再撕非线性SVM

    转载请注明作者和出处: http://blog.csdn.net/c406495762 **机器学习知乎专栏:**https://zhuanlan.zhihu.com/ml-jack **CSDN博客 ...

  7. 机器学习实战 支持向量机SVM 代码解析

    机器学习实战 支持向量机SVM 代码解析 <机器学习实战>用代码实现了算法,理解源代码更有助于我们掌握算法,但是比较适合有一定基础的小伙伴.svm这章代码看起来风轻云淡,实则对于新手来说有 ...

  8. 转载-机器学习实战之SVM

    出处:https://www.cnblogs.com/zy230530/p/6901277.html 机器学习实战之SVM 一引言: 支持向量机这部分确实很多,想要真正的去理解它,不仅仅知道理论,还要 ...

  9. 机器学习实战之路 —— 5 SVM支持向量机

    机器学习实战之路 -- 5 SVM支持向量机 1. 支持向量机概述 1.1 线性分类 1.2 非线性分类 2. 支持向量机分类中的问题 2.1 核函数的选择 2.2 多类分类 2.3 不平衡数据的处理 ...

  10. 资料分享:送你一本《机器学习实战》电子书!

    这两天,各985高校发布了考研初试分数线.从中发现这两年大数据相关专业的分数线暴涨啊.没有400分估计心里都没底啊.可见大数据这个领域有多火爆!而机器学习是我们团队的一个主要方向,新加入的同学通常都是 ...

最新文章

  1. 关于Presenting view controllers on detached view ...
  2. Linux编程练习 --多线程3--mutex
  3. Qt笔记-对connect中第5个进行多组实验(对信号与槽进一步认识)
  4. mysql 中常用的基本操作
  5. 一个很不错的开发管理中文个人网站
  6. 百度360搜狗神马今日头条抖音获客方法解析|昔年优化推广
  7. 【C++】双边滤波器(bilateral filter)
  8. php分钟转时间戳,php函数转时间戳
  9. Debian彻底卸载MySQL
  10. list集合去重和排序
  11. 运动会比赛计分系统c语言课程设计,c语言课程设计运动会比赛计分系统(含任务书).doc...
  12. 《视觉SLAM十四讲-第二版-ch8,OpenCV4报错及解决》
  13. 《面膜行业网络关注度分析报告》
  14. 对一名电子信息工程专业应届毕业生的建议【转自没毛菜鸟要成长的一篇博文】
  15. CSR8670 — 说说蓝牙音频常用的编解码格式
  16. 【性能测试】如何完全卸载LoadRunner?
  17. LRS+XAPI教育学习记录(安装lrs,以及用xapi传输数据到lrs)
  18. OKGoogle开关置灰和无法唤醒问题
  19. Qt-qss之QSlider滑动条美化
  20. innoDB可重复读级别是否可以隔离幻行读

热门文章

  1. 点云配准(一)— ICP方法
  2. 关于svn汉化包安装无效的解决办法
  3. 安装了汉化包,svn却没有汉化
  4. DSP技术是利用计算机或,什么是dsp技术?dsp技术有哪些应用?
  5. 系统分析师论文通用格式
  6. matlab hog函数个参数,hog算法的matlab
  7. 几个好用的资源下载网址
  8. 响应式高端大气的模板源码图库素材资源下载平台网站源码,无加密无后门
  9. 用大白菜制作linux启动盘制作工具,使用大白菜+FbinstTool制作多系统的启动盘
  10. 发几个vb整人小程序代码.第一次发帖.希望大家多多支持