我有两个机器学习模型(我使用 LSTM),它们在验证集(~100 个样本数据)上有不同的结果:
- 模型 A:准确度:~91%,损失:~0.01
- 模型 B:准确度:~83%,损失:~0.003
两种型号的尺寸和速度几乎相同。那么,我应该选择哪种型号?
我有两个机器学习模型(我使用 LSTM),它们在验证集(~100 个样本数据)上有不同的结果:
两种型号的尺寸和速度几乎相同。那么,我应该选择哪种型号?
您应该选择模型 A。损失只是准确性的可微分代理。
也就是说,应该更详细地检查这种情况。如果较高的损失是由于数据项造成的,请检查产生高损失的数据并检查是否存在过度拟合或不正确的标签。
如果较高的损失是由于正则化器造成的,那么降低正则化因子可能会进一步改善结果。
您应该注意,您的两个结果都与 87% 准确度的“真实”概率一致,并且您对这些模型之间差异的测量在统计上不显着。随机应用 87% 的准确度,如果样本是从目标人群中随机选择的,那么有大约 14% 的机会获得您偶然观察到的两个极端准确度,并且模型足够不同,可以有效地随机产生错误。不过,最后一个断言通常不正确,因此您可以放松一点——也就是说,除非您在每种情况下都采用不同的随机切片进行交叉验证。
100 个测试用例并不足以辨别模型之间的细微差异。我建议使用 k 折交叉验证来减少准确性和损失估计中的错误。
此外,在这两种情况下检查交叉验证拆分是否相同也很重要。如果您使用了标准工具的自动拆分并且没有设置适当的 RNG 种子,那么您可能每次都得到不同的集合,并且您的结果只是显示由于验证拆分而导致的差异,这可能会完全淹没两者之间的任何差异模型。
但是,假设每次都使用完全相同的数据集,并且它是目标人群的代表性样本,那么平均而言,您应该期望具有最佳指标的数据集最有可能成为最佳模型。
你真正应该做的是在实验之前决定选择基于哪个指标。该指标应与模型的某些业务目标相匹配。
现在您正在尝试事后选择,您应该回到最初创建模型的原因,看看您是否可以识别正确的指标。它可能不是准确性或损失。
这取决于您的应用程序!想象一个总是非常“自信”的二元分类器——它总是将 P=100% 分配给 A 类,将 0% 分配给 B 类,反之亦然(有时是错误的,从不不确定!)。现在想象一个“简陋”的模型,它可能不太准确,但它的概率实际上是有意义的(当它说“A 类概率为 70%”时,它在 30% 的情况下是错误的)。
在您的情况下,两种损失都非常小,因此我们可能更喜欢更准确的损失。