在FeatureStore中使用自动特征工程(AutoFE)

本文介绍在FeatureStore如何运用自动特征工程技术(AutoFE)生成新特征,为用户提供一些参考建议与启示。通过AutoFE生成的pipeline模型,对训练集和测试集执行特征转换操作,从而提升机器学习或深度学习模型的效果。

什么是AutoFE

AutoFE(Auto Feature Engineering)指自动特征工程,通过分析用户输入的数据,推荐给用户一组特征工程的操作。用户可以直接使用这组操作进行特征工程,也可以在此基础上进一步自定义所需的处理过程。

AutoFE具体功能包括:

  • 根据group by feature_x,group by(feature_x, feature_y)得到统计特征,例如根据样本按照城市统计销量特征,等于把城市映射为数值特征。

  • 分析特征组合得到组合特征,例如,crosscount(feature_x, feature_y)。

  • 根据加减乘除得到衍生特征, 例如,feature_x +-*/ feature_y。

  • 基于决策树类(GBDT)算法对生成特征(信息价值,特征重要性和相关性等)进行排序做特征选择。

AutoFE使用流程

image
  1. 预处理

    将不同数据源(ODPS/OSS/HDFS/本地)读取的数据进行处理,根据具体需求和数据规模进行采样,目前服务仅支持ODPS,单机版支持所有数据。

  2. 特征选择

    当特征个数超过800列时,对后面特征分析和模型训练的性能有一定的影响,推荐使用GBDT对原始特征做初步评估筛选。

  3. 特征分析

    对特征进行统计分析、组合生成和用SAFE选择,生成新的特征集合。

    • 统计分析:通过多个重要统计指标(均值/标准差/最大值/最小值/偏度/峰度等),对特征数据做统计分析。

    • 组合生成:通过训练GBDT模型,结合树的路径来组合特征,计算Information Gain Ratio进行排序,从而选出推荐的组合。

    • SAFE(Scalable Automatic Feature Engineering)选择:通过分桶计算每列的Information Value,过滤过低的特征,训练GBDT模型,计算特征重要性,过滤重要性过低的特征。

      更多关于SAFE的信息,请参见SAFE

  4. 模型训练

    基于特征分析生成配置和数据,对pipeline流程进行训练,生成模型用于离在线均可使用的模型。

  5. 特征转换

    加载pipeline模型,对训练和测试数据进行特征转换,生成对应的特征工程结果。

计费说明

AutoFE本身不收费,但在进行预处理、特征选择、分析和模型训练等操作时,会在MaxCompute预付费/按量付费Project中启动数据计算及模型训练任务,因此会产生MaxCompute相关的公共资源费用,计费详情请参见MaxCompute计费概述

前提条件

在开始执行操作前,请确认您已完成以下准备工作。

依赖产品

具体操作

云原生大数据计算服务 MaxCompute

大数据开发治理平台 DataWorks

人工智能平台 PAI

开通PAI并创建默认工作空间

对象存储 OSS

开通OSS服务

准备工作

同步数据表pai_online_project.finance_record

为方便实践操作,我们已在MaxCompute可公共读取项目pai_online_project中提前预置了模拟生成的数据表,您需要在DataWorks中执行如下SQL命令,将该数据表从pai_online_project项目同步到自己的DataWorks项目中。具体操作步骤如下:

  1. 登录DataWorks控制台

  2. 在左侧导航栏单击数据开发与治理>数据开发

  3. 选择已创建的DataWorks工作空间后,单击进入数据开发

  4. 鼠标悬停至新建,选择新建节点>MaxCompute>ODPS SQL,在弹出的页面中配置节点参数。

    参数

    取值建议

    引擎实例

    选择已创建的MaxCompute引擎。

    节点类型

    ODPS SQL

    路径

    业务流程/Workflow/MaxCompute

    名称

    可自定义名称。

  5. 单击确认

  6. 在新建节点区域运行以下SQL命令,将数据表从pai_online_project项目同步到自己的MaxCompute中。

    CREATE TABLE IF NOT EXISTS finance_record
    like pai_online_project.finance_record
    STORED AS ALIORC  
    LIFECYCLE 90;
    
    INSERT OVERWRITE TABLE finance_record
    SELECT *
    FROM pai_online_project.finance_record

操作步骤

  1. 进入DSW开发环境。

    1. 登录PAI控制台

    2. 在页面左上方,选择DSW实例所在的地域。

    3. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。

    4. 在左侧导航栏,选择模型开发与训练>交互式建模(DSW)

    5. 单击需要打开的实例操作列下的打开,进入DSW实例开发环境。

  2. Notebook页签的Launcher页面,单击快速开始区域Tool下的DSW Gallery,进入DSW Gallery页面。

    image

  3. DSW Gallery页面中,搜索特征平台中使用自动特征工程,单击DSW中打开,即可自动将所需的资源和教程文件下载至DSW实例中,并在下载完成后自动打开教程文件。

    image

  4. 在打开的教程文件feature_store_with_autofe.ipynb中,您可以查看教程内容以及直接运行教程。

    在教程文件中配置参数并单击image,即可运行对应步骤的命令。当成功运行完一个命令后,再依次运行下个步骤的命令。

    image

  5. 运行完成后,前往OSS管理控制台查看实验结果。

    OSS Bucket请参见步骤4中参数output_config_oss_dir对应的值。

    image

附录:命令列表

任务

参数

示例

创建实验

create

--config/-c

automl create fe -c autofe_config.ini

断点续跑实验

resume

--config/-c

automl resume fe exp123 -c autofe_config.ini

列出实验列表

list

--from xxx

--to xxx

automl list fe --from 20230501 --to 20230601

获取某个实验提交时候的信息

info <exp-id>

automl info exp123

获取某个具体实验的日志

log <exp-id>

automl log exp123

停止某个实验

kill <exp-id>

automl kill exp123

删除某个实验

delete <exp-id>

automl delete exp123

配置

config

帮助

help

--help/-h

automl --help