- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 569992 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 176220
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
支持向量机分类算法
( J J8 v2 _5 G% p* X
$ d" L! I0 n R🚀 优质资源分享 🚀- D9 y1 W$ e4 C
学习路线指引(点击解锁) 知识定位 人群定位
9 _# G1 F) }3 x0 ] l/ i0 E% p" u🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。3 \" o9 y. v7 J4 ?/ ~7 p) {
💛 ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
" q- I5 {1 Z7 c, M支持向量机SVM5 j- @2 C: D. K8 U; G9 X& ~* N; T* L
, F7 P! {& X8 R支持向量机原理
, D9 ? I2 U! t
/ J4 P! s" P5 k, T) @) C1.寻求最有分类边界
. t* D6 M$ A; G$ v: x# s! p: R4 H
5 S( s( W( j2 o9 K3 `正确:对大部分样本可以正确的划分类别
3 u, S$ ]$ L9 Z' Q3 X5 T8 N, e n2 F5 B$ I r- z
泛化:最大化支持向量间距( V$ M6 \$ A5 w3 R* m
( D) O6 |" ~! ^& g8 a% C- _5 s0 s公平:与支持向量等距* n% }) X# C0 f3 i1 F. B
# \. o. ^: w# ~! j R- Y简单:线性、直线或平面,分割超平面3 l% u$ i. v: x. [5 P3 t- s
4 n/ I2 u/ k* ]2.基于核函数的生维变换- V( y# t% p- O- v. u9 u0 s
@3 H$ b/ y! H! \( |1 T
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。0 m2 E" S2 [4 a( _( M
& g {6 G q( w x% W
一、引论
& @2 ]; q1 U; [) O: _' ]
: q9 E8 K8 R- Q' P# z+ t! V& h使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:1 R! W9 C4 I: t# A. _% N
$ `5 U# N5 S# i g, n" l9 [
6 L! c- D3 b9 ^+ m: Y4 b
8 l+ t0 y; Z/ I6 E3 Z7 L现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。
7 p6 J) @& x3 a% J/ M2 h. K7 z1 p% W5 m9 o
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:& V0 `& [3 _7 s( _; c. a q! o2 e5 N
" e" u5 D" _( k2 E
二、理论铺垫9 z" e- o' ~; x# o. W6 t
`0 `, K, @$ ?1 k# j线性可分性(linear separability)! }7 ?5 {4 ?. _8 ^5 h
0 s3 y& A, J L/ l
0 I; E1 y7 g0 {! m2 R
) U% G3 A! T5 D$ s; n; B6 t8 ]而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。( o) O# }7 a( b9 n6 |* R
5 j+ ^/ G; @' G! S w6 H, x$ U5 i* u0 E: Q' @
) d4 H) F* @. W4 M' L决策边界% p1 P3 r& } a/ w' L2 j. \
5 j5 h4 |5 j! B5 {( g
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。
+ q# R0 u" X" A3 @
3 q0 t) t- M) q0 t( G2 V' r, k
3 q m2 |! z: m& W% S" _% B: S: L) u* K N- i! g- |, m- h
总而言之:在具有两个类的统计分类问题中,决策边界或决策表面是超平面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
% [! K- T6 F& P7 n( H" `4 Y* e3 s) g, n8 ]
支持向量(support vector)
* U( r5 Q7 O/ L7 u# [" Q# R }$ j, e! t8 p J! a D
在了解了超平面和决策边界我们发现SVM的核心任务是找到一个超平面作为决策边界。那么满足该条件的决策边界实际上构造了2个平行的超平面作为间隔边界以判别样本的分类:; P" y. f. r6 B6 @
4 n! a: g& F4 b3 F: Z5 Y% o
; O% V" i0 t- ~& R5 ?5 |4 O0 p- Y3 e: s
4 W6 Q: o; ~6 E2 p% \( o2 A7 u1 X3 z9 f& P7 O/ a& ]: t
核方法
8 J. g1 r; l ^/ _, \. E7 V6 X
@, e# {- Q3 }* z. z" W. Z {& D; x8 b1 t
0 |6 ] b! `: U9 Z* s/ W
9 c, h: O, D% i) W$ R; J
, T* T- ]0 T( f6 ?9 S: J以回避内积的显式计算。$ \8 x9 p# A* L9 @) Q2 _2 e5 a$ b
) |% ~$ X5 L1 H3 Y, |6 E8 b
常见的核函数:+ t# f( @" o& T. f: a3 X e
) k! D2 k1 S1 B
8 |4 f6 G# c2 }$ F! Q+ a
- a9 N1 S5 u# q; l1 o+ u+ _
kernel : {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'. ^1 e& K- B9 F3 J" l: _: M2 D
1
) A0 ~& Q- a6 v* _% h: j$ z1 d当多项式核的阶为1时,其被称为线性核,对应的非线性分类器退化为线性分类器。RBF核也被称为高斯核(Gaussian kernel),其对应的映射函数将样本空间映射至无限维空间。
% u' b$ W" J* n- l
( S* E2 [0 {" b) TSMO序列最小优化算法: S* M1 R6 F" `. [5 A! E& o1 P$ t/ `
, \; t! |5 i9 u; d$ V+ Y+ Q' w# ~: a1 j" Y
5 z9 n0 \( J. i& x, \
$ D* I* Y/ k+ f$ B( v* P- M% S2 v, z. i- z
& _1 Q& d8 p" B
# B3 _6 G7 e8 N
三、Python sklearn代码实现:5 U3 D1 B# h* P6 _1 Q( }
4 X$ j( C; \- }% o$ d4 x6 p& ]+ o9 M
sklearn.svm.SVC****语法格式为:) l& i* G) C# h0 }; Q5 g; D9 o
# a6 Y% `* W( J2 |3 [+ K! v
class sklearn.svm.SVC( *,
* }6 e" {: m! [% A+ N+ x: `) Y C=1.0, 2 I% ~6 H0 l# D& p# q
kernel='rbf',
: V" ^0 [! U' P degree=3,
& s. D1 P+ K; F$ Y$ c9 W% T gamma='scale',
$ O" m* T0 t) N, x* P1 t coef0=0.0,
1 y T* ^! x) N8 W shrinking=True, 8 I& Y2 D/ r' R# A8 h* j9 p# w
probability=False,
( ?; c* x$ ]. {$ r- O0 O2 S/ y5 T tol=0.001, 0 I: h7 q6 m/ P0 Y
cache\_size=200, 6 Z* r/ k1 B7 c3 Y
class\_weight=None,
5 s% E: \6 p8 w1 n4 A6 E* [* h verbose=False,
4 E9 g/ L$ o& s" N: Y2 n: n4 P& F; } max\_iter=- 1,
5 ]5 C' W! I/ F1 P decision\_function\_shape='ovr',
* y( b4 W6 T3 l r: f" s break\_ties=False,
0 Y; [: J8 W: L8 P2 C random\_state=None)6 S3 a5 g% X- v0 Q
4 y6 s! \5 n3 w# |/ J; A
1
( s7 e1 U2 d' A2 { y. R. L( w) j2
. O2 V$ S& F& o: ]' P' O3
. S+ b3 r, x9 b: o/ A* A/ O40 ^+ l. r: x+ H& e, l
5+ ~6 O( p5 f) s' W% v
6
( E& o4 s, a0 \3 d. h- Q7& u. d4 ], Q! U
8, N* e) I P4 y& b2 G2 S
9
' z# r& V& v/ e& k3 A102 |: e u$ x1 B3 R. i& B( t
11! P, ?$ q" M b7 b% ?2 \/ E4 Y
12
9 h( y! ?. _+ N G1 y) | S7 n: Q* |13; X- N. R3 K* t
143 ~ w9 X8 ]- m3 m
15
/ N% E6 ^ S4 l. t' c16
. e) }8 P. S4 n g5 q+ Y) ]基于鸢尾花数据的实现及解释
, ^% @1 b3 c4 f3 n, O3 V
# M: \2 D* N* ?+ b3 Q5 r- T/ ?代码如下:
0 z0 X: D) p6 W! r
/ c R9 e3 y7 g* C% [ 1 # 导入模块: e4 o/ F* @* e7 G
2 import numpy as np
9 |: Z1 r2 B: q! W 3 import matplotlib.pyplot as plt
y2 W) l# ]- ~: t4 X8 s 4 from sklearn import svm, datasets! G/ M. l: H/ m0 s
5 from sklearn.model\_selection import train\_test\_split8 x% | w/ [. a0 H* C: ` Q
6 ! y* Z0 q: D9 x% M' M8 R# [
7 # 鸢尾花数据
$ J0 \$ Z% j! f8 v1 i; T 8 iris = datasets.load\_iris() #原始数据8 m0 U1 G) z0 c/ X
9 feature = iris.data[:, :2] # 为便于绘图仅选择2个特征(根据前两列数据和结果进行分类)
3 k8 R9 ]& \: ~10 target = iris.target
/ S! o) D( O; w) Z7 Y0 i11
' _% A5 }1 b/ m0 V0 {8 H12 #数组分组训练数据和测试数据
2 m3 D3 Q' q- f" g13 x\_train,x\_test,y\_train,y\_test=train\_test\_split(feature,target,test\_size=0.2,random\_state=2020)
5 B5 F+ t6 y, u, n* P- \5 d$ P. f1 o14 2 z- ^2 i" f: Y+ A& ^: v$ @, m
15 # 测试样本(绘制分类区域),我们数据选了两列即就是两个特征,所以这里有xlist1,xlist2. `- Y5 Q% G5 G8 F9 g
16 xlist1 = np.linspace(x\_train[:, 0].min(), x\_t
- x j" N- I+ @1 X- _4 H( }————————————————
3 O3 W; z( i+ a* y7 ~6 }* i i5 o版权声明:本文为CSDN博主「qq_43479892」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
, s0 j% l% V! a; p0 c原文链接:https://blog.csdn.net/qq_43479892/article/details/126811791
/ Q* `) I. H8 n7 J& Z
* j, d3 o9 m X# W X ^9 h
) \/ o; O8 `! r1 b; V |
zan
|