Driverless AI 转换

Driverless AI 中的转换应用于数据中的列。转换器在实验中会创建 engineered features.

Driverless AI 提供了多种转换器。下载的实验日志中包括对实验应用的转换。

请注意

  • 您可以使用 included_transformersexcluded_transformers 配置选项,来设置在 Driverless AI 环境中包括或排除某些转换器。

  • 您可以通过插件面板上的 included_transformers 专家设置,控制在各个实验中使用的转换器。

  • 您可以通过插件面板上的 included_pretransformers 专家设置来设置用作预处理转换器的转换器。您也可以通过插件面板上的 num_pipeline_layers 专家设置添加附加层。

  • 数据插件是转换器的替代方法,能够提供更大的灵活性(但无拟合状态),您可以通过插件面板上的 included_datas 专家设置来控制这些插件。

转换特征命名规则

转换特征名称规则将按以下方式编码:

<Transformation_indexORgene_details_id>_<Transformation_name>:<original_feature_name>:<…>:<original_feature_name>.<extra>

例如,在 32_NumToCatTE:BILL_AMT1:EDUCATION:MARRIAGE:SEX.0 中:

  • 32_ 为用于特定转换参数的转换指数。

  • NumToCatTE 为转换器名称。

  • BILL_AMT1:EDUCATION:MARRIAGE:SEX 表示所使用的原始特征。

  • 0 为额外数值,其表示在按特征进行分组(此处显示为 BILL_AMT1EDUCATIONMARRIAGESEX)和进行折外估算后 target[0] 的似然编码。对于多类实验,此值 > 0。对于二元实验,此值始终为 0。

数值转换器(整数、实数、二进制数)

  • ClusterDist 转换器

    聚类距离转换器将对所选数值列进行聚类,并将与某一聚类的距离用作新特征。

  • ClusterDist cuML 转换器

    Cluster Distance cuML 转换器在 GPU 上运行,以训练 cuML 加速 k-means 聚类算法,进而依据所选的数值列创建聚类,并将与某一聚类的距离用作新特征。

  • ClusterTE 转换器

    聚类目标编码转换器将对所选的数值列进行聚类,并计算每个聚类中响应列的平均值。响应的平均值将用作新特征。平均响应值将通过交叉验证计算,以防止过度拟合。

  • DBSCAN cuML 转换器

    DBSCAN cuML 转换器在 GPU 上运行,以训练 cuML 加速 DBSCAN 模型,进而依据所选的数值列创建聚类,并将输出的聚类标签用作新特征。

  • 交互转换器

    交互转换器将对数据中的两个数值列进行加减乘除运算,以创建新的特征。此转换利用智能搜索识别需转换的特征配对。在这一过程中,只保留能提高基线模型评分的交互。

  • InteractionsSimple 转换器

    InteractionsSimple 转换器将对数据中的两个数值列进行加减乘除运算,以创建新的特征。此转换会随机选择需转换的特征配对。

  • NumCatTE 转换器

    数值分类目标编码转换器将计算所选多列的响应列平均值。如果所选列中有一个列为数值列,则通过分箱方法首先将该数值列转换为分类列。响应列的平均值将被用作新的特征。平均响应值将通过交叉验证计算,以防止过度拟合。

  • NumCatTE 转换器

    数值分类目标编码转换器通过分箱方法将数值列转换为分类列,然后计算每个分组响应列的平均值。该分箱的响应平均值将被用作新的特征。平均响应值将通过交叉验证计算,以防止过度拟合。

  • NumToCatWoEMonotonic 转换器

    数值-分类证据权值单调性转换器通过分箱方法将数值列转换为分类列,然后计算每个分箱的证据权值。单调性约束确保数值的分箱与证据权值单调相关。证据权值将被用作新的特征。证据权值衡量了某一分组在区分良性风险和恶性风险方面的实力,此值通过对某一二元响应列取分布比值的对数来计算。

  • NumToCatWoE 转换器

    数值-分类证据权值转换器通过分箱方法将数值列转换为分类列,然后计算每个分箱的证据权值。证据权值将被用作新的特征。证据权值衡量了某一分组在区分良性风险和恶性风险方面的实力,此值通过对某一二元响应列取分布比值的对数来计算。

  • 原始转换器

    原始转换器将对数值列应用恒等变换。

  • TruncSVDNum 转换器

    截断 SVD 转换器将针对所选数值列训练截断 SVD 模型,并将截断 SVD 矩阵的元素用作新特征。

  • TruncSVDNum cuML 转换器

    截断 SVD cuML 转换器在 GPU 上运行,以针对所选数值列训练 cuML 加速截断 SVD 模型,并将截断 SVD 矩阵的元素用作新特征。

