首页 > 解决方案 > Gridsearch CV 在不同数据中训练时给出不同的最佳参数

问题描述

我正在寻找在 sklearn 中调整随机森林分类器和 MLP 分类器的最佳方法。问题是每次运行代码时,Grisearch CV 都会给我提供稍微不同的最佳参数。我认为发生这种情况是因为每次我的训练和测试数据都以不同的方式拆分。我有两个问题:

1)每次给我一些不同的最佳参数意味着我的数据有噪音或类似的东西?

2)有没有办法选择适合我所有训练集的最佳参数?至少是最常见的最佳参数。

奖励问题:我想对 3 个变量进行分类。我的一般分类 accuracy_score(y_test1,pred1) 给出了大约 57%,我认为这很低。我主要关心高概率分类。当我计算 predict_proba(X_test1)>0.8 并计算正确和错误的分类时,我得到了 0.90% 的分数,这是令人满意的。我应该对这个过程感到满意吗?当我在新的测试数据上运行时,我的模型的高概率预测会达到 0.90% 的分数吗?

最好的问候,尼克

标签: pythonscikit-learnrandom-forestgridsearchcvmlp

解决方案


1) 您可以使用种子来保持结果的可重复性。尝试使用train_test_splitSKLearn 中的函数来拆分数据并为random_seed参数指定一个值。见这里。在不同的运行中具有不同分布的训练数据和测试数据并接收不同的结果并不意味着信号中存在噪声。

2)你能在这里详细说明吗?对象的best_estimator_best_params_属性GridSearchCV一旦适合,就应该包含您需要的数据。


推荐阅读