使用 Regressor Chain 进行多输出回归的基估算器属性

我在使用 Scikit Learn 的 RegressorChain 解决多输出回归问题时,模型拟合后需要获取已拟合模型的基估算器以访问其属性。我尝试访问 RegressorChain 中基估算器的属性,但未能成功。

以下是我使用的代码:

linreg = LinearRegression() wrapper=RegressorChain(linreg)fit_model=wrapper.fit(X_train, y_train)base_estimator_para=RegressorChain.get_params(fit_model, deep=True)base_estimator_linreg=base_estimator_para['base_estimator']print(base_estimator_linreg.coef_)

最后一行返回错误,称 ‘LinearRegression’ 对象没有 ‘coef_’ 属性,但 LinearRegression 确实有 ‘coef_’ 属性。

函数 “base_estimator_para” 返回一个包含对象的字典,其中包括基估算器本身。

base_estimator_para['base_estimator'] 返回基估算器对象,因此使用
base_estimator_linreg.coef_ 应该返回已拟合的线性回归模型的系数。


回答:

base_estimator 是传递给 RegressorChain 的参数,当你拟合 RegressorChain 时,它保持未拟合状态。该估算器会被反复克隆,每个克隆都会被拟合(依次使用之前已拟合的克隆的预测作为额外输入)。你需要从 estimators_ 中选出一个条目,这些是 base_estimator 的已拟合克隆。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注