估计器 RegressorChain 的参数 learning_rate 无效(base_estimator=XGBRegressor

Posted

技术标签:

【中文标题】估计器 RegressorChain 的参数 learning_rate 无效(base_estimator=XGBRegressor【英文标题】:Invalid parameter learning_rate for estimator RegressorChain(base_estimator=XGBRegressor 【发布时间】:2021-10-22 00:49:20 【问题描述】:

我正在尝试在 RegressorChain XGBoost 模型上应用 RandomizedSearchCV,但出现错误:Invalid parameter learning_rate for estimator RegressorChain(base_estimator=XGBRegressor. 如果我评论网格字典中的所有值,它会起作用,否则它不接受任何参数。

相同的模型(XGBRegressor 和 RegressorChain)单独运行良好。 RandomizedSearchCV 不接受网格字典中的参数

# Setup the parameters grid
grid = 
        'n_estimators': [100, 500, 1000],
        'max_depth': [5, 10, 20, 30],
        'max_features': ["auto", "sqrt"],
        'eta': [0.09, 0.1, 0.2],
        'booster': ["dart", "gblinear"]
        



clf = XGBRegressor(objective='reg:squarederror')
chain = RegressorChain(base_estimator=clf, order=[0, 1, 2, 3, 4,5])

# Setup RandomizedSearchCV
rs_clf = RandomizedSearchCV(estimator=chain,
                            param_distributions=grid, 
                            n_iter=10, # number of models to try
                            cv=5,
                            verbose=1,
                            random_state=42,
                            refit=True) 

# Fit the RandomizedSearchCV version of clf
rs_clf.fit(X_train, y_train) # 'rs' is short

【问题讨论】:

【参考方案1】:

由于XGBRegressorRegressorChainbase_estimatorXGBRegressor的参数变成嵌套的,必须用base_estimator__xxx寻址:

grid = 
    'base_estimator__n_estimators': [100, 500, 1000],
    'base_estimator__max_depth': [5, 10, 20, 30],
    'base_estimator__max_features': ["auto", "sqrt"],
    'base_estimator__eta': [0.09, 0.1, 0.2],
    'base_estimator__booster': ["dart", "gblinear"]

【讨论】:

以上是关于估计器 RegressorChain 的参数 learning_rate 无效(base_estimator=XGBRegressor的主要内容,如果未能解决你的问题,请参考以下文章

GridSearchCV 和 ValueError:估计器管道的参数 alpha 无效

网格搜索预处理多个超参数和多个估计器

ValueError:估计器 LogisticRegression 的参数求解器无效

ValueError:使用 GridSearch 参数时估计器 CountVectorizer 的参数模型无效

GridSearchCV 估计器 LogisticRegression 的参数 gamma 无效

机器学习 —— 基础整理:非参数方法——Parzen窗估计k近邻估计;k近邻分类器