TensorFlow:二进制分类精度

时间:2017-01-15 12:11:17

标签: neural-network confusion-matrix

在二元分类的上下文中,我使用具有1个隐藏层的神经网络,使用tanh激活函数。输入来自word2vect模型并被标准化。

分类器准确度在49%-54%之间。

我使用混淆矩阵来更好地了解正在发生的事情。我研究了输入层中特征数的影响和隐藏层中神经元的数量对准确性的影响。

我可以从混淆矩阵中观察到的事实是,模型基于参数预测有时大部分线条为正面,有时大部分时间为负面。

有关此问题发生原因的任何建议吗?哪些其他点(输入大小和隐藏层大小除外)可能会影响分类的准确性?

由于

2 个答案:

答案 0 :(得分:0)

根据您提供的信息,有点难以猜测。 标签是否平衡(50%为正数,50%为负数)?因此,这意味着您的网络根本不会进行培训,因为您的性能大致与随机性能相对应。预处理中是否有错误?或者这个任务太难了?什么是训练集大小?

我不相信神经元的数量是问题,只要它是合理的,即数百或几千。

或者,您可以尝试另一种损失函数,即交叉熵,这是多类分类的标准,也可以用于二进制分类: https://www.tensorflow.org/api_docs/python/nn/classification#softmax_cross_entropy_with_logits

希望这有帮助。

答案 1 :(得分:-2)

数据集平衡良好,50%正面和负面。

训练集形状为(411426,X)

训练集形状为(68572,X)

X是来自word2vec的功能编号,我尝试使用[100,300]

之间的值

我有1个隐藏层,我测试的神经元数量在[100,300]

之间变化

我还测试了较小的特征/神经元大小:隐藏层上的2-20个特征和10个神经元。 我还使用交叉熵作为成本函数。