【问题标题】:Support Vector Regression multiple outputs支持向量回归多输出
【发布时间】:2019-05-11 05:18:26
【问题描述】:

我目前正在针对具有两个输出的回归问题测试支持向量回归 (SVR)。这意味着Y_train_data 每个样本都有两个值。由于 SVR 只能产生单个输出,因此我使用来自 scikit 的 MultiOutputRegressor。

from sklearn.svm import SVR
from sklearn.multioutput import MultiOutputRegressor

    svr_reg = MultiOutputRegressor(SVR(kernel=_kernel, C=_C, gamma=_gamma, degree=_degree, coef0=_coef0))
    svr_reg.fit(X_train_data, Y_train_data)

现在我注意到,即使在超参数优化之后,SVR 提供的结果也比单一决策树差得多。

在使用具有多个输出的 SVR 时,这是一个已知问题吗?

创建两个具有不同超参数的独立 SVR 模型会更好吗?

【问题讨论】:

  • MultiOutputRegressor 不会考虑目标输出之间的相关性。它将为每个输出训练一个单独的 SVR,而决策树本身可以处理多个类,因此可能表现更好
  • 在应用 SVR 之前是否对特征进行了归一化?

标签: python scikit-learn svm


【解决方案1】:

正如 Vivek Kumar 在 cmets 中所指出的,您的 SVR 可能表现更差,因为它不会同时计算输出以考虑输出之间的相关性。因此,我建议使用能够处理多个目标的自适应 SVR 回归,例如多输出支持向量回归。你可以找到一个实现here。然后,您可以将结果与 MultiOutputRegressor 的输出进行比较,以检查是否有改进。

【讨论】:

    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2013-08-21
    • 2019-02-01
    • 2014-07-03
    • 2012-06-20
    • 2019-11-25
    相关资源
    最近更新 更多