tensorflow カテゴリデータのfeature column

画像や音声の話題が多いtensorflowですが、数値やカテゴリーデータの記事が少ないかもしれません。
以下はCSVファイルを読み込み、
COL1~COL4までは数値なのですが、カテゴリデータ、COL5を数値として扱います。
これらCOL1~COL5までの説明変数で、目的変数Yを推定させるというコード。

かなりぐちゃぐちゃなデータでも、割と簡単に推定してくれました。

import numpy as np
import pandas as pd
import tensorflow as tf
import scipy.stats as sp

steps=1
n_epochs=1

hidden_u=[500]

#モデルの保存フォルダを指定。estimatorのパラメータとなる。
md='/home/hiroshi/TEMP_TENSORFLOW'

dat=pd.read_csv('test.csv').dropna()
Y_COL='Y'
Y=dat[Y_COL]

#################################################################################
#カテゴリーデータを扱う場合。(入力が数値で、扱いがカテゴリーの場合)
COL1=tf.feature_column.embedding_column(tf.feature_column.categorical_column_with_hash_bucket("COL1",hash_bucket_size=999999,dtype=tf.int64),1)
COL2=tf.feature_column.embedding_column(tf.feature_column.categorical_column_with_hash_bucket("COL2",hash_bucket_size=999999,dtype=tf.int64),1)
COL3=tf.feature_column.embedding_column(tf.feature_column.categorical_column_with_hash_bucket("COL3",hash_bucket_size=999999,dtype=tf.int64),1)
COL4=tf.feature_column.embedding_column(tf.feature_column.categorical_column_with_hash_bucket("COL4",hash_bucket_size=9,dtype=tf.int64),1)

#数値データを扱う場合
COL5=tf.feature_column.numeric_column("COL5")

#feature columnを定義する
fc=[COL1,COL2,COL3,COL4,COL5]
#################################################################################

FEATURES=["COL1","COL2","COL3","COL4","COL5"]
X=dat.loc[:,FEATURES]


my_input_fn = tf.estimator.inputs.pandas_input_fn(
        x=X,
        y=Y,
        num_epochs=n_epochs,
        shuffle=False
        )

estimator = tf.estimator.DNNRegressor(
        feature_columns=fc,
        hidden_units=hidden_u,
        model_dir=md
        )

estimator.train(input_fn=my_input_fn,steps=steps)


#成績の表示
train_metrics=estimator.evaluate(input_fn=my_input_fn)
print(train_metrics["global_step"],"回目の学習  ave_loss:",train_metrics["average_loss"])

#テストデータの作成
temp_test_input_fn = tf.estimator.inputs.pandas_input_fn(
        x=pd.DataFrame({"COL1":[123],"COL2":[456],"COL3":[789],"COL4":[10],"COL5":[500]}),
        y=None,
        num_epochs=1,
        shuffle=False
        )

temp_ar=[]
temp_test_metrics=estimator.predict(input_fn=temp_test_input_fn)
for p,q in enumerate(temp_test_metrics):
    temp_ar.append(q['predictions'].item(0))
print('推定結果:',temp_ar)