郭震 AI公众号:郭震AI

16 特征工程自动化之特征生成与转换

发布日期:

最近更新:

分类: AutoML

预计阅读: 3 分钟

阅读次数: 0

预计阅读3 分钟
结构重点5 个
图文要点6 张
正文规模1.2k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 5 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文索引

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

6 张图 · 可跳转
特征生成与转换流程图查看大图
特征生成与转换流程图

自动特征生成可以扩大搜索空间,但也会增加过拟合和计算成本。生成越多,验证越重要。

特征生成与转换实操核对图查看大图
特征生成与转换实操核对图

我会记录每个新特征来源,并检查它在上线时是否也能实时计算。

在上一篇中,我们探讨了特征选择的技术,通过不同的方法来选择与模型效果相关的特征。在本篇中,我们将深入研究特征生成与转换,这是特征工程中的关键步骤之一。特征生成与转换可以显著提升模型的性能,使得机器学习算法更容易提取潜在的信息。

什么是特征生成与转换?

特征生成是指从原始数据中创造新的特征,这些特征可以使模型更好地捕捉到数据的内部结构。而特征转换则涵盖了对现有特征的修改,以提高模型性能或适应某些算法需求。

特征生成转换判断卡查看大图
特征生成转换判断卡

做自动特征生成与转换时,先看字段含义、时间可用性、组合规则、编码方式、泄漏风险和验证集表现。

特征生成的方法

  1. 多项式特征: 使用特征的多项式组合,例如对于特征x1x_1x2x_2,我们可以生成新的特征如x12x_1^2x22x_2^2x1x2x_1 \cdot x_2

    from sklearn.preprocessing import PolynomialFeatures
    
    poly = PolynomialFeatures(degree=2)
    X_poly = poly.fit_transform(X)
    
  2. 组合特征: 在某些情况下,组合两个或多个特征可以产生有用的信息。例如,在房价预测中,您可以通过将“面积”和“房间数量”结合生成新的特征如“单位面积价格”。

    df['price_per_room'] = df['price'] / df['num_rooms']
    
  3. 时间特征: 对于时间序列数据,您可以从日期中提取出许多特征,例如年、月、日、星期几等。这对捕捉周期性模式尤其有用。

    df['year'] = df['date'].dt.year
    df['month'] = df['date'].dt.month
    

特征转换的方法

  1. 标准化与归一化: 标准化将特征缩放到均值为0、方差为1的分布,适用于许多机器学习算法。而归一化则是将特征缩放到[0, 1]范围内。

    from sklearn.preprocessing import StandardScaler, MinMaxScaler
    
    scaler = StandardScaler()
    X_standardized = scaler.fit_transform(X)
    
    min_max_scaler = MinMaxScaler()
    X_normalized = min_max_scaler.fit_transform(X)
    
  2. 对数变换: 对于正偏态分布的特征,进行对数变换可以使分布更接近于正态分布,这样有助于一些模型的性能。

    df['log_feature'] = np.log(df['original_feature'] + 1)
    
  3. 编码分类特征: 对于类别型特征,可以使用独热编码(One-Hot Encoding)或标签编码(Label Encoding)将其转换为数值格式,使得模型可以处理。

    df = pd.get_dummies(df, columns=['categorical_feature'], drop_first=True)
    

案例分析

假设我们正在开发一个关于房价预测的模型,数据集中包含了房子的面积、房间数、房屋类型等特征。

首先,我们可以进行特征生成,创建一个新的特征“每平方价格”:

df['price_per_sqft'] = df['price'] / df['area']

然后,可以使用对数变换来处理价格特征:

df['log_price'] = np.log(df['price'] + 1)

最后,对于类别特征“房屋类型”,我们可以使用独热编码进行转换:

df = pd.get_dummies(df, columns=['housing_type'], drop_first=True)

经过这些特征生成与转换后,特征矩阵将更适合用于训练模型。

特征工程自动化之特征生成与转换应用复盘卡查看大图
特征工程自动化之特征生成与转换应用复盘卡

读到这里,可以把《特征工程自动化之特征生成与转换》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

特征工程自动化之特征生成与转换应用检查卡查看大图
特征工程自动化之特征生成与转换应用检查卡

读完《特征工程自动化之特征生成与转换》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

小结

特征生成与转换是特征工程中的重要组成部分,通过选择合适的生成与转换方法,可以显著提升模型的表现。在下一篇中,我们将介绍如何利用工具来实现特征工程的自动化,进一步简化机器学习工作流程。 AutoML阅读地图卡

学习《特征工程自动化之特征生成与转换》不必一口气吃完所有细节。先挑一个能动手验证的小问题,再顺着图和正文补齐概念。

继续阅读

顺着这个系列继续看

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...