【问题标题】:GridSearchCV on a pipeline with standardscaler, PCA & lasso带有标准缩放器、PCA 和套索的管道上的 GridSearchCV
【发布时间】:2014-07-24 01:54:52
【问题描述】:

假设我正在使用 [StandardScaler, PCA & Lasso] 在管道上执行 GridSearchCV,其中网格搜索超过 2 个 PCA 参数值和 3 个 Lasso 参数值(因此有 6 个可能的参数组合)。在进行 CV 时,对于给定的折叠,算法是否仅标准化该折叠中的训练集(不包括用于确定标准化器的均值/方差的折叠测试集)还是标准化整个折叠之外的数据集(在这种情况下,整个网格搜索过程只进行一次标准化)?

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:

    如果您使用包含sklearn.preprocessing.StandardScalersklearn.decomposition.PCAsklearn.linear_model.Lassosklearn.pipeline.Pipeline 对象,并使用此管道使用GridSearchCV 创建交叉验证估计器,那么StandardScaler 将仅在内部训练折叠上估计用于居中和重新缩放到单位方差的参数。

    在测试折叠上评估管道时,StandardScaler 将使用存储的均值和标准差,并从测试集中减去训练均值,然后将结果除以训练标准差。

    所以答案是:StandardScaler 不会以任何方式使用测试集来确定数据的均值和方差。

    【讨论】:

    • 附带说明:我不确定 PCA 输出上的套索是否非常有用。
    • 谢谢艾肯伯格。为什么你说 PCA 输出上的 lasso 没有用?
    • 因为使用 PCA,您已将输入空间重新转换为最大方差分量。在这些数量上使用套索来选择要在模型中使用的数量。您也可以交叉验证要保留的组件数量,并在它们上安装 OLS 或 Ridge。
    • 从只使用组件0到使用[0, 1], [0, 1, 2], ... , [0, ..., n_components]
    • 虽然我之前的评论通常是有效的,但我想我可能只是遇到了一些大方差向量恰好不是我想要的情况select :) -- 在这种情况下,使用PCAlasso 进行美白实际上可以成为一个强大的工具!
    猜你喜欢
    • 2018-11-22
    • 2023-03-03
    • 2021-01-12
    • 2021-07-10
    • 2020-12-12
    • 2018-03-29
    • 2020-09-20
    • 2021-12-14
    • 2011-01-05
    相关资源
    最近更新 更多