(svr) 详解 Scikit-learn 的 svm.SVR函数:支持向量机回归器
Scikit-learn 的 svm.SVR 是一个开源的Python库中的一个函数,用于执行支持向量机回归。 基于 SVM 的回归假设有一个超平面可以近似映射输入值 x 到目标值 y 。如果数据不能完全分开,这个函数还提供了一个 Epsilon 参数来容忍一些误差。
下面是一个使用 Scikit-learn 中的 svm.SVR 函数来实现 SVM 回归的基本步骤和示例代码:
- 引入必要的库:
from sklearn import svm from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error import numpy as np import matplotlib.pyplot as plt
- 创建数据集,您可以使用真实的数据集,或者为了简化示例,创建一个简单的合成数据集。
np.random.seed(0) X = np.sort(5 * np.random.rand(200, 1), axis=0) #生成200个五以内的随机值,并进行排序 y = np.sin(X).ravel() #对X取sin值 y[::5] += 3 * (0.5 - np.random.rand(40)) #每5个值加上(0-3)之间的一个随机浮点数
- 使用 Scikit-learn 的 train_test_split 来划分训练集和测试集:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
- 创建一个 SVR 对象,并设定相关参数。 你可以修改这些参数以便找到对你应用最好的模型。
svr = svm.SVR(kernel='rbf', C=100, gamma=0.1, epsilon=.1)
这里的参数意义为:
- kernel: 核函数类型,有线性(linear)、多项式(poly)、径向基(RBF,默认)、sigmoid等。
- C: 错误项的惩罚参数。
- gamma: ‘rbf’,‘poly’ 和‘Sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features。
- epsilon: 指定了 epsilon-SVR 模型中对应损失函数的 epsilon 参数值。
- 使用训练集对 SVR 对象进行训练:
svr.fit(X_train, y_train)
- 使用测试集评估模型:
y_pred = svr.predict(X_test) mse = mean_squared_error(y_test, y_pred) print('MSE: ', mse)
- 对结果进行可视化:
plt.scatter(X, y, color='darkorange', label='data') plt.plot(X_test, y_pred, color='navy', label='SVR model') plt.legend() plt.show()
以上就是使用Scikit-learn 的 svm.SVR函数来进行支持向量机回归的示例流程和代码。希望对你的开发工作有所帮助。如果还有什么疑问,欢迎随时提问。
(invalidargument) Linux报 “invalid argument” 异常的原因以及解决办法 Linux系统中出现“invalid argument”异常常见原因 全网首发(图文详解1)
(多项式拟合) 详解Numpy polyfit()(多项式拟合)函数的作用与使用方法 如何使用 NumPy 的 polyfit 函数 全网首发(图文详解1)