- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565745 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174946
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
支持向量机分类算法
* g& s: Y# | y7 M- m# q( N; }
, G3 O- I- ^: v% Q🚀 优质资源分享 🚀
1 K7 }/ \) ~ Q* K学习路线指引(点击解锁) 知识定位 人群定位
4 |- K0 R7 P) k) m) y$ P3 s🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
2 }2 e0 S- i4 }💛 ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统' W) {7 L, e- e% x3 i! Y
支持向量机SVM
' C& k% _2 _2 m8 H1 _
8 X" I H8 x4 {7 g9 T% E+ c# G支持向量机原理
* q( W; g+ C% f$ ^, c
4 V2 |: _. b$ A w t5 T3 Q1.寻求最有分类边界
% Q/ ~' ]; l) y( \. f4 h4 @4 G; e$ s
正确:对大部分样本可以正确的划分类别
1 F% ]! q4 J6 w' e
8 Q! \. j; K+ E- L6 @泛化:最大化支持向量间距
9 ^' @8 Y1 k$ `, a+ a' I3 P: ~! D m; ~9 P! T
公平:与支持向量等距9 L4 b% O& ~) J, C7 x
) g2 T j4 l0 t6 |; F! g8 }* K简单:线性、直线或平面,分割超平面7 s3 h2 z$ t m- P7 K# c- I8 J
, ]& t/ f6 M" i. t$ N, M
2.基于核函数的生维变换5 G" o, \4 B- K
5 _* H5 h2 G" G- b; _通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。
" Y! |+ g `4 w* o0 s4 ~5 } _
9 X$ I; H2 A" P4 }3 R一、引论# x- `9 Z/ F! y" V! M
( x t8 M3 p0 W使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:- |9 h! M. s' f. G2 h: d( L1 q
U) B0 B: l8 j4 f* ~4 [
$ D3 K) D1 r1 V4 V% h; h2 U, d
. Y; u6 u5 G" v! D, x0 U/ u5 J6 L现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。
2 ?: t) o5 e E$ G# E
" b& I0 v) W8 {' _我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:
) u5 e" @4 V0 h3 G$ P. r6 z- ?! l
$ R: i( S; N* N7 K+ I二、理论铺垫
/ T+ t8 {" v( C- p# S. i! z6 q
. }" j$ L, b& n a" I1 ~6 D线性可分性(linear separability)
; {! V* [- a, K6 j' q) B: s6 Y% {; g1 n( }3 C
$ @% t8 r& H& l
; {) W6 E# f9 ]. H7 N& Z而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。+ d: g$ h. Y2 y6 M9 \+ c2 P1 x
+ K# I d- [, U3 j: d$ U/ g% o2 [! Z8 I1 Q: U Q8 I
9 |' E3 c. ^6 v" Q5 ^1 u4 J1 \: D: G- |2 i决策边界
& f) h9 ^! k2 d. d# o. p! i' \$ i9 P9 J4 E r M: c, _
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。
& \4 p2 N% `* I8 O4 l* B+ a. X$ i3 W
6 M- I4 C! b ^. D2 |1 |/ B0 ^
+ \5 c7 L* l! m& h# s
总而言之:在具有两个类的统计分类问题中,决策边界或决策表面是超平面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
" V y/ c. J. T' F, |& e) P* o
! o9 | E1 ^9 P }& d& q6 _支持向量(support vector): Z. y4 ]: _' @
' l1 q; R7 m. w% |; L7 G在了解了超平面和决策边界我们发现SVM的核心任务是找到一个超平面作为决策边界。那么满足该条件的决策边界实际上构造了2个平行的超平面作为间隔边界以判别样本的分类:+ x: ^+ c! ^5 \! J4 d9 N
7 h5 J* U7 ~4 T l# E# r$ J# x
3 ^5 f! R* N, m0 X9 _4 u/ N
) ]) Y* e6 w" |) [, B
4 F& K/ W6 D% b; f% ~5 y
3 ]+ X2 L6 F2 v8 `3 C" \核方法+ s& {# w( C6 q8 s2 B f+ P: T
9 n3 P+ G. s! z4 m, a- J8 Q5 U5 O, K3 R. O7 ?2 u
( z+ j$ V6 v3 G9 E- p: L
; M, U3 ] q4 X; f
2 K( P, Q2 l; o2 O! L |0 K0 G以回避内积的显式计算。, N6 v5 {8 F4 N* G. B
+ A+ n& ?4 O( X8 |- K# V! f常见的核函数:5 m% Y2 R" W6 F" F9 y% h, _/ r
5 A7 X. J9 g3 H( |3 y! F7 J: n
( |, p. E" S3 p; j( ^6 S5 t9 I7 J4 t' x5 ]
kernel : {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'
4 W' z, U7 c$ t5 O5 E$ P9 J2 |1+ _ W! u$ Y% J, _
当多项式核的阶为1时,其被称为线性核,对应的非线性分类器退化为线性分类器。RBF核也被称为高斯核(Gaussian kernel),其对应的映射函数将样本空间映射至无限维空间。
" T+ _& k3 i% d. `: R- j" N1 y0 G2 z8 T! {5 ?
SMO序列最小优化算法
7 G6 O K `3 l1 ~5 `0 c: |7 I+ H1 U* ]2 T: p. A( S! s
0 G7 K& I1 r. F5 ?/ l0 o$ `; C0 m4 c1 [$ F
/ ?0 o9 G9 B: u" d& M
* N) Q$ x1 h4 V
. W; B" p; a5 W$ S! Z
+ Y4 F- ]9 S$ ~* M7 Z三、Python sklearn代码实现:& ]: ^( q5 m: Z/ y1 U2 q
3 ^: T) x1 p1 e7 W Dsklearn.svm.SVC****语法格式为:9 \. n& S1 g# P$ L. M& k/ N
% R% I0 e* U9 X) R$ X$ x
class sklearn.svm.SVC( *, - Z: z8 j2 ^* o) _3 O3 T1 K
C=1.0, T% Y# s6 F+ z6 e
kernel='rbf',: y) K) I9 c! E$ ]/ c0 |2 R5 L! }+ f
degree=3,
6 ]7 V6 H& ~, r$ l gamma='scale', % O" | i% Q9 U6 e3 F6 R8 ?" S
coef0=0.0,
/ j: X' ~5 Z8 Y- t' X' @ shrinking=True, # K( ^1 W/ V! w& o! R
probability=False, ' o7 q1 n* t+ i. A+ f
tol=0.001,
9 J, _7 c( K9 E! e$ |9 g& v cache\_size=200, ( t# k+ [" Z+ x2 R
class\_weight=None, ' U2 ?: P: x2 `
verbose=False,
1 x! |5 P+ R2 C1 m0 r3 R5 E) d# X max\_iter=- 1,
G1 n' u& Z/ w decision\_function\_shape='ovr',
9 T) y7 S$ |2 u4 o) v# z9 p9 b break\_ties=False, Z) H& K7 K" P0 y3 K7 b
random\_state=None) n+ i) W0 C* W/ V: C
) Z- Q3 Y" ~/ b6 g+ a
1
: I( S5 ?0 b& C3 B: y2+ \ h7 r4 c. J$ k
3
( U- F+ T( l& m44 B9 r4 x' o2 w, m9 Z' f4 M, @8 |
5
" H# w, b8 T0 e' c- I6, D& P5 J3 N5 }7 ]( ]) \3 M. s
76 {, j+ \, X+ z6 }0 s5 E0 s* R
8
0 S! K/ \% ?! B% `8 T4 B6 E* x4 `* G9
7 {1 u. D' D% c( l2 \: j10
/ H x( t9 H3 z" K" k$ ]8 v: q11
6 a0 V# ^- k& v12
. O8 M4 e( M* t13+ J& r9 [/ O! u ^$ G
144 D1 P: j7 R# t+ @% E+ z, ~
15
7 A1 Z$ o/ J% _" w" p F16
8 h( o, k1 c$ E+ D8 n: E- ~7 E基于鸢尾花数据的实现及解释% l) e5 \" [2 I& I: V$ ~% D1 s
: D. O, Z. K- n: k) ^, m ]' M2 n& p
代码如下:, k1 T1 P% c" W9 Q: x) ^" Q0 B. a. Y
# R% I. O9 {# q E: i9 q 1 # 导入模块
; G( \6 K2 w9 Y9 ^; X 2 import numpy as np
( V. q7 h2 x. m* F" E( d- M 3 import matplotlib.pyplot as plt# G# B1 _8 V7 s" q( q
4 from sklearn import svm, datasets( I. {8 z& [8 n
5 from sklearn.model\_selection import train\_test\_split* w0 o( H: ?4 r6 z
6 0 V- H) G, Y4 m1 l
7 # 鸢尾花数据) U% Z5 f& L; a9 y# D C3 `$ i2 G
8 iris = datasets.load\_iris() #原始数据 [8 H! z# P* K9 ], }1 H
9 feature = iris.data[:, :2] # 为便于绘图仅选择2个特征(根据前两列数据和结果进行分类)6 W" j7 @4 ?/ f. i( s
10 target = iris.target
& v4 Z" V$ q |5 d11
, ^) F( ]& y$ o12 #数组分组训练数据和测试数据
7 ^! W2 s- A1 _4 y+ d! d; c& @/ g13 x\_train,x\_test,y\_train,y\_test=train\_test\_split(feature,target,test\_size=0.2,random\_state=2020)
! Y0 N* c, I7 E4 [$ I3 p4 O14 8 `; _3 y" r9 d3 g4 L; D6 Q
15 # 测试样本(绘制分类区域),我们数据选了两列即就是两个特征,所以这里有xlist1,xlist2
, X; j5 G! s/ M. _9 |7 `16 xlist1 = np.linspace(x\_train[:, 0].min(), x\_t
7 M% |4 d# h7 A# t% W————————————————5 `& i! y: L; R/ ]# ?. W
版权声明:本文为CSDN博主「qq_43479892」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
4 q, u" \1 E% r1 W原文链接:https://blog.csdn.net/qq_43479892/article/details/126811791
5 C6 G( U* t! L- [
: z5 l( c7 u0 d D3 z9 U, B* Y( d/ C
|
zan
|