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))
#SVM回归
svr_lin = SVR(kernel='linear', C=1e3)
svr_poly = SVR(kernel='poly', C=1e3, degree=3)
svr_gau = SVR(kernel='rbf', C=1e3, gamma=1)
svr_lin.fit(X, y)
y_lin = svr_lin.predict(X)
svr_poly.fit(X, y)
y_poly =svr_poly.predict(X)
svr_gau.fit(X, y)
y_gau = svr_gau.predict(X)
#显示结果
plt.scatter(X, y, color='darkorange', label='data')
plt.plot(X, y_lin, color='r', lw=2, label='Linear model')
plt.plot(X, y_poly, color='b', lw=2, label='Polynomial model',linestyle='--')
plt.plot(X, y_gau, color='g', lw=2, label='gaussian model',linestyle='-.')
plt.xlabel('data');plt.ylabel('target')
plt.legend();plt.grid(True);plt.show()
支持向量机[回归]——机器学习
最新推荐文章于 2024-04-27 11:36:49 发布