假设我使用神经网络进行 2 类分类。用训练集训练网络后,我想预测没有类标签的数据集的类标签。现在通过再训练,相同的数据集给出了不同的结果。例如,在一次训练中,一个样本给出了属于第 1 类的输出,而在另一次训练中,它给出了属于第 2 类的输出。那么应该将哪个值作为正确的值?
在训练神经网络的多个会话中应该取哪个输出值
数据挖掘
分类
神经网络
监督学习
2022-03-10 19:30:45
1个回答
这是大多数分类器的正常行为。机器学习不能保证 100% 的准确率,直接后果是分类器会出错。不同的分类器,即使在相同的数据上进行训练,也会犯不同的错误。具有不同起始权重的神经网络通常每次都会收敛到略有不同的结果。
另外,也许在您的问题中,分类是在某些范围内的人为构造(例如“汽车”与“面包车”或“安全”与“危险”),在这种情况下,一种情况下的错误是完全合理和预期的?
您应该使用您最信任的分类器中的值。要确定是哪一个,请在保留集(您知道真实标签的地方)上使用交叉验证,并使用具有最佳准确度的分类器或其他指标,例如对数损失或 ROC 下的面积。您应该更喜欢哪个指标取决于问题的性质以及犯错的后果。
或者,您可以查看对类别概率进行平均以确定最佳预测——也许一个分类器对类别分配非常有信心,而另一个则没有,因此第一个分类器将采用平均值。某种模型聚合通常会提高准确性,并且在例如 Kaggle 比赛中很常见,当您想要尽可能高的分数并且不介意额外的努力和成本时。但是,如果您想使用聚合来解决您的问题,您应该再次使用验证和合适的指标来测试您的假设,以便您知道它是否真的是一种改进。
其它你可能感兴趣的问题