QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3254|回复: 0
打印 上一主题 下一主题

[其他资源] 支持向量机分类算法

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组: 2018美赛大象算法课程

    群组: 2018美赛护航培训课程

    群组: 2019年 数学中国站长建

    群组: 2019年数据分析师课程

    群组: 2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2022-9-13 12:41 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    支持向量机分类算法
    ( 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) {
    &#128155ython量化交易实战💛        入门级        手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
    " 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
    转播转播0 分享淘帖0 分享分享0 收藏收藏1 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-14 02:17 , Processed in 0.479173 second(s), 50 queries .

    回顶部