欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > python实现SVM支持向量机回归预测算法

python实现SVM支持向量机回归预测算法

2024/10/24 23:25:01 来源:https://blog.csdn.net/weixin_45570158/article/details/142066219  浏览:    关键词:python实现SVM支持向量机回归预测算法

在Python中,我们可以使用scikit-learn库来实现支持向量机(SVM)的回归预测算法。scikit-learn提供了SVR(Support Vector Regression)类来实现这一功能。以下是一个简单的示例,展示了如何使用SVR进行回归预测。

pip install scikit-learn
# 导入必要的库
import numpy as np
from sklearn.svm import SVR
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt
# 生成一些模拟数据
np.random.seed(0)
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))
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建SVR模型
# kernel可以是'linear', 'poly', 'rbf', 'sigmoid', 'precomputed' 或自定义的核函数
svr_rbf = SVR(kernel='rbf', C=100, gamma='auto')
# 训练模型
svr_rbf.fit(X_train, y_train)
# 预测测试集
y_pred = svr_rbf.predict(X_test)
# 计算并打印均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"Mean Squared Error: {mse}")
# 可视化结果
plt.scatter(X_train, y_train, color='darkorange', label='data')
plt.plot(X_test, y_pred, color='navy', lw=2, label='SVR (RBF kernel) prediction')
plt.xlabel('data')
plt.ylabel('target')
plt.title('Support Vector Regression')
plt.legend()
plt.show()

在这个例子中,我们首先生成了一些模拟数据,这些数据是sin函数的值加上一些随机噪声。然后,我们将数据分为训练集和测试集,并创建了一个使用RBF(径向基函数)核的SVR模型。接着,我们训练模型并在测试集上进行预测,最后计算了预测的均方误差(MSE)并绘制了结果图。

可以通过调整SVR的参数(如Cgamma)来优化模型的性能。C是正则化参数,gamma定义了单个训练样本的影响达到最大的距离(对于RBF、poly和sigmoid核)。对于不同的数据集和问题,最佳参数可能会有所不同。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com