时间序列实验转换器

  • DateOriginal 转换器

    Date Original 转换器将获取日期值,如年、季度、月、日、日期、周和星期值。

  • DateTimeOriginal 转换器

    Date Time Original 转换器将获取日期 时间值,如年、季度、月、日、日期、周和星期、时、分和秒。

  • EwmaLags 转换器

    指数加权移动平均 (EWMA) 转换器将计算目标或特征滞后的指数加权移动平均值。

  • LagsAggregates 转换器

    LagsAggregates 转换器将计算目标/特征滞后的聚合,如平均值(lag7、lag14、lag21),并支持平均值、最小值、中位数、总和、偏斜、峰度、标准差。聚合被用作新的特征。

  • LagsInteraction 转换器

    LagsInteraction 转换器将创建目标/特征滞后,并计算滞后(例如 lag2 - lag1)之间的相互作用。相互作用将被用作新的特征。

  • 滞后转换器

    滞后转换器可能会依据分组创建目标/特征滞后。每个滞后项将被用作新特征。在对分类(字符串)特征或二元/多类字符串值目标进行内部数值编码后,滞后转换器可应用于这些分类特征或目标。

  • LinearLagsRegression 转换器

    LinearLagsRegression 转换器将依据目标或特征滞后对线性模型进行训练,以预测当前目标值或特征值。线性模型预测值将被用作新的特征。

分类转换器(字符串)

  • Cat 转换器

    Cat 转换器将按字母顺序对分类列进行排序,并将创建的顺序指数用作新的特征。此转换器可用于能处理分类特征的模型。

  • CatOriginal 转换器

    CatOriginal 转换器将应用会保留原始分类特征的恒等变换。此转换器可用于能处理非数值特征值的模型。

  • CVCatNumEncode 转换器

    交叉验证分类-数值编码转换器将针对分类列中的每个值计算数值列的聚合(例如:计算每个城市的平均气温),并将此聚合用作新的特征。

  • CVTargetEncode 转换器

    交叉验证目标编码转换器将针对分类列中的每个值计算响应列的平均值,并将此平均值用作新的特征。平均响应值将通过交叉验证计算,以防止过度拟合。

  • 频率转换器

    频率转换器将计算属性列中每个值的频次,并将此频次用作新的特征。此频次可以是原始频次也可以是规范化频次。

  • LexiLabelEncoder 转换器

    LexiLabelEncoder 转换器将按照字母顺序对分类列进行排序,并将所创建的顺序指数用作新的特征。

  • NumCatTE 转换器

    数值分类目标编码转换器将计算所选多列的响应列平均值。如果所选列中有一个列为数值列,则通过分箱方法首先将该数值列转换为分类列。响应列的平均值将被用作新的特征。平均响应值将通过交叉验证计算,以防止过度拟合。

  • OneHotEncoding 转换器

    OneHotEncoding 转换器通过执行独热编码将分类列转换为一系列布尔特征。布尔特征将被用作新的特征。如果列中有超过特定数量的唯一值,则会按照字典顺序将这些值按最大数量(默认为 10)分箱。可通过 ohe_bin_list config.toml 配置选项更改此值。

  • SortedLE 转换器

    SortedLE 转换器将按照响应列顺序对分类列进行排序,并将创建的顺序指数用作新的特征。

  • WeightOfEvidence 转换器

    WeightOfEvidence 转换器将计算分类列中每个值的证据权值。证据权值将被用作新的特征。证据权值衡量了某一分组在区分良性风险和恶性风险方面的实力,此值通过对某一二元响应列取分布比值的对数来计算。

    _images/woe.png

    此转换器只对二元目标变量有效。如果使用了 fit_transform 方法,需在分层 k 折交叉验证中建立似然。更多信息,请访问 http://ucanalytics.com/blogs/information-value-and-weight-of-evidencebanking-case/

文本转换器(字符串)

  • BERT 转换器

    BERT 转换器将依据预先训练的模型嵌入为每个文本列创建新的特征,特别适用于还包含有重要非文本特征的数据集。

请注意:如果您的数据集较大或包含很多文本列,使用 BERT 转换器可能显著延长实验耗时。

  • TextBiGRU 转换器

    TextBiGRU 转换器将通过根据文本特征创建的词嵌入训练双向 GRU TensorFlow 模型,以预测响应列。GRU 预测将被用作新的特征。训练 GRU 模型时需使用交叉验证,以防止过度拟合。

  • TextCharCNN 转换器

    TextCharCNN 转换器将通过根据文本特征创建的字符嵌入训练双向 CNN TensorFlow 模型,以预测响应列。CNN 预测将被用作新的特征。训练 CNN 模型时需使用交叉验证,以防止过度拟合。

  • TextCNN 转换器

    文本 CNN 转换器将通过根据文本特征创建的词嵌入训练双向 CNN TensorFlow 模型,以预测响应列。CNN 预测将被用作新的特征。训练 CNN 模型时需使用交叉验证,以防止过度拟合。

  • TextLinModel 转换器

    TextLinModel 转换器将通过根据文本特征创建的 TF-IDF 矩阵训练线性模型,以预测响应列。线性模型将被用作新的特征。训练线性模型时需使用交叉验证,以防止过度拟合。

  • 文本转换器

    文本转换器可文本列令牌化,并创建 TFIDE 矩阵(词频-逆文档频率)或计数(词数)矩阵。在此过程结束后,会使用截断 SVD 降维。所选的 TF-IDF/计数矩阵元素将被用作新的特征。

