gpt4 book ai didi

python - Scikit Learn Pipeline 的自定义变压器

转载 作者:行者123 更新时间:2023-11-30 08:54:15 24 4
gpt4 key购买 nike

我正在使用 Scikit 学习管道对象,因为我要执行一系列任务(上采样、特征选择、分类)。我的上采样方法是自定义方法,这意味着我必须为管道实现自定义转换器。

变压器必须具有变换和拟合方法。当然,我只想对训练数据进行上采样,而不是对测试数据进行上采样。这是否意味着我只需实现 fit 方法,而不需要实现转换方法(对传递给 fit 方法的数据集进行上采样)?据我了解,变换方法适用于训练集和测试集......

最佳答案

scikit-learn 转换器无法更改样本数量,API 不支持此功能 - 请参阅 http://scikit-learn.org/stable/modules/generated/sklearn.base.TransformerMixin.html#sklearn.base.TransformerMixin.fit_transform - 记下 X、y 和 X_new 的尺寸。另请注意,它们仅返回 X,而不返回 y - 这意味着如果您更改 X 维度,它将不再匹配 y 维度。

一种方法是在管道之外运行它 - 生成用于训练的新样本并将其放入管道,并且不生成用于测试的新样本。但它不会工作,例如通过交叉验证。

为了使其适用于交叉验证和模型选择,您需要一个自定义 Pipeline 类,该类支持更改 n_samples 的转换器。例如,可以在 imbalanced-learn 中找到实现。封装:见here 。检查这个包 - 如果您需要上采样,那么您的上采样方法可能已经在不平衡学习中实现。

关于python - Scikit Learn Pipeline 的自定义变压器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41875694/

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