利用支持向量机进行回归预测给出Python代码,并用gridsearchcv寻找最优超参数
时间: 2024-11-04 07:11:12 浏览: 36
支持向量机(SVM)不仅可以用于分类任务,也可以应用于回归分析。在Python中,我们可以使用scikit-learn库中的`SVR`(Support Vector Regression)来进行回归预测。下面是一个简单的例子,展示了如何使用SVM进行线性回归预测,并使用`GridSearchCV`找到最佳的核函数和正则化参数(C和gamma):
```python
from sklearn.svm import SVR
from sklearn.model_selection import GridSearchCV
from sklearn.preprocessing import StandardScaler
import numpy as np
# 假设我们有数据集X (特征) 和 y (目标值)
X = ... # 输入特征数据
y = ... # 目标数值
# 数据预处理,对数值型特征做标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 定义搜索空间,通常选择的核函数有'linear', 'poly', 'rbf', 'sigmoid'
param_grid = {
'kernel': ['linear', 'poly', 'rbf', 'sigmoid'],
'C': [0.1, 1, 10, 100], # 正则化强度
'gamma': [1e-2, 1e-3, 1e-4] # 决策边界的宽度
}
# 创建模型并进行网格搜索
svr = SVR()
grid_search = GridSearchCV(svr, param_grid, cv=5) # 交叉验证次数
grid_search.fit(X_scaled, y)
# 获取最优参数
best_params = grid_search.best_params_
print(f"Best parameters found: {best_params}")
# 使用最佳参数训练模型
best_svr = SVR(**best_params)
best_svr.fit(X_scaled, y)
# 进行预测
predictions = best_svr.predict(X_scaled)
阅读全文