功能列

    概述

    特征列用于指定从输入函数接收到的张量在进入模型之前应该如何组合和转换。特征列可以是到某些输入列的普通映射。column_numeric ()对于一列数值数据),或其他特征列的转换(例如。column_crossed ()定义一个新列为其他两个特征列的交叉)。

    以下是可用的功能专栏:

    功能列 描述
    column_categorical_with_vocabulary_list () 用内存词汇构建一个分类列。
    column_categorical_with_vocabulary_file () 用词汇表文件构造一个分类列。
    column_categorical_with_identity () 构造一个返回标识值的分类列。
    column_categorical_with_hash_bucket () 表示稀疏特征,其中id由哈希设置。
    column_categorical_weighted () 构造一个加权分类列。
    column_indicator () 表示给定类别列的多热表示。
    column_numeric () 构造一个实值列。
    column_embedding () 构建一个密集的柱。
    column_crossed () 构建交叉柱。
    column_bucketized () 构造一个桶形列。

    R数据类型到特征列的一些典型映射是:

    数据类型 功能列
    数字 column_numeric ()
    因素 column_categorical_with_identity ()
    字符 column_categorical_with_hash_bucket ()

    我们将使用航班数据集的nycflights13包来探索如何构造特征列。的航班数据集记录了2013年所有离开纽约的航班的准点率数据。

    图书馆(nycflights13)打印(航班)
    >打印(航班)#一个宠物猫:336776 x 19年月日dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay航母飞行tailnum起源dest air_time < int > < int > < int > < int > < int > <双> < int > < int > <双> <空空的> < int > <空空的> <空空的> <空空的> <双> 1 2013年1 1 517 515 2 830 819 11飞往洛杉机的联合航空1545班机N14228英文文宣写作研习营IAH 227 2 2013年1 1 533 529 4 850 830 1714 UA N24211 LGA IAH 227 3 2013年1 1 542 540 2 923 850 33 1141 AA N619AA肯尼迪MIA 160 #…多了336,766行,多了4个变量:distance , hour , minute , time_hour 

    例如,我们可以基于dep_time而且dep_delay变量:

    关口< -feature_columnscolumn_numeric“dep_time”),column_numeric“dep_delay”

    您还可以一次定义多个特征列。

    关口< -feature_columnscolumn_numeric“dep_time”“dep_delay”

    模式匹配

    通常,您会发现希望基于数据集名称中存在的某些模式生成许多特征列定义。tfestimators使用tidyselect包以方便定义特征列,类似于您可能在dplyr包中。您可以使用名称=的观点feature_columns ()函数定义将从中选择变量名的上下文。

    例如,我们可以使用ends_with ()Helper来断言所有以。结尾的列“时间”数值列如下:

    图书馆(nycflights13)关口< -feature_columns名称=航班,column_numericends_with“时间”))

    的名字parameter可以是具有as-is名称的字符向量,也可以是任何命名的R对象。

    方法来为给定的一组列名建立作用域,如果用于组合列的代码比较复杂,或者需要保存对列的引用以便在列嵌入中使用with_columns ()功能:

    关口< -with_columns(航班,{feature_columnscolumn_numericends_with“时间”))})

    您还可以使用表单的另一种语法(模式)~(列),当使用较长的模式规则时,它可以增加清晰度,因为它将匹配规则与列定义分离:

    关口< -with_columns(航班,{feature_columnsends_with“时间”column_numeric(),})

    可用的模式匹配操作符包括:

    操作符 描述
    starts_with () 以前缀开头
    ends_with () 以后缀结尾
    包含() 包含字面值字符串
    匹配() 匹配正则表达式
    one_of () 包含在字符向量中
    所有() 所有列

    看到Help ("select_helpers", package = "tidyselect")有关可提供的辅助程序集的详细信息tidyselect包中。