我刚开始机器学习,这可能是个愚蠢的问题。
我已经实现了我的模型和它的工作。关于在测试数据上运行它,我有一个问题。这是一个二元分类问题。如果我知道测试数据中类的比例,如何使用它来提高模型的性能或模型所做的预测。因此,假设75%属于1类,25%属于0类。
任何帮助都是非常感谢的。
发布于 2019-04-02 16:41:13
不,您的模型不应该知道您的测试数据,如果在您的培训中包含关于测试数据中的内容的线索,您将执行名为数据泄漏的操作。
数据泄漏会导致过度拟合,这将在特定的测试集上给出很好的结果,但不会推广到其他数据。
假设您在生产中部署了这个模型,并将它输入到它以前从未遇到过的实际数据中,由于我提到的这两种现象,预测将低于您在培训/测试阶段的预期。
我建议你在训练阶段多调整你的模型,也许更多地清理你的数据,如果目标类不平衡(例如,你在你的训练数据集中有90% / 10%的比例),选择更好的特性,做一些叫做过采样和欠采样的事情。
总之:调整您的模型,以便对测试数据进行良好的预测,尤其是,这不是一个好的实践,它将导致在未见数据上创建一个糟糕的模型。
发布于 2019-04-02 19:03:16
如果您的结果与预期不同,您应该查看单个错误,并使用这些错误来纠正机器学习。如果你用这个百分比,算法可能会学到与它应该学的完全不同的东西。
然而,如果你真的需要这样的统计数据(例如,因为你的机器学习应该了解它自己的错误,以及如何自动纠正它们),我建议在你的学习能力中增加另一个维度--比如‘信心’,它增加了参与到更好结果中的节点的数量,而当事情变得更糟时,涉及到的节点减少了。信心不足的节点可能变化更快或完全停止其活动。置信度高的节点不易发生变化。
由于没有详细说明使用哪种学习算法,节点可以是从表中的数据点到模拟神经元或单个连接的任何内容。
在一个更高的层次上,您的模型可能包含一个模块,该模块跟踪信任变化之间的联系。这将允许避免每次增加的周期总是随着其他地方的减少而来,反之亦然。或者是一个错误的回路,产生了错误的自信,破坏了你模型的其余部分的学习……因此,如果某一领域的信心增加5次,而下一轮对另一领域的信心下降6次(即长期结果更糟),则信心变化可能会有所不同。这一模块显然也将学会选择更好的影响什么时候-在正常的方式。
它将需要一些微调,然后该模块将使学习比通常的方法更快。为大量的测试集做好准备--或者是一个游戏,在这个游戏中,不同的模型会用相似的数据相互竞争,并且可能会使用进化的方法进行精细的调整。
你还应该确保你找到了一种用非典型数据来测试人工智能的方法--以及用一种方法来判断奇怪的结果是否是正确的,就像人类进行测试一样,然后得到解决方案。
https://datascience.stackexchange.com/questions/48459
复制相似问题