- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565741 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174945
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
支持向量机分类算法
8 |0 G3 M9 f1 J; U6 @* E2 O9 Y: l# P* W4 v& E. R5 t- i/ _6 D8 f: v- h
🚀 优质资源分享 🚀/ q, L0 f' \8 ]9 H9 Y
学习路线指引(点击解锁) 知识定位 人群定位
7 \+ I* N6 K7 ]9 S/ R4 t. Y🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。' u% D8 [8 z+ ~: s
💛 ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
+ I- V# X3 w& x! \+ ]* E% z支持向量机SVM
! L( R) I5 [: G6 J
5 f! I/ `: t. k支持向量机原理. K9 a" j* ?' p$ t
/ p9 K" ]6 D3 B4 t2 Y% O4 m7 Z
1.寻求最有分类边界
: a% n7 V e! S y3 `" B& ~2 O* [1 ~$ R* q/ p- }! B. }) I
正确:对大部分样本可以正确的划分类别
. \' Z( ]& c. U9 m7 P
+ e; J4 s. L0 A! i7 f2 E2 H$ c, o泛化:最大化支持向量间距
0 @, V; U( n2 {+ h! y( `
0 p$ I! }( }- D/ }0 ]- G7 s公平:与支持向量等距) U6 f6 K ^/ s) f. u
( I3 Z$ g: _. _6 K! M5 {. { @6 J
简单:线性、直线或平面,分割超平面
/ F1 U. ]3 c: c
/ ]/ D. p2 I8 C' u2.基于核函数的生维变换
4 L; C" J* }5 G$ q- G9 ]& m7 s' A! A- ?
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。
& Q! H2 Z# k: U; u5 {+ T& w
- @4 p) i, w% e5 z* J8 f一、引论
3 R& g2 i# z6 A2 _0 Y% D" ^1 N @
( [$ Z z4 ?. p+ l- S+ U2 Y0 p使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:+ O \# _2 G/ N- _9 d8 X2 a
* D- M: s% m8 ], @0 v, T- Y8 B
* r$ K4 L& E: r* Z8 t s U
" I1 C \; k- \现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。) u" h+ J$ l2 N9 ~: g, [
9 s! o8 Z# Z/ {8 t
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:! L# f: g: @% k. {2 j- ~
0 {6 a" a& @( C3 |
二、理论铺垫7 M$ e1 ]$ d0 F, P% i D
+ v% z4 s* Q7 K/ k& L线性可分性(linear separability)% T. [$ b# k, j2 [1 j& m
1 A6 ?6 m) q {. O' w: _9 }: A# Y% B) ~8 O; X
, k) r1 `/ C" `! B( b$ I而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。5 f1 c+ P+ V8 a" |. j
8 n }' `& R8 }' e; {6 ?6 a) T, o o- R* i/ ?. V/ r
" |- Z0 Q! H7 |: u! A o; r* u
决策边界7 u* |* ~2 E9 y' V; e! S; L
( A/ x* B* d- w, P
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。: ?$ t5 b4 r/ D0 q- k$ P
y% w7 v# t- ?1 I/ ?% B$ A
# H6 }1 [6 d0 ~: @9 {$ t) L
, z0 \2 }4 g1 y7 L# M总而言之:在具有两个类的统计分类问题中,决策边界或决策表面是超平面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
0 Q8 v" \) j- ?0 _% U; y
8 h/ F' b8 f3 s* W- c- a支持向量(support vector)# u. h$ P7 c! G y
( Q* s' V8 M* P3 L& e/ P$ ?) |在了解了超平面和决策边界我们发现SVM的核心任务是找到一个超平面作为决策边界。那么满足该条件的决策边界实际上构造了2个平行的超平面作为间隔边界以判别样本的分类:" C' u! @$ f6 y* _( _( U
$ t" }# D9 ]* o# _0 O
. F! ?" C: P+ W: ?) B7 ~ R* s( z( I) `3 u2 o B
6 s& z0 B" Q" b6 @" f
1 `: Q0 G/ E5 y P! m# ] n
核方法2 W5 Y% T3 o& ~) Z) W; ?
# N( N# I. o7 |
/ t; a; n3 u) a L- T
$ x5 C: b2 R) g2 A: I( P6 }" ?# O3 R( ~& [2 t; S% {( `! ?
7 U; {0 R6 _ P# {4 f
以回避内积的显式计算。7 b/ p2 g$ ?! c( \6 B& V8 Q( L
9 @! j: u; r5 v: X, x- b常见的核函数:
! o4 N* c& l) Z' U
. `0 c+ V0 k# S, J6 i5 l% U( S" T! z( b8 G3 V
: o0 ]* V: H# g. o% a
kernel : {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'; e9 k* M6 P- u7 A/ R
1
0 y/ _. T4 [( }" s% O- m. z/ V* y当多项式核的阶为1时,其被称为线性核,对应的非线性分类器退化为线性分类器。RBF核也被称为高斯核(Gaussian kernel),其对应的映射函数将样本空间映射至无限维空间。
5 y3 p! E; I7 G5 P' Z+ m( B; ?9 F) O
SMO序列最小优化算法
3 B L1 c7 y1 n2 ?, U+ [
* [ M- A8 G- i1 P. R3 N* M
' E; S% D- y5 E. g7 u
" [8 `' ]! W" C! ^
, o# O+ a. A/ d ?
* m2 \: I2 k6 ^: m2 r0 B
' X8 O. g3 v e3 e
1 Q& U% f; v4 W h" T; J9 `# R三、Python sklearn代码实现:
7 j; y, `9 X7 {6 t P# z3 L
1 F0 x0 ?9 x2 ksklearn.svm.SVC****语法格式为:
3 |+ P' i5 @3 T' p2 R4 ~
& _* @! s! y( Yclass sklearn.svm.SVC( *, 6 b5 j# J% m9 `/ ^. t
C=1.0,
9 d+ N' ?# N' a3 ~9 ^' ^, S5 z _ kernel='rbf',
" C8 w0 Q9 t$ T: c* Y) @! ~( Z degree=3,
3 q1 B$ i5 y+ T' b gamma='scale', + v' l7 J g; I/ U B# z- J: }
coef0=0.0,
8 C% g( R* n/ @ shrinking=True,
6 G5 A' ^( C4 M) ?* ~2 {* ~1 `& a probability=False, ~2 V- L8 w. F0 M* {
tol=0.001,
# O' V7 [: }5 s0 y5 _0 u" g cache\_size=200, & y+ L& f: m. C
class\_weight=None, 8 L8 ~5 z+ ?. w* q. Y
verbose=False, 2 W$ \, U4 V5 E/ U- S3 z: J% G/ E
max\_iter=- 1, # Q ?$ @/ a! l1 S4 j6 v7 L
decision\_function\_shape='ovr',
2 o, B8 i# Q$ k7 ~1 {, b. R break\_ties=False,
+ Y3 Q2 H# K9 Q+ L+ W6 x6 P random\_state=None)# d6 i& F* X8 K! a, @5 a) u
: J1 ^( e u* \: P4 O1
. [! z& w! o8 K$ w0 }/ ~" F8 a2 C2
/ \. }$ }; z% ~8 z3
7 Z2 B9 C0 M8 p) @5 @1 `4
( T1 _" Q; e& Z6 N6 S! z) p% Z5* n6 C5 o& n! X `2 h5 D0 ` H7 U1 B
6
: I+ E, x; q, ^7' `: M# V( \- H, G/ s7 E
8
9 X2 F9 s* R% @ @4 t6 Q91 Z8 [& `% I0 S2 p
10
5 I8 E; J9 M& C- Q& h116 t2 g; w- u* j0 ]" L
12
, l( P- Y7 K. p9 s# o3 @2 H13
5 B5 A) o8 k- ^; w9 R& M14 t5 |# G5 j; s, F9 ~& `
15
5 @7 F% [5 F) r( V1 z7 q4 q* }- N( h16
5 D2 ^. Q& ~" E: D; t基于鸢尾花数据的实现及解释; d2 t9 b9 j& y! {3 L
9 B; Y7 v# V6 o) e9 Z2 y
代码如下:7 w/ \$ [ q& d
; X- i& H+ Z% H( `4 G) v
1 # 导入模块& Y- k. P9 X8 ~6 x6 t1 `/ r; z
2 import numpy as np
4 t4 J3 ?6 x% I& Z! C. k* B- r 3 import matplotlib.pyplot as plt# \5 D/ C, _9 b! j" `
4 from sklearn import svm, datasets# `1 I% ~7 z3 |0 E# y- |
5 from sklearn.model\_selection import train\_test\_split A% {2 v) x% R
6 9 U$ N0 ~- R2 e5 ^. N4 k5 M
7 # 鸢尾花数据
, C* k0 S& f& Q 8 iris = datasets.load\_iris() #原始数据
5 y; _% n- P, S1 q }: Z 9 feature = iris.data[:, :2] # 为便于绘图仅选择2个特征(根据前两列数据和结果进行分类); ]. A+ b, K" P! N: X
10 target = iris.target
! O9 h+ w, K$ R4 I/ o7 p) p f6 q11
L+ ]" ?, F) R, J1 q% V12 #数组分组训练数据和测试数据
6 R2 ]( o M s' n3 O* t2 o13 x\_train,x\_test,y\_train,y\_test=train\_test\_split(feature,target,test\_size=0.2,random\_state=2020)
8 V- B6 N2 I' @1 @, e14 - v- ~3 s5 N0 m4 y3 V* V
15 # 测试样本(绘制分类区域),我们数据选了两列即就是两个特征,所以这里有xlist1,xlist2# Q9 h" G4 ~+ ~8 i& w3 n& ]# }9 J
16 xlist1 = np.linspace(x\_train[:, 0].min(), x\_t, g6 [; Z% \: F' r! r2 b
————————————————
: p; R5 {: P1 _版权声明:本文为CSDN博主「qq_43479892」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
; r5 e* B ?& n1 [" q- _7 H原文链接:https://blog.csdn.net/qq_43479892/article/details/126811791
; i! N6 t7 N' B7 a: ]& [5 i, @3 X! f' s: p T+ V0 Z- p/ Y
5 q) w {+ g, @) I5 l
|
zan
|