我在csv文件中有一个非常简单的二进制分类数据集,如下所示:
"feature1","feature2","label" 1,0,1 0,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.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)
那么,feature_columns
当所有特征都是二进制(0或1是唯一可能的值)时,我应该如何创建?
这是模型培训:
classifier.fit(X_train.values,
y_train.values,
batch_size=dnn_batch_size,
steps=dnn_steps)
fit()
用输入函数替换参数的解决方案也很棒.
谢谢!
PS我正在使用TensorFlow版本1.0.1
您可以直接使用tf.feature_column.numeric_column:
feature_columns = [tf.feature_column.numeric_column(key = key) for key in X_train.columns]