[机器学习]机器学习笔记整理08- SVM算法原理及实现

<html>

1 背景

最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出
目前的版本(soft margin)是由Corinna Cortes 和 Vapnik在1993年提出,并在1995年发表
深度学习(2012)出现之前,SVM被认为机器学习中近十几年来最成功,表现最好的算法

2 机器学习的一般框架

训练集 => 提取特征向量 => 结合一定的算法(分类器:比如决策树,KNN)=>得到结果

3 介绍

3.1 例子

两类?哪条线最好?

3.2 SVM寻找区分两类的超平面(hyper plane), 使边际(margin)最大

总共可以有多少个可能的超平面?无数条
如何选取使边际(margin)最大的超平面 (Max Margin Hyperplane)?
超平面到一侧最近点的距离等于到另一侧最近点的距离,两侧的两个超平面平行

4 线性可区分(linear separable)和线性不可区分(linear inseparable)


以上3张图均为线性不可区分,我们后续的课程会讨论,现在只关注线性可区分。

5 定义与公式建立

6 求解

7 例子


代码简单实现

from sklearn import svm


x = [[2, 0], [1, 1], [3, 3],[2,6]]
y = [0, 0, 1,2]
clf = svm.SVC()
clf.fit(x, y)

print clf

# get support vectors
print clf.support_vectors_
# get indices of support vectors
print clf.support_
# get number of support vectors for each class
print clf.n_support_

##输出结果

SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
  decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
  max_iter=-1, probability=False, random_state=None, shrinking=True,
  tol=0.001, verbose=False)
[[ 2. 0.] [ 1. 1.] [ 3. 3.] [ 2. 6.]]
[0 1 2 3]
[2 1 1]

你可能感兴趣的:(算法,框架,机器学习,SVM,深度学习)