我有一个全连接的神经网络,其中一个隐藏层有 2 个单元,其目标是对具有 324 个样本和 300 个特征的数据集进行分类。50% 的数据集用于训练,50% 用于测试。数据集中有两类,一类有 75 个样本,另一类有 249 个样本。当我用不同的种子训练模型时(实际上是在我重新运行训练函数时),它在测试集上的结果有很大的方差,测试集的分类准确率大约有 20% 的变化。模型有什么问题?我怎样才能使它稳定?我如何报告它的结果?
如此依赖初始化种子的神经网络模型有什么问题?
数据挖掘
神经网络
分类
权重初始化
2022-03-04 11:09:29
2个回答
您可以做的一件事是训练您的模型 N 次并报告准确度的平均值和标准偏差。
训练/测试拆分是否固定?这意味着,您是否对每次评估都使用相同的训练集?你有分层分裂吗?这意味着您的数据的类别不平衡也存在于训练和测试数据中。由于您的数据不平衡,假设您有一个拆分,其中大部分训练数据由 0 类组成,您的模型将学会通过始终预测 0 来实现低训练损失,但您将有很高的测试损失,因为您在您的测试集中有更多的 1 类样本。
它可能有助于检查您的预测。修复种子并分层你的分裂。
看来您的模型欠拟合。
数据序列的变化改变了它的学习路径,由于学习不完整(欠拟合),这个位置变成了基于路径的随机位置。
学习是否已完成,无论起始路径如何。它将到达相同的结束位置。
你不能依赖你得到的任何准确性。
工作没有完成。现在不要考虑报告策略
问题似乎与高维数据有关。
想象一个有 300 个维度但只有 150 个点的空间。任何模型都很难学习。
可以做什么 -
如果数据是稀疏的,请尝试使用 SVM 一次。
如果没有,请减小维度并简单地使用 RandomForest。
其它你可能感兴趣的问题