You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MultiOutputRegressor实现多输出SVR的调参与建模报错解决

多输出SVR调参与建模错误修正

调参阶段:参数无效错误解决

报错ValueError: Invalid parameter kernel for estimator MultiOutputRegressor,原因是MultiOutputRegressor作为模型封装器,内部子模型(SVR)的参数需要通过estimator__参数名的格式指定,直接使用kernel等参数会被误认为是MultiOutputRegressor自身的参数,而它并没有这些参数。

修正后的调参代码:

from sklearn.svm import SVR
from sklearn.multioutput import MultiOutputRegressor
from sklearn.model_selection import RandomizedSearchCV, KFold

# 初始化基础模型与多输出封装器
svr = SVR()
svr_regr = MultiOutputRegressor(svr)

# 交叉验证拆分器
kfold_splitter = KFold(n_splits=6, random_state=0, shuffle=True)

# 随机搜索调参,参数名添加estimator__前缀
svr_random = RandomizedSearchCV(
    estimator=svr_regr,
    param_distributions={
        'estimator__kernel': ('linear', 'poly', 'rbf', 'sigmoid'),
        'estimator__C': [1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10],
        'estimator__degree': [3, 8],
        'estimator__coef0': [0.01, 0.1, 0.5],
        'estimator__gamma': ('auto', 'scale'),
        'estimator__tol': [1e-3, 1e-4, 1e-5, 1e-6]
    },
    n_iter=100,
    cv=kfold_splitter,
    n_jobs=-1,
    random_state=42,
    scoring='r2'
)
svr_random.fit(X_train, y_train)

print("最优参数:", svr_random.best_params_)

建模阶段:对象不可调用错误解决

报错TypeError: 'MultiOutputRegressor' object is not callable,原因是svr_regr是已经实例化的对象,不能像构造函数一样传入参数调用。提供两种解决方式:

方式1:直接复用调参后的最优模型

调参完成后,RandomizedSearchCV的best_estimator_属性已经包含训练好的最优模型,无需重新初始化:

# 获取训练好的最优模型
SVR_model = svr_random.best_estimator_
# 直接预测(若需重新训练可调用SVR_model.fit(X_train, y_train))
SVR_model_y_predict = SVR_model.predict(X_test)
print(SVR_model_y_predict)

方式2:重新初始化多输出模型并传入参数

手动创建新的MultiOutputRegressor实例,将配置好参数的SVR作为子模型传入:

# 初始化带指定参数的SVR,再封装为多输出模型
SVR_model = MultiOutputRegressor(
    SVR(
        kernel='rbf',
        C=10,
        coef0=0.01,
        degree=3,
        gamma='auto',
        tol=1e-6,
        random_state=42
    )
)
SVR_model.fit(X_train, y_train)
SVR_model_y_predict = SVR_model.predict(X_test)
print(SVR_model_y_predict)

内容的提问来源于stack exchange,提问作者Z47

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 01:06:20