Neural network TensorFlow:二进制分类精度

Neural network TensorFlow:二进制分类精度,neural-network,confusion-matrix,Neural Network,Confusion Matrix,在二元分类的背景下,我使用了一个带有1个隐藏层的神经网络,使用了tanh激活函数。输入来自word2vect模型,并已标准化 分类器的准确率在49%-54%之间 我使用了一个混乱矩阵来更好地理解正在发生的事情。研究了输入层特征数和隐层神经元数对精度的影响 从混淆矩阵中我可以观察到,模型根据参数进行预测,有时大多数线条为正,有时大多数线条为负 有没有关于为什么会发生这种情况的建议?除了输入大小和隐藏层大小之外,还有哪些点可能影响分类的准确性 谢谢鉴于您提供的信息,有点难以猜测。 标签是否平衡了50

在二元分类的背景下,我使用了一个带有1个隐藏层的神经网络,使用了tanh激活函数。输入来自word2vect模型,并已标准化

分类器的准确率在49%-54%之间

我使用了一个混乱矩阵来更好地理解正在发生的事情。研究了输入层特征数和隐层神经元数对精度的影响

从混淆矩阵中我可以观察到,模型根据参数进行预测,有时大多数线条为正,有时大多数线条为负

有没有关于为什么会发生这种情况的建议?除了输入大小和隐藏层大小之外,还有哪些点可能影响分类的准确性


谢谢

鉴于您提供的信息,有点难以猜测。 标签是否平衡了50%正面和50%负面?因此,这意味着你的人际网络根本没有训练,因为你的表现大致相当于随机表现。预处理过程中可能有错误吗?还是任务太难?训练集的大小是多少

我不认为神经元的数量是个问题,只要它是合理的,即数百或几千

或者,您可以尝试另一种损失函数,即交叉熵,它是多类分类的标准,也可用于二元分类:


希望这能有所帮助。

数据集很好地平衡,50%是正的,50%是负的

训练集形状为411426,X

训练集形状为68572,X

X是来自word2vec的功能的编号,我尝试使用[100300]之间的值

我有一个隐藏层,我测试的神经元数量在[100300]之间变化

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

不要添加答案;这不是一个对话。编辑你原来的问题。这比掷硬币好不了多少。你应该把神经网络放在一边,在做其他事情之前更好地理解你的数据。我还建议尝试逻辑回归。数据集很平衡,50%为正和负。训练集形状是411426,X训练集形状是68572,X X是来自word2vec的特征数,我尝试使用[100300]之间的值,我有一个隐藏层,我测试的神经元数在[100300]之间变化我还测试了许多更小的特征/神经元大小:2-20个特征和隐藏层上的10个神经元。我还使用交叉熵作为成本函数。我坚信标签或其他地方存在一些错误。假设您使用word2vec作为输入,那么您已经有了一个很好的表示。因此,我建议尝试使用线性模型SVM,如果任务可行,它肯定会提供比随机模型更好的性能。为此,了解任务是什么会有所帮助?希望一个深网能够解决这个问题是现实的吗?为了看看问题是来自我的神经网络实现还是输入数据,我使用了tf idf表示和to_稠密函数。TF-IDF的结果和参数的微小变化是78%的准确率。所以问题是因为我使用word2vec作为数据输入。用word2vec生成的模型似乎运行良好:model\u train.most\u similarpositive='tv':[“电影”,0.8289981484413147,“丘陵”,0.7655214071273804,“足球”,0.7631111054484009,“mtv”,0.7516076564788818,“剧集”,0.7510683536529541,“暮光之城”,0.7488611340522766,“电影”,0.7444069981575012,“引用”,0.7419215440750122,“dvd”,0.7418527603149414,…]那么问题可能来自数据的差异?我如何检查这一点?