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


1 背景

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

2 机器学习的一般框架

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

3 介绍

3.1 例子
[机器学习]机器学习笔记整理08- SVM算法原理及实现_第1张图片
两类?哪条线最好?

3.2 SVM寻找区分两类的超平面(hyper plane), 使边际(margin)最大
[机器学习]机器学习笔记整理08- SVM算法原理及实现_第2张图片

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

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

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第3张图片

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第4张图片
以上3张图均为线性不可区分,我们后续的课程会讨论,现在只关注线性可区分。

5 定义与公式建立

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第5张图片

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第6张图片

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第7张图片

这里写图片描述

6 求解

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第8张图片

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第9张图片

这里写图片描述

7 例子

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第10张图片

[机器学习]机器学习笔记整理08- SVM算法原理及实现_第11张图片


代码简单实现

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]

你可能感兴趣的:(1.机器学习与算法笔记)