在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563330 点 威望 12 点 阅读权限 255 积分 174222 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
支持向量机分类算法
) A- `6 T3 L+ {: b0 L( z & G) a" I; i' h4 g) C" C4 N
🚀 优质资源分享 🚀
6 Q6 P) ?4 {8 A0 I( Z- ~9 U4 c 学习路线指引(点击解锁) 知识定位 人群定位
' f6 E3 R& D+ U4 T& l3 Z 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。0 j2 E) `3 q5 T2 U% e) A' O5 t, ^! G+ g0 j
💛 ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统" L; ^' J( R$ [9 m) `8 x2 P
支持向量机SVM4 I# J! T7 e' N9 E A* n
/ u& e3 R) f( a ?% h. @( _$ I
支持向量机原理& F1 H" z% i- U+ s' ^8 h
) U1 ]; e$ }' e# m, P$ X 1.寻求最有分类边界" Y; s) K) x" x2 [# w- o6 m
' H5 ~ D7 A+ r! }+ @0 @. r9 r. e+ i3 [
正确:对大部分样本可以正确的划分类别9 K/ }7 y, t9 k& w9 A
/ `% a" T9 y' T' G* K 泛化:最大化支持向量间距
; L' v+ r/ ]7 U4 `+ r, R % W# Y$ k6 M4 A# {' _
公平:与支持向量等距
& T( h# k" B% T( N$ c' b2 J+ Y % j8 h3 [+ j4 {) W8 p9 j" f6 Y
简单:线性、直线或平面,分割超平面% v, a0 V* h2 S. D
" V: N. p! ?) S4 m" {
2.基于核函数的生维变换9 v/ S& B6 s6 a" j# p" X
0 L( r/ V1 U% ^4 t; y* Z
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。
2 Q9 l& l1 b: i ' P n. X6 p2 P" b
一、引论
8 p! _2 S( d7 L
2 n! O- e# V* s2 l& I 使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:# H# h& m; j/ _- w' ^$ b
) P3 P/ b, Q' |" ]+ b1 r : i- {* s$ j6 W8 B: Z
" \# P' X4 M/ v; {
现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。
6 X+ ~) b- A% ]6 l6 T, t * q$ ]( L' L& m6 y& M4 R' |) `
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:! M7 t8 U. t9 b
4 C4 z+ i0 R7 }/ j7 u; L 二、理论铺垫' q. K8 o# S' }' Q1 u$ X
9 P+ ^/ e# W8 {% p9 R* p" x
线性可分性(linear separability)
. g) H% o1 g7 o- n 2 W+ u3 b$ V- x' p
* \# `# y/ k& Z, I& H
9 m) c3 S8 Z! ~& J0 t, L3 _; l N3 E
而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。
' e) T/ p5 ?5 w) V
6 e9 T; T) N8 p' f1 ^& H% P * \' ~! y8 E3 q/ v
) g4 j' Q. R% w, K, W
决策边界
- E6 D+ M5 f2 Y0 I4 j3 @# c# z / w1 S5 N/ _: m# ^$ N
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。
: ~( m; y3 T5 `+ y/ [
+ {/ B/ z- L5 Z/ q 4 x. b# |* Q" n- }
1 |, L _" _1 k- x& U; _' b1 N Z 总而言之:在具有两个类的统计分类问题中,决策边界或决策表面是超平面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。2 y' t; L: O, i. |- E
" j5 _; F% O X8 g$ P 支持向量(support vector)
/ K& f4 _; {: B 1 `- W2 _4 O& O
在了解了超平面和决策边界我们发现SVM的核心任务是找到一个超平面作为决策边界。那么满足该条件的决策边界实际上构造了2个平行的超平面作为间隔边界以判别样本的分类:5 t% l/ y) }- d& [+ q
# h! z4 _- b* U . `) b/ i4 j: Y# x. K {. k0 e
, Q* m! q$ S0 G9 E6 Z3 K3 v, k4 N
X0 z# H( s. q- X: E! z + Z9 B `, j: R ]9 j
核方法5 o# h, v' A6 C4 x: i+ G# l
, b( H# E1 t8 G$ g# _ 9 e! k) L% F: v7 P
8 E$ y6 N; g+ X/ f1 @
6 n- r W% L0 C+ P4 i$ w/ g$ a
5 Q5 p# M% E* g0 R% `" M; z. t 以回避内积的显式计算。
2 X; u! D0 [7 L; x6 R j
' D; X' c$ }0 C4 i8 j 常见的核函数:
$ T+ F& ]0 z$ x: p
5 A" j$ m ]( g7 d- F8 J, | ( y* u) K2 @3 q" w9 _ _; ^3 |
' b6 R. _. \9 W, b/ x kernel : {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'$ o$ H0 s+ ~; j7 J' k: Z8 R+ B0 k
1; L: U. p' l$ b' |2 c* a, Q, D
当多项式核的阶为1时,其被称为线性核,对应的非线性分类器退化为线性分类器。RBF核也被称为高斯核(Gaussian kernel),其对应的映射函数将样本空间映射至无限维空间。4 u8 e b# P# o8 @% F+ E1 J2 E
0 F4 N/ G7 z0 H) D SMO序列最小优化算法) R0 r3 r: r6 N( b
7 m- }* N4 _2 W1 I# }: ? W
- } [2 D0 B' ~& [
- j5 N; n" h; s% j. |) O! h- _8 G
9 h1 f4 y; _* t/ }7 L8 b9 h * Y4 w) f( t1 L- h( _
# W/ h9 G$ P/ h5 C, B& ? * [, C" v! ~- K
三、Python sklearn代码实现:
! h8 m+ s2 ?' g. o8 S, C- l * ~, }& \; m1 q! }; A6 k+ Z
sklearn.svm.SVC****语法格式为:* ? K6 w) y# Y$ h
* W( r4 X5 i% {$ s% a
class sklearn.svm.SVC( *,
, ~' N3 T8 R8 i) s' i C=1.0, 4 g& k& N1 c* G+ T
kernel='rbf',1 G' ]4 V6 y$ }( J0 z. W
degree=3, 5 W# T( P+ ~ d1 n0 n3 }8 V
gamma='scale',
\# N% F* r& o0 m# i/ p# I# [ coef0=0.0, U% q0 Q5 ]) K# b% K7 G- S
shrinking=True,
% u0 @! S8 B, t5 z- J probability=False,
# s) E& m4 N1 L; l2 P tol=0.001,
/ _5 k0 `( G* M cache\_size=200,
3 Q- V2 R0 H6 _: u% S class\_weight=None,
9 |3 {3 i e4 |. [ P3 Q verbose=False, $ N' ~3 I5 D5 r1 O/ r$ y
max\_iter=- 1,
+ a( X, v6 X& q9 B' C8 Q- v# u decision\_function\_shape='ovr',
+ S! s0 o, q7 C" e break\_ties=False, - a4 B- u' A9 Q3 d& `3 e: K6 ]
random\_state=None)8 b0 l1 P; B) b
& b* Q* A8 w+ d0 e2 E; l 1
) f' Q( X3 ?# N2 f- E 2
Z8 }* T$ P* ]% C* [ 3
/ n- G3 T$ ]+ o$ W* S# [, J 4; n" T" i5 B1 H
5
+ a( L# ^& K- @7 _6 d1 d0 \# P 6
$ u- n& |4 S( R4 w/ Z3 A" A2 s 7
" P) k7 ]( Z* l b3 s 8! F) s% W( O% ?& s! T
94 q% M" g4 n8 X+ B
10
" E& S5 h k) e H6 L% b# P 113 l9 `3 H) P/ l: }( n8 C, Y9 O
12
- S& {+ f. M( I7 o. h2 j 13
4 i) _$ {& t2 M# a 14
1 |- m5 x+ l# ^3 I) i4 f8 [ 15: \! e% l3 I" ^% V% [* W, q A
16
: l3 t+ Z+ \0 J8 W, [3 R' E 基于鸢尾花数据的实现及解释
0 O1 ~/ K0 j1 i- K6 R0 t$ @# K0 k D! o: e& W+ z, w$ l9 {- v
代码如下:
6 v. W$ @( i, k9 E" h+ R
7 `2 s0 e' a4 c5 g+ a/ ^& P- e N 1 # 导入模块& l& Y- y' P5 G! |' Q
2 import numpy as np
! ^3 [- H4 n, a( s" w9 f' ]/ C. C 3 import matplotlib.pyplot as plt
* p0 x# A) U* J- z4 ~ 4 from sklearn import svm, datasets# \6 p4 [% P. M0 `8 ^8 E& T
5 from sklearn.model\_selection import train\_test\_split
# c: R0 Q* J. n2 G' X 6 6 i- C" s {2 [$ Z4 M) E9 n
7 # 鸢尾花数据
+ a f# i$ l1 ^' y 8 iris = datasets.load\_iris() #原始数据8 O3 ?- `% B6 M- s( a9 l' x
9 feature = iris.data[:, :2] # 为便于绘图仅选择2个特征(根据前两列数据和结果进行分类)% U( T) h7 R( o7 f8 c* a* u
10 target = iris.target+ w' | a/ J5 P& b
11
; d5 m9 u( ~& s0 d8 @5 W% i, \/ C 12 #数组分组训练数据和测试数据
: O2 z, O- l, N- c0 w' O 13 x\_train,x\_test,y\_train,y\_test=train\_test\_split(feature,target,test\_size=0.2,random\_state=2020)
/ v- m" z m1 r9 y" _$ r" ?* V 14 9 {4 L: Q0 f, H/ r9 l
15 # 测试样本(绘制分类区域),我们数据选了两列即就是两个特征,所以这里有xlist1,xlist2
# ~6 F* K a" j9 {% c7 { 16 xlist1 = np.linspace(x\_train[:, 0].min(), x\_t4 k8 Y {; g! K. c3 _
————————————————/ I$ C! b8 } T& p }! B; x9 }: n
版权声明:本文为CSDN博主「qq_43479892」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
$ b9 l: K* J. p) f% P8 ]0 E1 `3 w 原文链接:https://blog.csdn.net/qq_43479892/article/details/126811791/ L& O& V1 E1 k4 J2 G
|, H" G: r& U; d
0 u: ], t. q! T \
zan