生成代码jupyter notebook (6) 使用 sklearn 包建立两种支持向量机回归模型分别采用和,分别训练两种模型后用测 试集数据进行预测; (7) 分别计算两种模型预测结果的均方误差和平均绝对误差; (8) 绘制两种模型的预测结果与实际值对比曲线图,其中预测结果用蓝色直线表示,实际 结果用红色直线表示
时间: 2024-02-27 14:59:17 浏览: 24
以下是使用 sklearn 包建立两种支持向量机回归模型、预测并计算误差、绘制预测结果与实际值对比曲线图的代码示例:
```python
# 导入必要的库
import matplotlib.pyplot as plt
import numpy as np
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error, mean_absolute_error
# 构造训练数据和测试数据
X_train = np.sort(5 * np.random.rand(100, 1), axis=0)
y_train = np.sin(X_train).ravel()
X_test = np.sort(5 * np.random.rand(20, 1), axis=0)
y_test = np.sin(X_test).ravel()
# 建立 epsilon-SVR 模型
svr_eps = SVR(kernel='rbf', C=100, epsilon=0.1)
svr_eps.fit(X_train, y_train)
# 建立 nu-SVR 模型
svr_nu = SVR(kernel='rbf', C=100, nu=0.5)
svr_nu.fit(X_train, y_train)
# 进行预测并计算误差
y_eps_pred = svr_eps.predict(X_test)
y_nu_pred = svr_nu.predict(X_test)
mse_eps = mean_squared_error(y_test, y_eps_pred)
mse_nu = mean_squared_error(y_test, y_nu_pred)
mae_eps = mean_absolute_error(y_test, y_eps_pred)
mae_nu = mean_absolute_error(y_test, y_nu_pred)
# 绘制预测结果与实际值对比曲线图
plt.scatter(X_test, y_test, c='r', label='true')
plt.plot(X_test, y_eps_pred, c='b', label='epsilon-SVR')
plt.plot(X_test, y_nu_pred, c='g', label='nu-SVR')
plt.legend()
plt.show()
# 输出误差结果
print('epsilon-SVR 模型的均方误差为:', mse_eps)
print('epsilon-SVR 模型的平均绝对误差为:', mae_eps)
print('nu-SVR 模型的均方误差为:', mse_nu)
print('nu-SVR 模型的平均绝对误差为:', mae_nu)
```
这段代码中,我们首先使用 `numpy` 生成了一些随机的训练数据和测试数据,然后分别建立了 epsilon-SVR 和 nu-SVR 两种支持向量机回归模型,并对测试数据进行了预测。接着,使用 `sklearn.metrics` 中的 `mean_squared_error` 和 `mean_absolute_error` 函数计算了模型预测结果的均方误差和平均绝对误差。最后,使用 `matplotlib` 绘制了预测结果与实际值对比曲线图,并输出了误差结果。