python - 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% 的分数吗?
最好的问候,尼克
解决方案
1) 您可以使用种子来保持结果的可重复性。尝试使用train_test_split
SKLearn 中的函数来拆分数据并为random_seed
参数指定一个值。见这里。在不同的运行中具有不同分布的训练数据和测试数据并接收不同的结果并不意味着信号中存在噪声。
2)你能在这里详细说明吗?对象的best_estimator_
和best_params_
属性GridSearchCV
一旦适合,就应该包含您需要的数据。
推荐阅读
- java - 为什么在右子数组的情况下必须做 (k-pivot+left-1) 同时在数组中找到第 k 个最小元素?
- pdf - 以编程方式重命名 ocrmyfile 中的文件
- linux - 从 Instant Client 在 RHEL7 上安装 Oracle SQL*Loader SQLLDR
- c++ - 如何使用 Mingw-w64 和 Intel MKL 编译 MATLAB MEX 文件
- python - 安装 pipenv 后没有这样的文件或目录
- python - valueerror: 时间数据与 pandas 的数据框不匹配
- java - 创建一个测试器类
- python - 使用具有不同分位数的 medianBlur
- python - 如何让输入部分在此代码中被询问一次?
- python - 使用 python 将音频文件作为麦克风输入传递