【问题标题】:Problems with pipeline GradientBoostingClassifier管道 GradientBoostingClassifier 的问题
【发布时间】:2022-12-19 01:43:00
【问题描述】:

我正在尝试解决机器学习分类问题。

目标是一个多类,有 3 个不同的类。

这条管道有一些问题,我看不出是什么问题。

from sklearn.ensemble import GradientBoostingClassifier

scaler = StandardScaler()

pipe_gb = Pipeline(steps=[("scaler",scaler), ("gb", GradientBoostingClassifier(random_state=42))])

params_gb = [
    {'clasificador__learning_rate': np.arange(0.01, 1, 0.02), 'clasificador__n_estimators': np.arange(50,100, 2),
     "clasificador__max_depth": [1, 2, 3, 5], 'clasificador__loss': ['log_loss', 'exponential'], 
     'clasificador__max_features': ['auto', 'sqrt', 'log2']}
]

gb = RandomizedSearchCV(estimator=pipe_gb, 
                  param_distributions = params_gb, 
                  scoring='accuracy', 
                  refit=True,
                  cv=5,
                  n_jobs=-1)

gb = gb.fit(X_train, y_train)

错误:

ValueError: Invalid parameter clasificador for estimator Pipeline(steps=[('scaler', StandardScaler()),
                ('gb', GradientBoostingClassifier(random_state=42))]). Check the list of available parameters with `estimator.get_params().keys()`

【问题讨论】:

    标签: python machine-learning scikit-learn scikit-learn-pipeline


    【解决方案1】:

    你的错误在params_gb;请像这样编辑代码:

        params_gb = 
    {'gb__learning_rate': np.arange(0.01, 1, 0.02), 'gb__n_estimators': np.arange(50,100, 2),
     "gb__max_depth": [1, 2, 3, 5], 'gb__loss': ['log_loss', 'exponential'], 
     'gb__max_features': ['auto', 'sqrt', 'log2']}
       
    

    根据sklearn documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 2020-09-20
      • 2021-10-10
      • 2019-01-30
      • 1970-01-01
      相关资源
      最近更新 更多