【问题标题】:GridSearchCV parameters don't improve classificationGridSearchCV 参数不能改善分类
【发布时间】:2017-04-20 05:18:08
【问题描述】:

我有一个目标数据集,我将其分为 5 个不重叠的折叠。 在每次迭代(总迭代次数 == 5)中,我使用 1 次(我们称之为 fold_for_tuning)进行参数调整,并使用 4 次进行测试。

这样做的原因是我想做域适应,在调优之前,我将源数据拟合到分类器,并且我正在使用目标数据的一小部分进行调优)。

我调用 GridSearchCV 并匹配 fold_for_tuning,还传递了一堆我想要调整的参数:

param_test1 = {
            'max_depth': [5, 7],
            'min_child_weight': [0.5, 1, 2],
            'gamma': [0.1, 1],
            'subsample': [0.6, 0.7],
            'colsample_bytree': [0.6, 0.7],
            'reg_alpha': [0.01, 0.1]
        }

gsearch = GridSearchCV(estimator=classifierXGB,
                                param_grid=param_test1,
                                scoring='accuracy',
                                n_jobs=4, iid=False, cv=2)

gsearch.fit(fold_for_tuning_data, fold_for_tuning_labels)

每次迭代后,我得到gsearch.best_params_,并将它们设置为classifierXGB(因为据我了解,它们应该提供更好的预测)。 然后,当我打电话 test_y_predicted = classifierXGB.predict(4_unseen_folds) 我没有得到改善:

prediction before tuning:
acc: 0.690658872245
auc: 0.700764301397
f1: 0.679211922203
prediction after tuning:
acc: 0.691382460414
auc: 0.701595887248
f1: 0.680132554837

但如果我打电话 gsearch.predict(4_unseen_folds) 我的表现要好得多:

prediction grid search :
acc: 0.933313032887
auc: 0.930058979926
f1: 0.920623414281

所以我很困惑:网格搜索内部发生了什么?不应该只优化我传入param_grid的参数吗?如果是这样,那么为什么在classifierXGB 中设置相同的参数并不能带来更好的性能?

【问题讨论】:

  • 你叫什么iteration?不清楚
  • 你能显示MWE,包括你在gsearch.fit之后做了什么吗?

标签: machine-learning scikit-learn cross-validation xgboost grid-search


【解决方案1】:

您的gsearch.predict(...) 调用最佳分类器的预测。

我不确定ClassifierXGB 的后台发生了什么,但如果你创建一个 classifierXGB

classifierXGB = ClassifierXGB(**gsearch.best_params_)` 

然后然后调用classifierXGB.predict(4_unseen_folds),您应该会看到类似于gsearch.predict(4_unseen_folds)的内容。

这可能是在事后对classifierXGB 应用更改并没有达到您的预期。创建ClassifierXGB 的新实例应该会有所帮助。

【讨论】:

    【解决方案2】:

    将参数设置为classifierXGB 后,您需要将其拟合 整个火车数据,然后,用它来预测事物 p>

    网格搜索找到了“正确”的参数,您将它们提供给分类器以使其有效学习,但您没有给他模型的实际树/权重。它仍然是一个空壳。

    【讨论】:

      猜你喜欢
      • 2020-12-11
      • 2011-12-11
      • 1970-01-01
      • 2023-03-03
      • 2019-10-18
      • 1970-01-01
      • 2021-08-12
      • 2017-09-24
      • 2021-01-05
      相关资源
      最近更新 更多