支持向量机分类算法 : F. z, z; |. C$ C' l& l' u {$ g" n4 b8 I
🚀 优质资源分享 🚀 g' [1 U; D/ @: _
学习路线指引(点击解锁) 知识定位 人群定位 % M& E5 Y; \5 H$ {- @9 ]🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。% d2 [& D; Y7 Q: o7 Z
💛ython量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统; D' [) a8 d0 R, B9 {! o
支持向量机SVM& Z" j) T( z. ~
/ A8 N- T3 J3 V5 N2 D支持向量机原理% Q4 N( P4 V0 b+ Y
. C) @$ F# a# H q2 B% ]+ G1.寻求最有分类边界 # Y9 R4 c' E( ~9 N$ s# E N " W+ {7 x) D# U! _+ h正确:对大部分样本可以正确的划分类别- b: g- G9 s. ^) d7 {0 K; i
1 R' r# _) @0 ~' c( p
泛化:最大化支持向量间距5 N6 O1 t6 ]2 {# c- H
! B$ m& H7 P9 S; P4 w2 @公平:与支持向量等距, [: B2 H) ~+ F1 K2 v/ N6 q6 b
5 w q$ z# i: n8 ~" F7 k
简单:线性、直线或平面,分割超平面 & O* n6 v$ Q- M0 i( f* | 0 ^% T) d/ q: a* _2 W2.基于核函数的生维变换% ]% b5 O' N: H
6 ~2 G# G# @+ I( \; w' H1 {6 ^! y
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。 1 K) S+ ?( \5 v$ B8 B 1 U! @% N4 s& m一、引论 7 e4 T0 H" `) e0 T) Y( h9 ]. i" M! C2 n: d+ v$ E- T; \
使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图: 3 }( I% B6 ~+ G" W3 B/ [! W. ?+ Q! Y- P
- ]9 ?$ P. K9 \
! c/ ~: r& X& S4 H0 }: M
现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。' q+ T+ e' s$ R) a
( A" K) {, n- i
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念: % B4 J6 R. C, o 0 T) S- P9 a3 N5 D' N7 y4 T7 M二、理论铺垫 4 C6 g( N+ z. v W+ p9 Z8 y) l * Q F8 `. E1 I. A5 k# V线性可分性(linear separability) / {! R# J) x; N3 \, B ?3 C1 @# k5 L
3 W3 C: u5 X4 f5 o1 x7 e" w' I
) m r5 s. l% B) D1 ^2 x7 s4 \9 n而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。 / Z h7 k# v1 y, \$ X3 U. c% C7 H$ a3 i% ^$ b
# U: A. ^! @; m9 N7 m- |
2 \5 ?5 _1 J9 p; V. l决策边界& D% U4 Q6 k5 z7 l+ I4 R' ?
. {* h8 g1 i* @. G/ t4 ]- w" b
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。 4 T5 K1 ]! i$ O& `* D$ a n 0 h9 ~0 e2 D3 O+ v" Q3 g6 Y% I0 i2 }0 ?+ J) p6 s! i i