我遇到了这个奇怪的问题,似乎找不到解决方案。我正在尝试为每个不同的功能集调整不同的随机森林模型。基本上从给定的数据集,我创建了 3 个不同的特征集。在第一种情况下,您拥有所有功能,在第二种情况下,您的功能数量略少,最后对于第 3 个功能集,您只有 5 个功能。我正在尝试使用 RandomizedSearchCV 调整模型。
param_grid = {'n_estimators' : range(1,100),
'max_depth' : np.linspace(1, 50, 5, endpoint=True),
'min_samples_split' : np.linspace(0.1, 1.0, 10, endpoint=True),
'min_samples_leaf' : np.linspace(0.1, 0.5, 5, endpoint=True),
'max_features' : range(1,X.shape[1]),
"criterion": ["gini","entropy"],}
grid = RandomizedSearchCV(clf_rf, param_distributions = param_grid, cv = 5, scoring = 'roc_auc', verbose=True, n_jobs=-1, random_state=1, return_train_score=False)
grid.fit(X,y)
接下来,我使用 RandomizedSearchCV 找到的最佳模型 grid.best_estimator_ 来寻找交叉验证分数。
estimator_cv = grid.best_estimator_
cv_results = cross_validate(estimator_cv, X, y, cv=10)
cv_accuracy = cv_results['test_score'].mean()
cv_accuracy
我面临的问题是,在对 3 个不同的功能集执行上述步骤后,我得到了相同的交叉验证准确度得分 0.8873372903702229。然而, roc_auc 正在改变。