无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(svr) 详解 Scikit-learn 的 svm.SVR函数:支持向量机回归器 SVM 回归 全网首发(图文详解1)

前沿技术 Micheal 4个月前 (05-31) 49次浏览 已收录 扫描二维码

(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)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