gpt4 book ai didi

python - Scikit - 结合规模和网格搜索

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:53 25 4
gpt4 key购买 nike

我是 scikit 的新手,在结合数据规模和网格搜索时遇到 2 个小问题。

  1. 高效缩放器

考虑使用 Kfolds 进行交叉验证,我希望每次我们在 K-1 折叠上训练模型时,数据缩放器(例如使用 preprocessing.StandardScaler())仅适用于 K-1 折叠并且然后应用于剩余的折叠。

我的印象是下面的代码将适合整个数据集的缩放器,因此我想修改它以使其表现如前所述:

classifier = svm.SVC(C=1)    
clf = make_pipeline(preprocessing.StandardScaler(), classifier)
tuned_parameters = [{'C': [1, 10, 100, 1000]}]
my_grid_search = GridSearchCV(clf, tuned_parameters, cv=5)
  1. 检索内部定标器配件

当 refit=True 时,在网格搜索“之后”,模型在整个数据集上重新拟合(使用最佳估计器),我的理解是将再次使用管道,因此缩放器将适合整个数据集。理想情况下,我想重用适合的数据集来扩展我的“测试”数据集。有没有办法直接从 GridSearchCV 检索它?

最佳答案

  1. GridSearchCV 对 Pipeline 对象一无所知;它假设所提供的估计器是原子的,因为它不能只选择某个特定的阶段(例如 StandartScaler)并在不同的数据上适应不同的阶段。所有 GridSearchCV 所做的 - 在提供的估计器上调用 fit(X, y) 方法,其中 X,y - 一些数据拆分。因此它适合所有阶段的相同拆分。
  2. 试试这个:

    best_pipeline = my_grid_search.best_estimator_
    best_scaler = best_pipeline["standartscaler"]

  3. 如果您将转换器/估算器包装到管道中 - 您必须为每个参数的名称添加前缀,例如:tuned_pa​​rameters = [{'svc__C': [1, 10, 100 , 1000]}],查看这些示例了解更多详情 Concatenating multiple feature extraction methods , Pipelining: chaining a PCA and a logistic regression

无论如何,阅读本文,可能会对您有所帮助GridSearchCV

关于python - Scikit - 结合规模和网格搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34057716/

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