功能
通過tensorflow 預定義的feature column 達到特征處理的功能.
工作流程:
- tesnsorflow dataset 產生迭代器返回解析后的tensor dict (即input_fn)
- 預定義 tensor dict 中(key, tensor) 的轉化方式, 生成feature column
- 通過input_layer(feature_dict, feature_column) 生成轉化后的feature 供模型使用
p.s. 官網圖中的input_layer函數實際上是在DNNClassifier中. 因此feature_column只是類似於定義一個函數操作. 數據處理則在DNNClassifier model_fn中.
feature column 類型
常用feature column
官方提供了常用的9種(上圖下層)feature column, 用於特征處理. 通過這九種操作最終都會得到 category column / dense column 對象.
常用操作
首先我們需要知道, 可以將tensor 處理, 並輸入模型的只有dense column. categorical column 只是轉化的中間結果.
其次:
- category column 可以輸入cross_column 生成交叉后的category column
- category column 可以作為embedding column, indicator_column 的輸入, 轉換為dense column
- embedding_column 可以通過share_embedding_column共享參數.(操作見另一篇博客)
其他操作
tf.contrib.feature_column 中包含了關於sequence tensor 的處理方式. 與之對應需要通過sequence_input_layer進行解析