- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565728 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174941
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
支持向量机分类算法$ h0 f! J2 K8 U4 _& e! ?0 D% l9 P
9 Y. x+ M0 F, O# U🚀 优质资源分享 🚀) G/ O r4 v( Y& M/ V
学习路线指引(点击解锁) 知识定位 人群定位
) |) l3 f. {! N) x1 t& P🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
6 O* e) i( N. B/ u. @! \& S💛 ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
* d. e, @$ O6 A- F) W( S" e' d; ~支持向量机SVM6 f/ B5 }' v" |! q& p4 t
F; J6 }9 J7 B2 X3 d
支持向量机原理
- A. M3 y& ?1 _ z
! ^: J m2 k k1.寻求最有分类边界& L, ^. {, Z. \! E" P
! ]1 W# h8 C' E+ r! p7 X) _0 w正确:对大部分样本可以正确的划分类别
/ j+ V% n% u L% c6 r/ U. B% G+ X
泛化:最大化支持向量间距
2 _! }' b5 l: Q; Z" E
- q. {: \$ \, P% A公平:与支持向量等距
' K) z x2 L/ H
+ ?* i3 o7 j. i( ^1 D简单:线性、直线或平面,分割超平面9 ~+ x8 X% Q8 ]5 R
: q0 R# r ?& n3 [4 e' i1 B
2.基于核函数的生维变换4 `7 j8 H$ i% M) s
! g$ O1 n f$ P! }( w2 Q* d% L
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。
6 g( O! j1 I8 }% M7 c* u$ D9 k7 r+ j" r% g2 s3 K( E! [5 y- N
一、引论
# ]! C$ }+ |; E6 U7 V. G
6 [ s1 ~4 j- b8 ~+ j. z5 j5 U使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:
: f0 _- ]& J2 C& x6 `7 N% ?7 J5 w! [1 F- ^& Y! W9 ~: ~# r
4 i" @+ B; n! R6 z) S
' Y* K4 s# x9 m0 S现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。
% e9 s& z' ]; t3 |: Z3 p( C6 s% t0 }; p0 P- Z4 Y/ o* h2 {
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:
! C1 ?- c( b) m) y+ ?7 c7 Y
+ Y: m ~) F& L/ u# n1 Z3 ?二、理论铺垫* d8 p2 @. `7 i$ u' X, l
& t( i% S |5 G9 _8 y
线性可分性(linear separability)
" k4 {5 V+ }( n) }' g9 u% |" l
0 n$ z4 H# d5 K. ^' A
/ K- P, C, d' x; G6 a9 u, c7 h; O/ a- I
而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。
) ~" u. f+ {1 s" b) L A
& i7 }6 Q, h( a
( B* m5 j7 u5 v0 Q' ]& a' M* w. n
1 x' z+ T5 h$ u( i- l6 I7 z决策边界5 V6 _9 `0 j, Q+ m) Z* ?& Z/ U
! M: X% t4 N. x* P1 ]0 T$ \) \; e
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。
9 f7 _8 V6 a' C& X- ]/ {3 y
9 Z" [4 t7 j9 X2 E, L; R
2 S" y* i9 b: {! z3 n. s
) x. y6 n A' R/ `总而言之:在具有两个类的统计分类问题中,决策边界或决策表面是超平面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
5 d/ X6 K$ l; w, ?' R! |
5 u; [% O4 o8 d8 @# W) k支持向量(support vector)4 u5 w3 W& k: o4 b5 a
3 w3 H% ~1 h0 l- Y8 s$ V
在了解了超平面和决策边界我们发现SVM的核心任务是找到一个超平面作为决策边界。那么满足该条件的决策边界实际上构造了2个平行的超平面作为间隔边界以判别样本的分类:
% z4 }. \- I# T; E) n0 e+ b; p9 E) L( W
& J$ Y# A" \) k6 L5 Y
+ r! {3 t( r' K3 u( M- Z3 i+ a* Q) c* c$ h0 R- f
3 R0 f; H; \+ b
核方法6 `9 p, X$ a2 f \
1 @& m; ?0 }; n. F( X& N
% c/ ]7 O* f& H' j! J" w0 V1 {6 Y
$ P! h4 M5 I1 T8 Y
$ g4 [6 b2 C6 K
! Y1 W( _5 b" j以回避内积的显式计算。
: i! c( g! Y; Y9 {; v+ q- S8 P8 s+ S* a! g0 V
常见的核函数:- R, } m5 F7 m X& V. X4 b- [4 f0 Q
# [ _: T o G3 H; K! L. G- }2 i7 b, q6 A2 g
- A( V) @" F/ o
kernel : {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'& \& w1 t8 M# w6 t0 b
1
/ j$ l1 p) \: Z: g& w当多项式核的阶为1时,其被称为线性核,对应的非线性分类器退化为线性分类器。RBF核也被称为高斯核(Gaussian kernel),其对应的映射函数将样本空间映射至无限维空间。
$ b$ G. S# w5 q5 a: J3 G3 ~0 r, M& Y6 H5 Y" f, x
SMO序列最小优化算法
& I& ] A' p! \/ J
, ]$ X7 ?5 a" ?2 U7 ]2 G( Q* z: ]0 L
7 ?/ O8 Y+ o9 v8 ~" ?
( t7 T) S5 P- R& o+ |; i; y- H: t* p6 n! y* ?* f
% W4 o9 Y8 t- m; R- b d+ |( C3 p) {+ O6 T6 [ B' a# g- N H
三、Python sklearn代码实现:
5 e& |. K8 p' r( D y; ?; m1 b ~% J/ Z$ q, m% _) Z& a4 b
sklearn.svm.SVC****语法格式为:
1 Z& z8 {( l$ Y0 s$ t2 v! l$ n4 u8 p: X, }; h2 g
class sklearn.svm.SVC( *,
. X% g& M9 p* i C=1.0, 3 r: g. W3 H2 p5 ^
kernel='rbf',, H3 K! s" }8 H' {
degree=3,
/ I8 s, J; Y( z, b6 M1 P6 D gamma='scale', 9 m0 e2 c8 [. v* ]. P4 ?0 l0 r
coef0=0.0, - D B7 [# f2 N
shrinking=True, % b5 p3 e i# x& V! Q8 n
probability=False, 9 Q4 E8 b' Z. I8 v# L Y# f% [
tol=0.001,
; j- b, o8 I1 c$ a- ? cache\_size=200,
1 I. W( \! L: N, ^8 K4 z class\_weight=None,
; f. N3 N* z( V) a( X) L verbose=False, 7 l. T- K0 u" p i* }7 p
max\_iter=- 1,
0 g% e( ^% \6 u( q4 w decision\_function\_shape='ovr', 6 Z u: j: _: X* ?( b
break\_ties=False, & Q9 T, @" j" ?, f) M( ~' N$ k
random\_state=None)7 O3 M& Y; g* M# L" }
( u) q! v( l* d; R, I16 o6 Y/ q$ t1 G- S2 A
28 c' y- `5 X$ B# M. s
3
" p# `, R7 \4 ^6 }( l( C44 [" p ~5 S2 g( \
5
) A0 |+ {; ?- m6- N0 T) C5 ]! @6 n/ D8 s' k
7& I) M; L/ g: T/ x$ x, ?
8( E- U5 k% J7 o: |" Y/ Q& |0 C3 r
9
3 p" k# z/ P: U" J2 `; U: {10
( D8 E7 o4 E5 z7 `7 Z" D116 Q& h# Z. ?. ~9 U5 @4 F3 i: e
12& B$ e1 @' O" s" ]! k( X) T
13
9 N: X3 Y; _! t. G) e8 V14
h$ S) Q3 }/ P8 J4 h8 R( F15; A* k9 x$ {5 k4 s: E
169 ]' s' G/ |! {) v
基于鸢尾花数据的实现及解释
( ?4 w3 u, `; x+ j& x& G, F0 a6 j& {% j0 j4 P) b' ?
代码如下:4 @# b7 n& ]: H8 P; n9 U5 O2 q8 o
! N/ e1 {* y$ s* e5 z* t" j9 j 1 # 导入模块5 v3 ] `1 h& h
2 import numpy as np9 b7 t- L. W& e) q
3 import matplotlib.pyplot as plt& v! d. |# ~ |4 I+ @
4 from sklearn import svm, datasets2 d' K% i f) q4 y0 `/ f* Q% ~
5 from sklearn.model\_selection import train\_test\_split
: ?- K) X5 r8 W" v6 K 6
6 A! w( Z" s( L; b4 D/ Q 7 # 鸢尾花数据; E+ R% _% m6 @9 w
8 iris = datasets.load\_iris() #原始数据3 @: G% o9 i+ d6 k! F) v4 ~
9 feature = iris.data[:, :2] # 为便于绘图仅选择2个特征(根据前两列数据和结果进行分类)
) r2 S& J- l) P: d# o: |$ M10 target = iris.target& ?0 v U! R; ~3 a% _( P; @! c8 A
11
) r8 T( n2 N8 M12 #数组分组训练数据和测试数据
1 o z" p! g' P4 x; g! W6 f# x13 x\_train,x\_test,y\_train,y\_test=train\_test\_split(feature,target,test\_size=0.2,random\_state=2020)' j f" a) C% K# X- V3 z! I7 Y- p, x
14 . X9 q6 ` k D) m( ~' A8 |
15 # 测试样本(绘制分类区域),我们数据选了两列即就是两个特征,所以这里有xlist1,xlist2
* {2 T( }% n* a3 M0 j* i( R4 M; n* t16 xlist1 = np.linspace(x\_train[:, 0].min(), x\_t
; I0 R2 i- a. w4 U2 W————————————————/ i, I4 }/ n: n/ M3 d8 L3 B
版权声明:本文为CSDN博主「qq_43479892」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。$ m/ k! ]( P* I m+ D4 D
原文链接:https://blog.csdn.net/qq_43479892/article/details/1268117913 A2 U% d% M# s4 D# O z- Y; ?
# {& F% p* f+ K) J! v
. K. y1 k; _& g! ^ |
zan
|