- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563328 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174221
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
支持向量机分类算法
l* C5 v5 |! V& _0 e$ G- s" A2 W% `: C2 `+ |! z a
🚀 优质资源分享 🚀" C/ j( X* P8 Y
学习路线指引(点击解锁) 知识定位 人群定位
+ I- V+ ^3 _9 N$ q4 R; h% v% ?- ^🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。0 a7 n$ d; r- u0 X8 E+ [
💛 ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统' q" _2 _ Q* n8 D( G) e
支持向量机SVM
: d5 [* G1 _4 D* y, b2 k
. E* ]( u! h% ~* b2 Q; ]! A支持向量机原理
. C5 w' M3 ~$ m9 R0 \( ]' d) d4 L0 H% R F
1.寻求最有分类边界( I3 ]! A. J+ `! N' D. [
5 [" R. Z: x- R) r# T正确:对大部分样本可以正确的划分类别% |! q' G: ^9 M
' C1 }( @" L" @, {% d泛化:最大化支持向量间距
0 c1 v: o4 n4 m V& r3 r G' `8 U1 F4 C% ~0 {0 ^9 e; V
公平:与支持向量等距
( B& C) Z3 d/ l* P7 B# c. j
: B! N# b2 b/ H2 O; P W' L简单:线性、直线或平面,分割超平面
" O1 t2 P, F5 z2 s$ Z+ _
+ h4 r+ ?% x" _2.基于核函数的生维变换4 u$ p" F: g. G) S" v7 M$ ?. W
+ c% h/ y3 V0 S6 X. B: J3 {. D通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。/ X) H# Z0 M, k; P. \
, P/ g- V7 j- y
一、引论8 b; e. j7 z( Q* G7 L( G& J. G
% [2 g: E \/ [% B8 u
使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:7 H! ]0 H6 I, I$ e7 o
, z6 N$ S$ \/ {" N, Q9 B3 x# [
7 D3 P' |; g% |, x5 }- K4 L2 @& f. P5 D; R; l
现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。: P8 v, s4 Y5 L$ t$ O
+ V0 i$ A/ b( M% d我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:
$ W2 Z+ C. T+ ]* r4 y# N" Y# |
4 Y0 p+ N1 C t( h6 ?3 k二、理论铺垫0 |/ q3 b2 _5 x! |0 ~
3 {' T" a9 w' i5 y5 M线性可分性(linear separability)) H( [2 x6 p3 c+ X
, ?+ O2 b, {' G6 d! m s% b9 N
0 B, }+ H5 s6 j( @2 ^' J4 L
( ]* s( o3 P0 K: Z" ^% ]2 \! d; ^而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。2 D: z6 O9 e( W) n4 C1 i
9 ~( x( }# x3 E5 _) W* q
4 w2 K* K& U/ T
" o' ~' p9 d9 t X% Y( j7 K决策边界
2 C1 n! v5 v- i( }$ j2 h" \4 g F: o0 D- i0 H1 [
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。& n0 B! r% k! K7 S$ j3 _2 U7 T
# B% j; u" |3 o" S( ^
w6 c$ |6 F5 [+ q9 f h L
* t7 U7 f2 @8 a" T1 J( P7 Y2 P总而言之:在具有两个类的统计分类问题中,决策边界或决策表面是超平面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。9 {, R( o( E7 r- V; m7 Z
2 F- Y" K/ @8 U( {) @- v3 X
支持向量(support vector)
: a- C1 C% l" y5 ]- L, y# G2 N8 x: }$ X. w7 ^0 P
在了解了超平面和决策边界我们发现SVM的核心任务是找到一个超平面作为决策边界。那么满足该条件的决策边界实际上构造了2个平行的超平面作为间隔边界以判别样本的分类:- J1 a6 w4 i F2 P' S3 j
7 ]; G+ c0 F$ S; s4 G
3 Z* ^1 v J) x2 G J/ V
2 J0 c+ K1 h9 q: [/ f* z2 M) k; `* t7 _* E! D A/ X
- t+ P5 I Y2 ?4 N+ F
核方法
3 y+ U0 t" e* e: N( J5 E" C0 g4 g
" o) a% c. S( s) q# k
+ K- k/ I O8 {9 _9 I6 a' x3 m
T; L8 Y8 i4 g8 b" c' t- s! b& b- l0 k3 C/ G; D% m1 }. f1 f
3 l6 n3 r' w, x
以回避内积的显式计算。% V& ?0 {8 F! ]6 w1 ]( H F! F3 k
- b0 S0 D6 ^, j. x
常见的核函数:' N0 V5 d A! s/ ?2 y4 O" F
$ j/ O5 m4 l k, d" O. v8 [* x
! ]: f* \- ^9 b! P$ ` |
; @3 X3 h1 p1 h2 Q" ~( tkernel : {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'3 q8 _ C7 a/ k" `+ o% s( g+ C& ]8 [ C
1. m# F+ q6 ~! E0 G6 p
当多项式核的阶为1时,其被称为线性核,对应的非线性分类器退化为线性分类器。RBF核也被称为高斯核(Gaussian kernel),其对应的映射函数将样本空间映射至无限维空间。6 C0 Y6 t' m( e
1 F# a" r- O x1 l! p/ `SMO序列最小优化算法
' f) w ~( x; F" s. [
" |: d5 O: M! w, G. |- M
# N- n6 {9 M K% Z N; _# g$ i$ C+ n, `1 ]
4 L; o5 W2 R% x d
* p, a) v3 @0 s
1 f/ |5 H4 W1 e# P' u. {" l) i# J4 Y9 f9 s# E$ J A; Q
三、Python sklearn代码实现:
, z, G6 y" h( P" m; z3 X3 j4 T5 T4 I0 F+ ]( e* p( i
sklearn.svm.SVC****语法格式为:7 b- O6 A2 c. E
: ~6 d ~/ e6 i6 B
class sklearn.svm.SVC( *,
V6 Q D- r4 S9 @. }+ [: ?7 Z C=1.0, " B f; T+ p. m# z
kernel='rbf',2 n3 S& u- V) Q( L3 K
degree=3, % u5 m, g( U2 C/ v: ]; l, f0 i7 h
gamma='scale',
; e( u1 `' e1 T coef0=0.0, / N) w5 P2 p( o8 |: k
shrinking=True,
8 a, @6 y. `! \/ e* x. v probability=False,
" d3 F4 D* ?* K4 L tol=0.001,
: ]+ f: ^5 t9 ] Y7 C; X& {5 L3 n cache\_size=200,
) `5 l0 \( Q* Y! n0 y, l1 } class\_weight=None,
# Q. y! D) `! |0 H# R3 h. d verbose=False,
' d7 b# m+ h! W% D: r max\_iter=- 1, ; q/ }# f6 K8 Z/ a/ `, D: Z
decision\_function\_shape='ovr', 3 Q7 u# }+ V0 x4 ?
break\_ties=False, " P$ t& U2 v: ?
random\_state=None), f* X9 J q. x. s* _' Z
6 ^% K3 ]9 K/ M" h3 Q1 w5 {4 K
1
5 G o2 b3 |7 Z( P4 U, s28 T m, c1 h/ ?1 r* `* V
39 N. d5 s9 Y2 k7 t% ]
4% {6 q+ m* W% g" \9 q+ q8 t
5
$ Y4 _8 Z. h n% w5 i: o6! v9 _' S8 g" q O9 A
7
z0 b- l6 T- J1 L8
! k2 y; R& F. O+ J- p4 F# z- `5 b* N9
, C% r. r" U5 S1 q10) H' K1 P! X7 s$ K H1 Z( I
11
; U* R; H+ L/ Y0 e& M126 d* J! \2 l+ i. F% [5 O
13
" P5 r( G1 Y% ~0 o+ R5 p14; D5 `5 R& G' t! ^' _% F; c3 r' l
15+ k/ ], |( E* R
16
4 ]; l" @0 s! O( @1 U- V基于鸢尾花数据的实现及解释4 E1 @7 i; L0 `, H6 T2 @
4 J- ]% T2 k$ T2 C* {代码如下:
) H2 T; R1 c1 b/ Q/ q8 r; v j# N( ~5 V/ { n: Z" m4 K
1 # 导入模块
2 C+ c8 a \, J0 `4 C$ B% I8 Q) G 2 import numpy as np
5 b$ v% f) c2 K8 J; C9 a 3 import matplotlib.pyplot as plt
) D7 ^2 F; N4 P% ` 4 from sklearn import svm, datasets
1 M: v: A1 b/ O i c' k1 q; \ 5 from sklearn.model\_selection import train\_test\_split
: g: d: Z; K; B, C) S1 C 6
7 h1 C$ V, C" \ q% O 7 # 鸢尾花数据
# q: ~9 x# A+ E" a8 g# ?5 q9 M3 V 8 iris = datasets.load\_iris() #原始数据, l6 I, e- l/ D! n2 k
9 feature = iris.data[:, :2] # 为便于绘图仅选择2个特征(根据前两列数据和结果进行分类)
) L( m6 a: U% H9 @8 `: t7 h7 Q10 target = iris.target
* t& D$ J* \; Y$ { ]. v11
$ h3 P2 s6 x" P) N. \8 A12 #数组分组训练数据和测试数据
( M5 V% O+ M( v% L5 u$ b13 x\_train,x\_test,y\_train,y\_test=train\_test\_split(feature,target,test\_size=0.2,random\_state=2020). n1 q# T4 U; T1 z
14 4 r, ]' L9 @5 e# s! [ ]/ ~0 \; A
15 # 测试样本(绘制分类区域),我们数据选了两列即就是两个特征,所以这里有xlist1,xlist2
% Z U. n. ]1 b+ h. V16 xlist1 = np.linspace(x\_train[:, 0].min(), x\_t# e: M$ `+ ]% v4 s9 W p6 H& Q
————————————————
! _+ R, ^& L1 \4 I版权声明:本文为CSDN博主「qq_43479892」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
$ R& ~# K \6 H2 E% t原文链接:https://blog.csdn.net/qq_43479892/article/details/126811791
3 A: u# L& A. Q2 a1 J' |4 U Q& U1 C) ^- T
# H, k6 t2 ]8 [6 M, ?7 C$ B |
zan
|