gpt4 book ai didi

python - 使用 GridSearch 时使用 Scikit-learn 的模型帮助

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:43 28 4
gpt4 key购买 nike

作为安然项目的一部分,构建了附件模型,以下是步骤摘要,

以下模型给出了非常完美的分数

cv = StratifiedShuffleSplit(n_splits = 100, test_size = 0.2, random_state = 42)
gcv = GridSearchCV(pipe, clf_params,cv=cv)

gcv.fit(features,labels) ---> with the full dataset

for train_ind, test_ind in cv.split(features,labels):
x_train, x_test = features[train_ind], features[test_ind]
y_train, y_test = labels[train_ind],labels[test_ind]

gcv.best_estimator_.predict(x_test)

下面的模型给出了更合理但较低的分数

cv = StratifiedShuffleSplit(n_splits = 100, test_size = 0.2, random_state = 42)
gcv = GridSearchCV(pipe, clf_params,cv=cv)

gcv.fit(features,labels) ---> with the full dataset

for train_ind, test_ind in cv.split(features,labels):
x_train, x_test = features[train_ind], features[test_ind]
y_train, y_test = labels[train_ind],labels[test_ind]

gcv.best_estimator_.fit(x_train,y_train)
gcv.best_estimator_.predict(x_test)
  1. 使用 Kbest 找出分数并对特征进行排序,并尝试组合较高和较低的分数。

  2. 使用 StratifiedShuffle 将 SVM 与 GridSearch 结合使用

  3. 使用 best_estimator_ 来预测和计算准确率和召回率。

问题是估算器给出的是满分,在某些情况下是 1

但是,当我在训练数据上重新调整最佳分类器然后运行测试时,它给出了合理的分数。

我的疑问/问题是 GridSearch 在使用我们发送给它的 Shuffle 拆分对象进行拆分后究竟对测试数据做了什么。我认为它不适合测试数据,如果这是真的,那么当我预测使用相同的测试数据时,它不应该给出这么高的分数。?因为我使用了 random_state 值,shufflesplit 应该为网格拟合和预测创建相同的副本。

那么,对两个人使用相同的 Shufflesplit 是不是错了?

最佳答案

GridSearchCV正如@Gauthier Feuillen 所说,用于搜索给定数据的估计器的最佳参数。GridSearchCV 说明:-

  1. gcv = GridSearchCV(pipe, clf_params,cv=cv)
  2. gcv.fit(特征,标签)
  3. clf_params 将被扩展以使用 ParameterGrid 分离所有可能的组合.
  4. features 现在将使用 cv 拆分为 features_trainfeatures_testlabels
  5. 也一样
  6. 现在将使用 features_trainlabels_inner 训练 gridSearch 估计器(管道),并使用 features_testlabels_test 进行评分>.
  7. 对于第 3 步中每个可能的参数组合第 4 步和第 5 步将重复 cv_iterations。将计算 cv 迭代的得分平均值,并将其分配给该参数组合。这可以使用 gridSearch 的 cv_results_ 属性访问。
  8. 对于给出最佳分数的参数,内部估计器将使用这些参数重新初始化并针对提供给它的整个数据(特征和标签)重新拟合

由于最后一步,您在第一种和第二种方法中得到不同的分数。因为在第一种方法中,所有数据都用于训练,而您仅针对该数据进行预测。第二种方法对以前看不见的数据进行预测。

关于python - 使用 GridSearch 时使用 Scikit-learn 的模型帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362027/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com