Python Gridsearch CV在不同数据中训练时给出不同的最佳参数

Python Gridsearch CV在不同数据中训练时给出不同的最佳参数,python,scikit-learn,random-forest,gridsearchcv,mlp,Python,Scikit Learn,Random Forest,Gridsearchcv,Mlp,我正在寻找在sklearn中优化Randomforest分类器和MLP分类器的最佳方法。问题是每次运行代码时,Grisearch CV给我的最佳参数略有不同。我假设这是因为每次我的训练和测试数据被不同地分割。我有两个问题: 1) 每次给我一个不同的最佳参数意味着我的数据有噪声或者类似的东西 2) 有没有办法选择适合我所有训练集的最佳参数?至少是最常见的最佳参数 额外问题:我想对3个变量进行分类。我的一般分类准确率(y_test1,pred1)约为57%,我认为这是很低的。我主要关心高概率分类。当

我正在寻找在sklearn中优化Randomforest分类器和MLP分类器的最佳方法。问题是每次运行代码时,Grisearch CV给我的最佳参数略有不同。我假设这是因为每次我的训练和测试数据被不同地分割。我有两个问题:

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

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

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

致以最良好的祝愿, 尼克

1)您可以使用种子来保持结果的再现性。尝试使用SKLearn中的
train\u test\u split
功能分割数据,并为
random\u seed
参数指定一个值。看见训练数据和测试数据在不同的运行中具有不同的分布,并且接收到不同的结果并不意味着信号中存在噪声


2) 你能详细说明一下吗?
GridSearchCV
对象的
best\u estimator\u
best\u params\u
属性在拟合后应包含您需要的数据。

请避免问多个问题,而应将这些问题分成不同的帖子。