【问题标题】:Tuning parameters of the classifier used by BaggingClassifierBaggingClassifier 使用的分类器的调优参数
【发布时间】:2018-05-14 04:42:54
【问题描述】:

假设我想训练使用DecisionTreeClassifierBaggingClassifier

dt = DecisionTreeClassifier(max_depth = 1)
bc = BaggingClassifier(dt, n_estimators = 500, max_samples = 0.5, max_features = 0.5)
bc = bc.fit(X_train, y_train)

我想使用GridSearchCV 来找到BaggingClassifierDecisionTreeClassifier 的最佳参数(例如max_depth 来自DecisionTreeClassifiermax_samples 来自BaggingClassifier),这个的语法是什么?

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    如果您使用的是管道,那么您可以用类似这样的方式扩展接受的答案(注意双下划线):

    model = {'model': BaggingClassifier,
             'kwargs': {'base_estimator': DecisionTreeClassifier()}
             'parameters': {
                 'name__base_estimator__max_leaf_nodes': [10,20,30]
             }}
    pipeline = Pipeline([('name', model['model'](**model['kwargs'])])
    cv_model = GridSearchCV(pipeline, param_grid=model['parameters'], cv=cv, scoring=scorer)
    

    【讨论】:

      【解决方案2】:

      我自己找到了解决方案:

      param_grid = {
          'base_estimator__max_depth' : [1, 2, 3, 4, 5],
          'max_samples' : [0.05, 0.1, 0.2, 0.5]
      }
      
      clf = GridSearchCV(BaggingClassifier(DecisionTreeClassifier(),
                                           n_estimators = 100, max_features = 0.5),
                         param_grid, scoring = choosen_scoring)
      clf.fit(X_train, y_train)
      

      即说max_depth“属于”__base_estimator,在这种情况下就是我的DecisionTreeClassifier。这有效并返回正确的结果。

      【讨论】:

      猜你喜欢
      • 2018-02-17
      • 2011-07-03
      • 2017-02-15
      • 1970-01-01
      • 2019-06-29
      • 2021-04-07
      • 2019-02-01
      • 2015-02-21
      • 1970-01-01
      相关资源
      最近更新 更多