时间转换器(日期、时间)

  • 日期转换器

    日期转换器获取任何日期值,包括:

    • 季度

    • 日期

    • 星期

  • IsHoliday 转换器

    IsHoliday 转换器可确定日期列是否为假日列。指示日期是否为假日的布尔列将被添加为新特征。对于美国、英国、德国、墨西哥和欧洲中央银行的假日,创建了单独的特征。也可通过配置文件添加 Python 假日包中可用的其他国家/地区。

图像转换器

  • ImageOriginal 转换器

    ImageOriginal 转换器可在不执行任何特征工程的情况下将图像路径传递给模型。

  • ImageVectorizer 转换器

    ImageVectorizer 转换器可使用经预先训练的 ImageNet 模型将具有图像路径或 URL 的列转换为嵌入(向量)表示(衍生自模型的最后一个全局平均池化层)。

    请注意:可通过 tensorflow_image_fine_tune 专家设置启用对预训练图像模型的微调。

Autoviz 推荐转换器

Autoviz 推荐转换器应用于 visualizing the dataset in Driverless AI 获得的推荐转换。此转换器目前支持 square_root、对数和逆运算(以及它们的近似计算,对于负值,使用 yeo-johnson 幂转换)。

专家实验设置中的 autoviz_recommended_transformation 列出/控制应用的转换。语法为 Autoviz {column_name: transformation} 中的转换字典,例如 {“DIS”:”log”,”INDUS”:”log”,”RAD”:”inverse”,”ZN”:”square_root”}。可通过 included_transformers 配置设置从专家面板启用或禁用 Autoviz 推荐转换器本身。

python scoring pipelinesmojo scoring pipelines with Java Runtime 支持此转换器(目前不支持 C++)。

示例转换

在本节中,我们将通过依据示例数据集预测房价的示例来介绍一部分可用转换。

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

1920 年 1 月 1日

1700

3

2

纽约

$700K

频率转换器

  • 各个分类值在数据集中出现的频次

  • 此频次可以为原始频次也可以为规范化频次

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

Freq_State

1920 年 1 月 1日

1700

3

2

纽约

700,000

4,500

在“州 = 纽约”的情况下,此数据集中有 4,500 座房屋。

成批交互转换器

  • 对数据中的两个列进行加减乘除运算。

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

Interaction_NumBeds#subtract#NumBaths

1920 年 1 月 1日

1700

3

2

纽约

700,000

1

此房屋中卧室的数量比与卫生间多一个。

截断 SVD 数值转换器

  • 利用数据中的所选数值列对截断 SVD 进行训练

  • 截断 SVD 的元素将被用作新的特征

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

TruncSVD_Price_NumBeds_NumBaths_1

1920 年 1 月 1日

1700

3

2

纽约

700,000

0.632

“价格”、“卧室数量”、“卫生间数量”等列的第一个截断 SVD 元素

日期转换器

  • 获取年、获取季度、获取月、获取日、获取日期、获取周、获取星期、获取时、获取分、获取秒

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

DateBuilt_Month

1920 年 1 月 1日

1700

3

2

纽约

700,000

1

该房屋建造于 1 月。

文本转换器

  • 使用 TFIDF 方法或计数(词数)转换文本列

  • 在此过程完成后,可能会通过使用截断 SVD 降维

分类目标编码转换器

  • 对分类列执行交叉验证目标编码

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

CV_TE_State

1920 年 1 月 1日

1700

3

2

纽约

700,000

550,000

纽约州房屋的平均价格为 $550,000*。

*为了防止过拟合,Driverless AI 将依据折外数据,通过交叉验证来计算此平均值。

数值-分类目标编码转换器

  • 通过分箱将数值列转换为分类列

  • 针对被分箱的数值列执行交叉验证目标编码

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

CV_TE_SquareFootage

1920 年 1 月 1日

1700

3

2

纽约

700,000

345,000

建筑面积 列已被装入 10 个均等的分箱中。此房屋在 建筑面积 分区 1,572-1,749 内。建筑面积在此范围内的房屋平均价格为 $345,000*。

*为了防止过拟合,Driverless AI 将依据折外数据,通过交叉验证来计算此平均值。

聚类目标编码转换器

  • 将数据中的选定列聚类。

  • 针对聚类 ID 执行目标编码

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

ClusterTE_4_NumBeds_NumBaths_SquareFootage

1920 年 1 月 1日

1700

3

2

纽约

700,000

450,000

已经将 卧室数量, 卫生间数量建筑面积 列分为 4 个聚类。与所选房屋处于相同聚类中的房屋平均价格为 $450,000*。

*为了防止过拟合,Driverless AI 将依据折外数据,通过交叉验证来计算此平均值。

聚类距离转换器

  • 将数据中的选定列聚类。

  • 计算与所选聚类中心的距离

建成日期

建筑面积

卧室数量

卫生间数量

所在州

价格

ClusterDist_4_NumBeds_NumBaths_SquareFootage_1

1920 年 1 月 1日

1700

3

2

纽约

700,000

0.83

已经将 卧室数量, 卫生间数量建筑面积 列分为 4 个聚类。此记录与聚类 1 的差值为 0.83。