在列列表上使用 sklearn 转换器并保留输入列

燕麦

使用 sklearn 转换器,我希望能够将转换应用于列列表,并让转换器使用转换后的值创建新列,而不是将它们应用于现有列。这可能吗?变压器还需要插入管道。

我的目标是比较原始列和转换后的列。变压器周围的包装类可以工作,但我想知道是否有更简单的方法?谢谢你。

严酷的名古达

最简单的方法是使用一个带有参数的函数,该参数接受您想要转换的特征列表。从那里你有两个选择:

  1. 这是您要求的方法。由于该函数仅转换您请求的那些特征,因此您可以替换您希望在函数内转换的特征的值。

  2. 这就是我要推荐的。创建原始数据框的副本并将所有转换后的特征“粘贴”到其中。然后,您可以在不同的单元格中打印两个数据帧(我假设您使用的是 jupyter 笔记本)来比较差异。

这将是要使用的函数:

    def transform_data(scaler, df, feats_to_transform):
        features = scaled_df[feats_to_transform]
        transformed_feats = scaler.fit_transform(features.values) # The transformers take only 2d arrays
                      ​
        return transformed_feats 

方法一:

df  = pd.read_csv('path/to/csv')
scaler = StandardScaler() # from sklearn.preprocessing import StandardScaler

feats_to_transform = ['feat1, feat2, feat3'] 
transformed_feats = transform_data(scaler, df, feats_to_transform)

df[feats_to_transform] = transformed_feats

方法二:

df  = pd.read_csv('path/to/csv')
scaled_df = df.copy(deep=True) # Using deep copy prevents alteration of original data
scaler = StandardScaler() # from sklearn.preprocessing import StandardScaler

feats_to_transform = ['feat1, feat2, feat3'] 
transformed_feats = transform_data(scaler, df, feats_to_transform)

scaled_df [feats_to_transform] = transformed_feats

# now compare in different cells
df.head()
scaled_df.head()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在自定义转换器中访问sklearn列转换器

Sklearn自定义转换器:使用FunctionTransformer和子类化TransformerMixin之间的区别

使用 sklearn 创建自定义转换器 - 缺少所需的位置参数错误

使用Sklearn的TfidfVectorizer转换

使用自定义转换器子类对sklearn管道评分时出现AttributeError,但在拟合时却未出现

在ColumnTransformer中使用时,为什么我的sklearn自定义转换器不保存属性?

在sklearn管道中获取costum转换器的实例变量

无法在元组列表上使用转换器

sklearn转换在哪些数据上运行?

如何使用networkx图作为sklearn的输入

如何使用sklearn Pipeline转换项目?

JSF列表转换器

使用多个功能训练sklearn分类器

在numpy数组上应用sklearn.compose.ColumnTransformer后如何保留列顺序

如何从 sklearn 管道转换器中提取特征名称?

自定义sklearn管道转换器,提供“ pickle.PicklingError”

sklearn:TFIDF转换器:如何获取文档中给定单词的tf-idf值

sklearn管道的自定义转换器,可同时更改X和y

在sklearn转换器管道上创建一个fork,以允许数据通过

如何在sklearn中修复此自定义转换器?

带有 pd.drop() 的 sklearn 自定义转换器

在自定义转换器中创建新数据框时,SKlearn 管道无法工作

sklearn 数字数据集上的错误输入形状错误

sklearn模型并适合列表

使用 Newtonsoft.JSON 自定义转换器读取具有不同输入的 json

AWS CDK - 尝试使用类 aws_cdk.aws_events.RuleTargetInputProperties 添加输入转换器

使用来自 HuggingFace 的转换器的 TFBertModel 和 AutoTokenizer 构建模型时的输入问题

捕获文本框的无效输入并使用自定义转换器

使用sklearn的OneHotEncoder删除列