[DL]机器学习算法之支持向量机(Support Vector Machine)
2017-10-22 11:24
429 查看
SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。
SVM的主要思想可以概括为两点:
它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。
它基于结构风险最小化理论之上在特征空间中构建最优超平面,使得学习器得到全局最优化,并且在整个样本空间的期望以某个概率满足一定上界。
选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:
线性核函数K(x,y)=x⋅y;
多项式核函数K(x,y)=[(x⋅y)+1]d;
径向基函数K(x,y)=exp(−|x−y|2/d2);
二层神经网络核函数K(x,y)=tanh(a(x⋅y)+b).
下面是一个应用SVM进行回归的例子:
效果如下图:
代码如下:
SVM的主要思想可以概括为两点:
它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。
它基于结构风险最小化理论之上在特征空间中构建最优超平面,使得学习器得到全局最优化,并且在整个样本空间的期望以某个概率满足一定上界。
选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:
线性核函数K(x,y)=x⋅y;
多项式核函数K(x,y)=[(x⋅y)+1]d;
径向基函数K(x,y)=exp(−|x−y|2/d2);
二层神经网络核函数K(x,y)=tanh(a(x⋅y)+b).
下面是一个应用SVM进行回归的例子:
效果如下图:
代码如下:
import numpy as np from sklearn.svm import SVR import matplotlib.pyplot as plt # 造数据 X = np.sort(5 * np.random.rand(40, 1), axis=0) y = np.sin(X).ravel() # 添加噪声 y[::5] += 3 * (0.5 - np.random.rand(8)) # 训练模型 svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1) svr_lin = SVR(kernel='linear', C=1e3) svr_poly = SVR(kernel='poly', C=1e3, degree=2) y_rbf = svr_rbf.fit(X, y).predict(X) y_lin = svr_lin.fit(X, y).predict(X) y_poly = svr_poly.fit(X, y).predict(X) # 查看回归效果 lw = 2 plt.scatter(X, y, color='darkorange', label='data') plt.plot(X, y_rbf, color='navy', lw=lw, label='RBF model') plt.plot(X, y_lin, color='c', lw=lw, label='Linear model') plt.plot(X, y_poly, color='cornflowerblue', lw=lw, label='Polynomial model') plt.xlabel('data') plt.ylabel('target') plt.title('Support Vector Regression') plt.legend() plt.show()
相关文章推荐
- SVM支持向量机(Support Vector Machine)
- 支持向量机(support vector machine)
- 支持向量机(Support Vector Machine)
- 支持向量机(Support Vector Machine)
- 支持向量机(Support Vector Machine)-----SVM之SMO算法(转)
- 支持向量机(support vector machine)
- [机器学习入门] 李宏毅机器学习笔记-23(Support Vector Machine;支持向量机)
- 支持向量机SVM(Support Vector Machine)是一个有监督的学习模型
- 支持向量机(SupportVector Machine)(一)
- 支持向量机 Support Vector Machine
- 机器学习之支持向量机SVM Support Vector Machine (四) SMO算法
- 机器学习之支持向量机SVM Support Vector Machine (六) 高斯核调参
- 可支持向量机SVM(support vector machine)基础
- 机器学习——支持向量机SVM(Support Vector Machine)(上)
- (十一)机器学习中的一个常用算法SVM算法,即支持向量机Support Vector Machine(SVM)
- 支持向量机(Support Vector Machine,SVM)详解
- [完]机器学习实战 第六章 支持向量机(Support Vector Machine)
- 支持向量机(Support Vector Machine)-----SVM之SMO算法(转)
- 机器学习(一)支持向量机(Support Vector Machine)
- 支持向量机SVM(Support Vector Machine)算法初解