首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在执行sklearn Column Transformer后获取新列的名称

在执行sklearn Column Transformer后获取新列的名称,可以通过以下步骤实现:

  1. 首先,导入所需的库和模块:
代码语言:txt
复制
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
from sklearn.pipeline import Pipeline
  1. 定义数据集的特征列和转换器:
代码语言:txt
复制
# 假设有两个特征列,一个是数值型特征,一个是分类特征
numeric_features = ['age']
categorical_features = ['gender']

# 定义数值型特征的转换器
numeric_transformer = Pipeline(steps=[
    ('numeric_encoder', OneHotEncoder())
])

# 定义分类特征的转换器
categorical_transformer = Pipeline(steps=[
    ('categorical_encoder', OneHotEncoder())
])

# 定义Column Transformer,将两个转换器应用于对应的特征列
preprocessor = ColumnTransformer(
    transformers=[
        ('numeric', numeric_transformer, numeric_features),
        ('categorical', categorical_transformer, categorical_features)
    ])
  1. 对数据集进行转换并获取新列的名称:
代码语言:txt
复制
# 假设有一个包含特征列的数据集X
X = ...

# 执行Column Transformer进行转换
X_transformed = preprocessor.fit_transform(X)

# 获取新列的名称
new_column_names = []
for transformer_name, transformer, features in preprocessor.transformers_:
    if transformer_name != 'remainder':
        if hasattr(transformer, 'get_feature_names_out'):
            # 如果转换器有get_feature_names_out方法,则使用该方法获取新列的名称
            new_column_names.extend(transformer.get_feature_names_out(features))
        else:
            # 否则,使用原始特征列的名称
            new_column_names.extend(features)

# 打印新列的名称
print(new_column_names)

以上代码中,我们首先定义了数值型特征和分类特征的转换器,然后使用Column Transformer将这两个转换器应用于对应的特征列。在执行fit_transform方法后,可以通过preprocessor.transformers_属性获取每个转换器的名称、转换器对象和对应的特征列。对于有get_feature_names_out方法的转换器,我们可以直接调用该方法获取新列的名称;对于没有该方法的转换器,我们则使用原始特征列的名称作为新列的名称。最后,将所有新列的名称存储在new_column_names列表中,并进行打印输出。

这样,我们就可以在执行sklearn Column Transformer后获取新列的名称了。

注意:以上代码中的OneHotEncoder仅作为示例,实际应用中可能需要根据数据集的特点选择合适的转换器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

scikit-learn中自动模型选择和复合特征空间

在每个示例中,fit()方法不执行任何操作,所有工作都体现在transform()方法中。 前两个转换符用于创建数字特征,这里我选择使用文档中单词数量和文档中单词平均长度作为特征。...final transformer FeatureSelector将允许我们将各种特性作为模型超参数。...转换数据集被传递给估计器对象。...通过网格搜索选择最佳模型 使用复合估计器设置,很容易找到最佳执行模型;你所需要做就是创建一个字典,指定想要改变超参数和想要测试值。...注意,如果你自己运行笔记本,确切数字可能会改变。 在超参数网格上绘制了平衡精度图,显示了模型性能如何在超参数空间上变化。

