如何为 TensorFlow 分类器创建特征列
How to create feature columns for TensorFlow classifier
我在 csv 文件中有一个非常简单的二进制 classification 数据集,如下所示:
"feature1","feature2","label"
1,0,1
0,1,0
...
其中 "label"
列表示 class(1 为正数,0 为负数)。特征的数量实际上相当多,但对于那个问题来说并不重要。
这是我读取数据的方式:
train = pandas.read_csv(TRAINING_FILE)
y_train, X_train = train['label'], train[['feature1', 'feature2']].fillna(0)
test = pandas.read_csv(TEST_FILE)
y_test, X_test = test['label'], test[['feature1', 'feature2']].fillna(0)
我想 运行 tensorflow.contrib.learn.LinearClassifier
和 tensorflow.contrib.learn.DNNClassifier
那个数据。例如,我这样初始化 DNN:
classifier = DNNClassifier(hidden_units=[3, 5, 3],
n_classes=2,
feature_columns=feature_columns, # ???
activation_fn=nn.relu,
enable_centered_bias=False,
model_dir=MODEL_DIR_DNN)
那么当所有特征也是二元的(0 或 1 是唯一可能的值)时,我应该如何创建 feature_columns
?
下面是模型训练:
classifier.fit(X_train.values,
y_train.values,
batch_size=dnn_batch_size,
steps=dnn_steps)
用输入函数替换 fit()
参数的解决方案也很好。
谢谢!
P.S。我正在使用 TensorFlow 版本 1.0.1
我刚刚找到了解决方案,它非常简单:
feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(X_train)
显然 infer_real_valued_columns_from_input()
适用于分类变量。
可以直接使用 tf.feature_column.numeric_column :
feature_columns = [tf.feature_column.numeric_column(key = key) for key in X_train.columns]
我在 csv 文件中有一个非常简单的二进制 classification 数据集,如下所示:
"feature1","feature2","label"
1,0,1
0,1,0
...
其中 "label"
列表示 class(1 为正数,0 为负数)。特征的数量实际上相当多,但对于那个问题来说并不重要。
这是我读取数据的方式:
train = pandas.read_csv(TRAINING_FILE)
y_train, X_train = train['label'], train[['feature1', 'feature2']].fillna(0)
test = pandas.read_csv(TEST_FILE)
y_test, X_test = test['label'], test[['feature1', 'feature2']].fillna(0)
我想 运行 tensorflow.contrib.learn.LinearClassifier
和 tensorflow.contrib.learn.DNNClassifier
那个数据。例如,我这样初始化 DNN:
classifier = DNNClassifier(hidden_units=[3, 5, 3],
n_classes=2,
feature_columns=feature_columns, # ???
activation_fn=nn.relu,
enable_centered_bias=False,
model_dir=MODEL_DIR_DNN)
那么当所有特征也是二元的(0 或 1 是唯一可能的值)时,我应该如何创建 feature_columns
?
下面是模型训练:
classifier.fit(X_train.values,
y_train.values,
batch_size=dnn_batch_size,
steps=dnn_steps)
用输入函数替换 fit()
参数的解决方案也很好。
谢谢!
P.S。我正在使用 TensorFlow 版本 1.0.1
我刚刚找到了解决方案,它非常简单:
feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(X_train)
显然 infer_real_valued_columns_from_input()
适用于分类变量。
可以直接使用 tf.feature_column.numeric_column :
feature_columns = [tf.feature_column.numeric_column(key = key) for key in X_train.columns]