feature_columns

Feature columns

输入, 特征与模型

回想使用xgboost等机器学习模型训练时, 拿到的数据集中有各种数值型类别型等初始特征. 一般来说, 我们拿到数据集后, 不会直接就上模型开始训练了, 而是在经过细致的数据分析后, 确定特征工程的思路, 对每个原始特征进行转换, 得到新的特征. 例如:

  • 数值型特征

    • Normalization

    • 分箱, 离散化

  • 类别型特征

    • one-hot

    • multi-hot

    • 查找Embedding矩阵, 将每种类型转换为对应的Embedding向量

  • 交叉: 两两特征之间交叉产生新的特征

经过转化得到新特征, 此时的数据集是一个数值类型的稠密矩阵, 才能feed给神经网络. 从数据流的角度来看, 输入是原始数据中的每一列, 而模型需要是的稠密矩阵作为输入层, 而原始输入稠密矩阵输入层之间的连接, 或者说特征工程部分, 可以通过tf.feature_columns模块完成.

因此总结为feature_columns的作用总结为: feature_columns是原始数据和模型之间的桥梁. 这里的模型可以是Estimator API构建的模型, 也可以是用朴素的tensorflow或keras构建的模型, 两者相比只是在使用tf.feature_columns的方法上有所区别. 后续内容会体现出这个细节, 整体来是tf.feature_columns与Estimator API配合使用更为方便.

参考资料

最后更新于

这有帮助吗?