【问题标题】:Is it possible to change pandas column data type within a sklearn pipeline?是否可以在 sklearn 管道中更改 pandas 列数据类型?
【发布时间】:2020-04-15 23:22:01
【问题描述】:

我正在使用的 Sklearn 管道有多个转换器,但其中一个初始转换器返回 数字类型,而连续的一个则采用 对象类型 变量。

基本上我需要挤一个:

data[col] = data[col].astype(object)

用于管道中所需的列。

有什么办法吗?

注意:我正在使用Feature-engine 转换器。

【问题讨论】:

  • 如果我没记错的话,从 1.1.0 版本开始,Feature-engine 的分类编码器现在采用参数 ignore_format=False,它允许将编码应用于非对象类型的变量。因此,这可能会简化您的管道,因为现在您不再需要重新转换变量。
  • 另外,如果返回数值变量的transformer是CategoricalImputer,可以设置参数object=True,直接返回object。

标签: machine-learning scikit-learn sklearn-pandas


【解决方案1】:

是的,您可以使用sklearn.preprocessing.FunctionTransformer。一个简单的例子是,

def to_object(x):
  return pd.DataFrame(x).astype(object)

fun_tr = FunctionTransformer(to_object)

y = fun_tr.fit_transform(pd.DataFrame({'a':[1,2,3]}))

【讨论】:

    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 2013-10-16
    • 2021-01-05
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2021-03-22
    • 2020-07-24
    相关资源
    最近更新 更多