本文为您介绍PAI-Studio提供的特征重要性评估,包括随机森林特征重要性和线性模型特征重要性。

随机森林特征重要性

您可以使用原始数据和随机森林模型,计算特征重要性。您可以通过以下任意一种方式,配置随机森林特征重要性组件参数:
  • 可视化方式
    页签 参数 描述
    字段设置 选择特征列 输入表中,用于训练的特征列。默认选中除Label外的所有列,为可选项。
    选择目标列 该参数为必选项。

    单击目录图标,在选择字段对话框中,输入关键字搜索列,选中后单击确定

    参数设置 并行计算核数 并行计算的核心数,可选。
    每个核内存大小 每个核的内存大小,单位为MB,可选。
  • PAI命令格式
    pai -name feature_importance -project algo_public
        -DinputTableName=pai_dense_10_10
        -DmodelName=xlab_m_random_forests_1_20318_v0
        -DoutputTableName=erkang_test_dev.pai_temp_2252_20319_1
        -DlabelColName=y
        - DfeatureColNames="pdays,previous,emp_var_rate,cons_price_idx,cons_conf_idx,euribor3m,nr_employed,age,campaign,poutcome"
        -Dlifecycle=28 ;
    参数名称 是否必选 描述 默认值
    inputTableName 输入表的名称
    outputTableName 输出表的名称
    labelColName 输入表的标签列名
    modelName 输入的模型名称
    featureColNames 输入表选择的特征列 除Label外的所有列
    inputTablePartitions 输入表选择的分区名称 选择全表
    lifecycle 输出表的生命周期 不设置
    coreNum 核心数 自动计算
    memSizePerCore 内存数 自动计算

随机森林特征重要性示例

  1. 使用SQL语句,生成训练数据。
    drop table if exists pai_dense_10_10;
    creat table if not exists pai_dense_10_10 as
    select
        age,campaign,pdays, previous, poutcome, emp_var_rate, cons_price_idx, cons_conf_idx, euribor3m, nr_employed, y
    from  bank_data limit 10;
  2. 构建如下实验,详情请参见算法建模
    数据源为pai_dense_10_10y为随机森林的标签列,其它列为特征列。强制转换列选择agecampaign,表示将这两列作为枚举特征处理,其它使用默认参数。算法建模
  3. 运行实验,查看预测结果。结果
  4. 运行完成后,右键单击随机森林特征重要性组件,选择查看分析报告,查看结果。分析报告

线性模型特征重要性

计算线性模型的特征重要性,包括线性回归和二分类逻辑回归,支持稀疏和稠密数据格式。您可以通过以下任意一种方式,配置线性模型特征重要性组件参数:
  • 可视化方式
    页签 参数 描述
    字段设置 选择特征列 输入表中,用于训练的特征列。默认选中除Label外的所有列,为可选项。
    选择目标列 该参数为必选项。

    单击目录图标,在选择字段对话框中,输入关键字搜索列,选中后单击确定

    输入表数据是否为稀疏格式 可选项。
    执行调优 计算核心数 计算的核心数,可选。
    每个核内存大小 每个核的内存大小,单位为MB,可选。
  • PAI命令方式
    PAI -name regression_feature_importance -project algo_public
        -DmodelName=xlab_m_logisticregressi_20317_v0
        -DoutputTableName=pai_temp_2252_20321_1
        -DlabelColName=y
      -DfeatureColNames=pdays,previous,emp_var_rate,cons_price_idx,cons_conf_idx,euribor3m,nr_employed,age,campaign
        -DenableSparse=false -DinputTableName=pai_dense_10_9;
    参数 是否必选 描述 默认值
    inputTableName 输入表的表名
    outputTableName 输出表的表名
    labelColName 输入表的标签列名
    modelName 输入的模型名称
    featureColNames 输入表选择的特征列 除Label外的所有列
    inputTablePartitions 输入表选择的分区名称 选择全表
    enableSparse 输入表是否为稀疏格式 false
    itemDelimiter 当输入表数据为稀疏格式时,KV对之间的分隔符。 空格
    kvDelimiter 当输入表数据为稀疏格式时,Key和Value之间的分隔符。 英文冒号(;)
    lifecycle 输出表的生命周期 不设置
    coreNum 核心数 自动计算
    memSizePerCore 内存数 自动计算

线性模型特征重要性示例

  1. 使用SQL语句,生成训练数据。
    create table if not exists pai_dense_10_9 as
    select
        age,campaign,pdays, previous, emp_var_rate, cons_price_idx, cons_conf_idx, euribor3m, nr_employed, y
    from  bank_data limit 10;
  2. 构建如下实验,详情请参见算法建模
    y为逻辑回归多分类组件的标签列,其它字段为特征列,其它参数使用默认值。建模
  3. 运行实验,查看预测结果。预测结果
    指标计算公式如下。
    列名 公式
    weight abs(w_)
    importance abs(w_j) * STD(f_i)
  4. 运行完成后,右键单击线性模型特征重要性组件,选择查看分析报告,查看结果。结果