1.5K20
  • 使用sklearn高效进行数据挖掘,收藏!

    通过总结常用转换类,我们得到下表: 不难看到,只有有信息转换类fit方法才实际有用,显然fit方法主要工作是获取特征信息和目标值信息,在这点上,fit方法和模型训练时fit方法就能够联系在一起了...基于流水线组合工作需要依次进行,前一个工作输出是一个工作输入;基于并行式工作可以同时进行,其使用同样输入,所有工作完成将各自输出合并之后输出。...,我们对特征矩阵第1(花颜色)进行定性特征编码,对第2、3、4进行对数函数转换,对第5进行定量特征二值化处理。...#参数transformer_list为需要并行处理对象列表,该列表为二元组列表,第一元为对象名称,第二元为对象 #参数idx_list为相应需要读取特征矩阵 step2 = ('FeatureUnionExt...流水线上除最后一个工作以外,其他都要执行fit_transform方法,且上一个工作输出作为下一个工作输入。

    10810

    机器学习建模高级用法!构建企业级AI建模流水线 ⛵

    图片 关于 Scikit-Learn 应用方法可以参考ShowMeAI 机器学习实战教程 中文章 SKLearn最全应用指南,也可以前往 Scikit-Learn 速查表 获取高密度知识点清单。...这些步骤是元组形态,第一个元素定义了步骤名称 drop_columns),第二个元素定义了转换器( DropFeatures())。...通过 make_column_selector 函数确保每次选出字段类型是对。 这里使用 dtype_include 参数选择对应类型,这个函数也可以提供列名列表或正则表达式来选择。...SMOTE类别非均衡处理 添加 SMOTE 步骤 pipeline 如下: # 总体处理pipeline ppl = Pipeline([ # ① 剔除无关 ('drop_columns...图片 pipeline 对象提供了一个名为 get_feature_names_out() 函数,我们可以通过它获取特征名称。但在使用它之前,我们必须在数据集上拟合。

    1.1K42

    如何使用sklearn优雅地进行数据挖掘?

    通过总结常用转换类,我们得到下表: 不难看到,只有有信息转换类fit方法才实际有用,显然fit方法主要工作是获取特征信息和目标值信息,在这点上,fit方法和模型训练时fit方法就能够联系在一起了...基于流水线组合工作需要依次进行,前一个工作输出是一个工作输入;基于并行式工作可以同时进行,其使用同样输入,所有工作完成将各自输出合并之后输出。...方法 #参数transformer_list为需要并行处理对象列表,该列表为二元组列表,第一元为对象名称,第二元为对象 step2 = ('FeatureUnion', FeatureUnion(transformer_list...#参数transformer_list为需要并行处理对象列表,该列表为二元组列表,第一元为对象名称,第二元为对象 #参数idx_list为相应需要读取特征矩阵 step2 = ('FeatureUnionExt...流水线上除最后一个工作以外,其他都要执行fit_transform方法,且上一个工作输出作为下一个工作输入。

    63030

    【转载】使用sklearn优雅地进行数据挖掘

    目标值 有监督 Y LDA降维   不难看到,只有有信息转换类fit方法才实际有用,显然fit方法主要工作是获取特征信息和目标值信息,在这点上,fit方法和模型训练时fit方法就能够联系在一起了...基于流水线组合工作需要依次进行,前一个工作输出是一个工作输入;基于并行式工作可以同时进行,其使用同样输入,所有工作完成将各自输出合并之后输出。...,我们对特征矩阵第1(花颜色)进行定性特征编码,对第2、3、4进行对数函数转换,对第5进行定量特征二值化处理。...流水线上除最后一个工作以外,其他都要执行fit_transform方法,且上一个工作输出作为下一个工作输入。...#param_grid为待调参数组成网格,字典格式,键为参数名称(格式“对象名称__子对象名称__参数名称”),值为可取参数值列表 6 grid_search = GridSearchCV(pipeline

    95620

    【Kaggle】Intermediate Machine Learning(缺失值+文字特征处理)

    Introduction 按照教程给7个特征,给定5种参数下随机森林模型,选出mae误差最小,进行提交 import pandas as pd from sklearn.model_selection...,一般来说最后一种效果最好,但是特征中值种类过多的话,该方法会把数据集扩比较大 # Get list of categorical variables,获取非数字类变量 s = (X_train.dtypes...num_X_valid = X_valid.drop(object_cols, axis=1) # Add one-hot encoded columns to numerical features # 数字和编码文本特征合并...,丢弃不一致,对一致进行编码转换 from sklearn.preprocessing import LabelEncoder # Drop categorical columns that will...object_cols, axis=1) num_X_valid = X_valid.drop(object_cols, axis=1) # 合并 数字特征 + one_hot编码(记得恢复index)文字特征

    56930

    sklearn流水线优化机器学习流程

    在大多数机器学习项目中,你要处理数据不大可能恰好是生成最优模型理想格式。有很多数据变换步骤例如分类变量编码、特征缩放和归一化需要执行。...Scikit-learn预处理模块中包含了内建函数来支持这些常用变换。 但是,在一个典型机器学习工作流中你将需要应用这些变换至少两次。一次是在训练时,另一次是在你要用模型预测数据时。...我删除了Load_ID,因为在训练和预测中并不需要它。...我使用pandasdtypes函数来获取数据集简要信息: import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv...重要一点是你需要给每个参数名添加分类器名称。在上面的代码中我将分类器命名 为classifier,因此我给每个参数都添加了classifier__。

    1.2K30

    AI开发最大升级:Pandas与Scikit-Learn合并,新工作流程更简单强大!

    注意,我们现在有了一个额外和一个额外特征名称。...>>> from sklearn.pipeline import Pipeline 每个步骤是一个two-item元组,由一个标记步骤和实例化估计器字符串组成。前一个步骤输出是一个步骤输入。...元组中第一个值其标记作用名称,第二个是实例化估算器,第三个是要进行转换列表。...以下代码构建类基本转换器可执行以下操作: •使用数字均值或中位数填充缺失值 •对所有数字进行标准化 •对字符串列使用一个热编码 •不用再填充类别缺失值,而是直接将其编码为0 •忽略测试集中字符串列中少数独特值.... , 2010. ])], dtype=object) 使用转换器分别处理所有年份 现在有一个需要单独处理列子集,我们可以使用转换器来执行此操作。

    3.6K30

    【Python】机器学习之数据清洗

    机器学习之数据清洗概念 1.1 机器学习 传统编程要求开发者明晰规定计算机执行任务逻辑和条条框框规则。...发现重复记录或同义但不同名称情况时,进行去重或标准化,确保记录唯一一致。处理数据类型不匹配,字符串误标为数值型,进行类型转换或纠正,确保每个特征正确类型。 同时,对连续型变量缺失值进行处理。...''' dataNumber = data.shape[0] # 获取数据集样本量 NanList = [] # 存储缺失率大于指定缺失率变量名称列表 # 遍历数据集每一...copy() data2 # 返回删除指定data1副本data2 2.4.4 删除不需要入模变量; ​ 图8 运行结果 ​ 图9 代码: # 删除比如日期类型 loan_rct_end_date...=0表示按行删除 # inplace=True表示在原始DataFrame上进行修改 data2 # 返回删除指定DataFrame对象 2.4.5 删除文本型变量,有缺失值行; ​ 图10

    15410

    使用sklearn进行数据挖掘

    基于流水线组合工作需要依次进行,前一个工作输出是一个工作输入;基于并行式工作可以同时进行,其使用同样输入,所有工作完成将各自输出合并之后输出。...为需要并行处理 对象列表,该列表为二元组列表,第一元为对象名称,第二元为对象 13 step2 = ('FeatureUnion', FeatureUnion(transformer_list=[step2...Binarizer()) 12 #新建部分并行处理对象 13 #参数transformer_list为需要并行处理对象列表,该列表为二元组列表,第一元为对象名称, 第二元为对象 14 #参数idx_list...为相应需要读取特征矩阵 15 step2 = ('FeatureUnionExt', FeatureUnionExt(transformer_list=[step2_1, step2_2, step2...流水线上除最后一个工作以外,其他都要执行fit_transform方法,且上一个工作输出作为下一个工作输入。

    1.2K40

    用 Scikit-learn Pipeline 创建机器学习流程

    Pipeline 中除最后一个 estimators 外所有估计器都须是 transformer。...数据预处理 首先,将数据载入 jupyter notebook,删除 Loan_ID ,用 dtypes 查看特征数据类型: import pandas as pd train = pd.read_csv...fill_value='missing')), ('onehot', OneHotEncoder(handle_unknown='ignore'))]) 接下来,用 ColumnTransformer 确定每数据对应数据转换类型...rf.fit(X_train, y_train) 如果要对数据进行预测,我们也可以很方便地调用 predict 进行数据预处理和训练分类器。...需要注意是,这里需要把分类器名称附加到每个参数名称中,比如在上面的随机森林建模代码中,我们将分类器名称定义为 classifier,所以这里就需要在每个参数前添加 classifier__ 前缀

    1.6K30

    用 Pipeline 将训练集参数重复应用到测试集

    pipeline 实现了对全部步骤流式化封装和管理,可以很方便地使参数集在数据集上被重复使用。...pipeline 可以用于下面几处: 模块化 Feature Transform,只需写很少代码就能将 Feature 更新到训练集中。...,(是 transformer) 再用 PCA 将原始 30 维度特征压缩 2 维度,(是 transformer) 最后再用模型 LogisticRegression。...(是 Estimator) 调用 Pipeline 时,输入由元组构成列表,每个元组第一个值为变量名,元组第二个元素是 sklearn transformer 或 Estimator。...: 当管道 Pipeline 执行 fit 方法时, 首先 StandardScaler 执行 fit 和 transform 方法, 然后将转换数据输入给 PCA, PCA 同样执行 fit

    1K70

    Spark Pipeline官方文档

    ,以及是从sklearn哪部分获取灵感; DataFrame:这个ML API使用Spark SQL中DataFrame作为ML数据集来持有某一种数据类型,比如一个DataFrame可以有不同类型...+一个预测DataFrame转换器; Estimator:预测器是一个可以fit一个DataFrame得到一个转换器算法,比如一个学习算法是一个使用DataFrame并训练得到一个模型预测器...转换为另一个DataFrame,通常这种转换是通过在原基础上增加一或者多,例如: 一个特征转换器接收一个DataFrame,读取其中一(比如text),将其映射到一个列上(比如feature...vector),然后输出一个DataFrame包含映射得到; 一个学习模型接收一个DataFrame,读取包含特征向量,为每个特征向量预测其标签值,然后输出一个DataFrame包含标签...中,HashingTFtransform方法将单词集合转换为特征向量,同样作为加入到DataFrame中,目前,LogisticRegression是一个预测器,Pipeline首先调用其fit

    4.6K31

    PySpark ML——分布式机器学习库

    02 pyspark.ml库主要模块 相比于sklearn十八般武器俱全,pyspark.ml训练机器学习库其实主要就是三板斧:Transformer、Estimator、Pipeline。...对应各种机器学习算法,主要区分分类、回归、聚类和推荐算法4大类,具体可选算法大多在sklearn中均有对应,主要对应操作为fit Pipeline是为了将一些转换和训练过程形成流水线容器(实际在sklearn...点说明: 延迟执行:延迟执行是基于DAG实现,也是Spark实现运行效率优化一大关键。...; DataFrame增加:DataFrame是不可变对象,所以在实际各类transformer处理过程中,处理逻辑是在输入对象基础上增加方式产生对象,所以多数接口需指定inputCol和...在Spark中,算法是通常意义下未经过训练机器学习算法,例如逻辑回归算法、随机森林算法,由于未经过训练,所以这里算法是通用;而模型则是经过训练产出带有参数配置算法,经过训练可直接用于预测和生产

    1.6K20

    python︱sklearn一些小技巧记录(pipeline...)

    pipeline 可以用于下面几处: 模块化 Feature Transform,只需写很少代码就能将 Feature 更新到训练集中。...问题是要对数据集 Breast Cancer Wisconsin 进行分类, 它包含 569 个样本,第一 ID,第二类别(M=恶性肿瘤,B=良性肿瘤), 第 3-32 是实数值特征。...,(是 transformer) 再用 PCA 将原始 30 维度特征压缩 2 维度,(是 transformer) 最后再用模型 LogisticRegression。...(是 Estimator) 调用 Pipeline 时,输入由元组构成列表,每个元组第一个值为变量名,元组第二个元素是 sklearn transformer 或 Estimator。...: 当管道 Pipeline 执行 fit 方法时, 首先 StandardScaler 执行 fit 和 transform 方法, 然后将转换数据输入给 PCA, PCA 同样执行

    7.3K91
    领券