- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 558350 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 172878
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
支持向量机分类算法. q+ \1 A6 Q W2 o. L* m+ B8 U
5 ]* b( j, J Q
🚀 优质资源分享 🚀
- a- d! c* h) J& P" K6 o0 `1 X学习路线指引(点击解锁) 知识定位 人群定位) o& o% g5 ~$ x4 j- ]
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
- F2 R) B. m- _1 i! e& ~4 A9 |💛 ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
P7 D" v- v' Q5 B5 v: B" ~6 ]支持向量机SVM- c1 X1 n; ^4 o
/ `% l+ T$ q+ ~& O$ w z L
支持向量机原理: w) h0 U$ A/ _: J. m. [6 R$ v- i% H
$ }4 ?8 ]) L, I- @0 I7 x# r0 P
1.寻求最有分类边界, E! f2 \: B* C: @' M
* K8 }. D& N& k9 [- |/ m正确:对大部分样本可以正确的划分类别: x; P+ B3 Z5 n4 M& d% P; I
6 W' Q& J W2 e7 K5 m
泛化:最大化支持向量间距
. @" x; a6 b. c2 \1 A
8 {8 b6 x* {& z- E+ W }9 \公平:与支持向量等距: W7 ?: T/ ?$ t$ e/ q
+ E! ?0 \% O, L/ q) @简单:线性、直线或平面,分割超平面
+ T9 y7 P+ a, }7 o" ^) [ v; o: h) O4 [9 S
2.基于核函数的生维变换( W" s+ B* S, z8 x7 n: P) E* n
, ~& ]3 D# W, T3 W
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。
h7 m' G, ~) p6 w+ Q( a
, W" i' H) \ F0 D一、引论
9 c# n! T2 x: p) A2 _& a* B, i" Y9 \
; Z8 u) O; d8 J* J% u使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:
* |# T# r( I" [ j+ e& k1 [
( | A2 W+ |2 `! R, N
' B) y% ?7 x- {0 T8 I3 K% h- O$ i+ X8 l, X7 Q7 G d
现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。
- G3 }% C% E6 n: k( P, m1 R# @5 B- F, s9 S7 c$ @5 \- I
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:
/ Q3 J2 V- i/ Z4 L" I9 X2 H, I5 j' t; R+ b+ r+ R+ s, h+ s: [& h
二、理论铺垫
3 {7 P8 j s" X/ Y0 u
3 d# o# T. W4 C: [2 \线性可分性(linear separability)
- T w6 J& e& W9 k3 n$ P
3 e1 j; n! H: k6 d6 v2 T
* [$ f; V% q" }: t0 [2 y" m$ [0 G, R
: b, _ M# h V1 p而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。
x% t* H [2 L* e2 U x6 r- g. d B( Q' L
3 n! i& W0 T; w0 J
- _. P5 Z8 j6 P$ P决策边界
$ H$ P! f/ D# d% A; A! r
! ^( e% ^2 E& k5 mSVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。
7 [; f' ^2 L- j- J7 a" F6 v! q( l% z5 B/ s* T- E
6 G5 c) K6 `8 P/ j8 B: E9 c5 k$ [; l4 s/ ^) A! I& [
总而言之:在具有两个类的统计分类问题中,决策边界或决策表面是超平面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
2 K! l* [ p$ ?' c1 C6 [0 X( @4 x! t( Y0 c e) o; m
支持向量(support vector) _ A% t; D X- b1 u. |2 d
+ H: [7 G+ @ s! B, m# b, O; p
在了解了超平面和决策边界我们发现SVM的核心任务是找到一个超平面作为决策边界。那么满足该条件的决策边界实际上构造了2个平行的超平面作为间隔边界以判别样本的分类:
4 E+ C; B, [6 _
$ [4 T; w$ g( ~2 _9 H' ]0 j
! R# n, W6 L7 C) L: T6 U
7 M n& b1 _) k) m$ N! R) p8 k. g3 W5 J0 Q
4 N$ U+ ~2 x; R: ?4 C
核方法
7 A* F. k3 v+ a- T5 Z$ }. f4 V0 ^+ z* C8 p- W4 }1 X! S. p7 P
6 |, V6 x& G# y- U' Y' `/ y
( B3 h. O) c7 i
k- k, P' [7 J& L% Y
' [8 S5 h4 u( x/ e1 p# p以回避内积的显式计算。
8 e0 B0 ~1 b: g) m( Y7 e% O0 t U- X2 J% I9 N
常见的核函数:
# O; P* I( c4 }( J% u3 ?3 q0 j
1 q& w T/ i; L. Q0 d' q) ~0 q+ `& A) h( s% O. u+ N
$ o- z! t( Q8 L, p5 n1 i6 d
kernel : {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'! W4 o7 t2 Y+ s( ?% o
1. P3 I) B% a$ k- c7 y# w
当多项式核的阶为1时,其被称为线性核,对应的非线性分类器退化为线性分类器。RBF核也被称为高斯核(Gaussian kernel),其对应的映射函数将样本空间映射至无限维空间。
& S4 n& D T8 j* \# N! C5 N2 s2 A% R8 U6 N
SMO序列最小优化算法. s; u& f5 I1 c1 J( y
- g; y3 D( Q. T! t) c
* ^* x& d1 p4 p; _+ t8 { u" P: a$ M( n7 i8 d" d
& |# a. r. |$ j; @" E& _8 K
* @/ \+ x& k0 @" V
* _' c* a" d3 o* F
' L; b8 p# b) L- D# B- `: [三、Python sklearn代码实现:4 @+ j( k* o- ?, p8 a# j7 }
( g0 [1 S$ O7 a9 S! y# P8 Rsklearn.svm.SVC****语法格式为:& d4 Y, u1 A+ q! N% W4 G
# ?& @+ S% t0 O! u
class sklearn.svm.SVC( *,
- `; l; h( h: R: Q C=1.0,
7 }. e6 ]8 x4 g" F5 l' r8 Z9 j kernel='rbf',
3 j9 A- E. {0 I degree=3, `- ~& `& ?" F6 O4 E9 q
gamma='scale',
) C) C# t7 e: `( s& ^) ? coef0=0.0, " Q7 A, o+ }/ K3 {* Q T
shrinking=True,
1 l: O3 ^8 ]3 b6 J: _ probability=False, % }" l2 F! e* c! ^
tol=0.001,
g y4 Z1 [- g% S o, U9 E$ N! Q! i cache\_size=200,
, p' p' f* B8 ?: t4 L) k class\_weight=None, 9 p7 y% r% P# ^/ G$ O7 \$ ?6 \
verbose=False, 3 g( Q) d: R9 x2 h+ n5 D
max\_iter=- 1, - P8 e( n) [$ t; W4 a
decision\_function\_shape='ovr',
. i( z3 w4 A3 u. p4 d break\_ties=False,
* D( r% j- q6 \ n* t random\_state=None)
8 d! x8 w. K8 [8 P C3 O/ [3 [, {* [+ r, {( l) i6 p# i
1) k7 A$ z% y& [" e
2
& {7 d C0 Z* ~: t. G9 r6 V$ @% c5 _3/ K! ~% f& ]) L; f/ g+ i2 l" a& L
4- J; q) ^9 n! e7 W# y- a
5 H5 Q7 c# }+ a* Y
6
! |) b2 W) }! O* R8 J0 _! L7, L6 g$ i# l4 V- A2 | k. [
8
& i' X h5 }) ^1 _9 U9. |0 m$ i+ L- v! Z. r; o
10
' G! {; D$ z( K11$ u2 P) ?8 i) i) H, \1 o
12) Z$ j; ^; P: |' I& N
13
U/ `( O- Q ] g/ O8 T14
6 {& ?; A; \# p7 }15) K2 U! s$ K5 o5 u1 O
167 L, A1 D. z" M& E8 b
基于鸢尾花数据的实现及解释
8 n. k7 u9 T0 F# x
6 V& R0 \0 w- m! C5 @$ s# u代码如下:0 D8 c. ]$ ^# y3 |' l, r" B
% m1 b6 Y+ Q; m: }( b/ t
1 # 导入模块9 R3 u( ^, p3 \
2 import numpy as np
, d5 c5 Y( m/ e9 \ 3 import matplotlib.pyplot as plt
. W, {( I; _7 M+ b! A: \' d( } 4 from sklearn import svm, datasets
y- W; U$ l, R! y( j) H( y* C0 q 5 from sklearn.model\_selection import train\_test\_split
a ?! Q' ?7 ?2 ~/ x( x& r 6
& L, c6 V3 v( S9 K 7 # 鸢尾花数据
2 }1 B. q1 |0 s, k* j' f9 l 8 iris = datasets.load\_iris() #原始数据/ j. w9 [5 R' ?- q, @/ R
9 feature = iris.data[:, :2] # 为便于绘图仅选择2个特征(根据前两列数据和结果进行分类); G h+ q: F' `4 ^) ]7 \3 ]" ?
10 target = iris.target
4 X1 U# Y& |" a: n; H11
3 m& g; ~4 u1 b0 Y+ |2 Q12 #数组分组训练数据和测试数据
1 C* K# E2 F8 F13 x\_train,x\_test,y\_train,y\_test=train\_test\_split(feature,target,test\_size=0.2,random\_state=2020)
9 z/ H o% \' h+ P) X14
/ H5 R, }) y/ H& B15 # 测试样本(绘制分类区域),我们数据选了两列即就是两个特征,所以这里有xlist1,xlist20 R2 N7 {4 i r' F3 y& }
16 xlist1 = np.linspace(x\_train[:, 0].min(), x\_t
4 _; e% ^/ E6 a1 [————————————————. I7 B9 ^% @, B
版权声明:本文为CSDN博主「qq_43479892」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。. d5 a' A: K8 t. V7 { q8 c& {
原文链接:https://blog.csdn.net/qq_43479892/article/details/1268117912 u; G; {( h- A
* ?% X0 p& D) U/ w/ S9 R4 j( G6 z
) b) c9 P2 s: D, i6 s( {
|
zan
|