使用超网格搜索和 10 倍 CV 调整参数后,随机森林模型的 AUC 较低

AUC of Random forest model is lower after tuning parameters using hypergrid search and CV with 10 folds

我在没有调整超参数的情况下收到的 AUC 值更高。 我使用了相同的训练数据,这里是否有我遗漏的东西或一些有效的解释。

数据是使用预训练的 GLoVE 向量为 50 维推文计算的推文词嵌入的平均值

没有调整:

RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
            max_depth=None, max_features='auto', max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=None,
            oob_score=False, random_state=None, verbose=0,
            warm_start=False)

AUC- 0.978

配音:

GridSearchCV(cv=10, error_score='raise-deprecating',
       estimator=RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
            max_depth=None, max_features='auto', max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, n_estimators='warn', n_jobs=None,
            oob_score=False, random_state=42, verbose=0, warm_start=False),
       fit_params=None, iid='warn', n_jobs=3,
       param_grid={'max_features': ['auto', 'sqrt', 'log2', None], 'bootstrap': [True, False], 'max_depth': [2, 3, 4], 'criterion': ['gini', 'entropy']},
       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',
       scoring=None, verbose=0)
print(cv_rf.best_estimator_)
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
            max_depth=4, max_features='auto', max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=None,
            oob_score=False, random_state=42, verbose=0, warm_start=False)

AUC-0.883

我认为这可能有 2 个原因。

  1. Max-depth 在前一个模型中设置为 None,这意味着扩展节点直到所有叶子都是纯的或直到所有叶子包含少于 min_samples_split 个样本,而 max_depth=4在后面,这使得模型不那么灵活。

建议:您可以在网格搜索中增加 max-depth 范围

  1. 估计器的数量 (n_estimators) 从 100 减少到 10。这使得 Ensemble 模型更弱。

建议:增加估算器的数量或同时调整估算器的数量。