【发布时间】:2017-01-18 15:38:24
【问题描述】:
我使用 TensorFlow 高级 API tf.learn 为一系列二进制文本分类训练和评估 DNN 分类器(实际上我需要多标签分类,但目前我分别检查每个标签)。我的代码与tf.learn Tutorial非常相似
classifier = tf.contrib.learn.DNNClassifier(
hidden_units=[10],
n_classes=2,
dropout=0.1,
feature_columns=tf.contrib.learn.infer_real_valued_columns_from_input(training_set.data))
classifier.fit(x=training_set.data, y=training_set.target, steps=100)
val_accuracy_score = classifier.evaluate(x=validation_set.data, y=validation_set.target)["accuracy"]
准确度分数大致从 54% 到 90% 不等,验证(测试)集中的 21 个文档始终相同。
非常显着的偏差是什么意思?我知道有一些随机因素(例如辍学),但据我了解,模型应该收敛到最优。
我使用单词(引理)、二元组和三元组、情感分数和LIWC scores 作为特征,所以我确实有一个非常高维的特征空间,只有 28 个训练和 21 个验证文档。这会导致问题吗?除了收集更多的训练数据,我如何才能持续改进结果?
更新:为了澄清,我生成了一个包含出现单词和 n-gram 的字典,并丢弃了仅出现 1 次的那些,因此我只使用语料库中存在的单词(n-gram)。
【问题讨论】:
标签: machine-learning tensorflow classification deep-learning text-classification