如何为TensorFlow分类器创建特征列

我有一个用于二元分类的非常简单的CSV数据集,格式如下:

"feature1","feature2","label"1,0,10,1,0...

其中"label"列表示类别(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.LinearClassifiertensorflow.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版本


回答:

你可以直接使用tf.feature_column.numeric_column :

feature_columns = [tf.feature_column.numeric_column(key = key) for key in X_train.columns]

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注