支持向量机

支持向量机(SVMs)是一组用于回归、分类和异常值检测的监督学习方法。

支持向量回归(SVR)

支持向量分类的方法可以扩展到解决回归问题。这种方法称为支持向量回归。
支持向量回归的三种不同的实现方式: SVR、NuSVR、LinearSVR

举例
支持向量机_第1张图片
SVR
import numpy as np
from sklearn.svm import SVR
import matplotlib.pyplot as plt

# Generate sample data 生成数据
X = np.sort(5 * np.random.rand(40, 1), axis=0) #一列40行随机数,降序排列
y = np.sin(X).ravel() #sin(x)

# Add noise to targets 添加噪声目标
y[::5] += 3 * (0.5 - np.random.rand(8)) #每5个取一个y值,共8个y值被噪声

# Fit regression model 回归建模
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)

y_lin.fit(X, y).coef_

#svr_rbf.score(X, y) 模型得分
#svr_lin.fit(X, y).coef_ 线性模型系数

# 画图
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()

你可能感兴趣的:(支持向量机)