使用AutoML(ml.net)识别准确性和已删除的功能

时间:2019-07-08 14:26:39

标签: machine-learning ml.net automl

我一直在玩ML.Net AutoML,并且受到了极大的欢迎。我仍然有一些问题,希望有人可以帮助或指导我解决一些问题。

问题1: 我有一个来自AutoML的经过训练的二进制分类模型。这导致了基于最高准确度的前5个算法列表,最后我得到了SdcaLogisticRegressionBinary二进制分类模型,其准确度为89%。

现在,当我进行评估时,准确性下降到84%。这是否意味着原始培训模型过度拟合了5%?可以公平地说,根据评估,我的模型的准确性不是89%,而是84%?

问题2: AutoML还会在培训期间根据需要删除功能。有没有办法检索最终模型中包含的功能的实际列表,例如确定删除了哪些功能并没有提高模型的准确性?

当我检查最终模型时,OutputSchema倾向于总是包含基于初始训练数据的所有功能。

1 个答案:

答案 0 :(得分:1)

  

这是否意味着原始训练模型过度拟合了5%?

此术语什么也没说,并且从未使用过。令人遗憾的是,“过度拟合”是当今被滥用的术语,几乎表示与次优绩效有关的所有事物。但是,实际上来说,过度拟合是非常特定的含义:它的标志性特征是您的验证损失开始增加,而训练损失则继续减少,即:

enter image description here

您的培训和验证准确性之间的5%“差额”是另一个故事(称为generalization gap),并且表示过度拟合。

  

根据评估结果,我的模型的准确度不是89%,而是84%,这是否公平?

您可能已经怀疑过,“准确度”本身是一个模棱两可的词;事实是,在实践中,当不使用任何其他指示符时,通常指的是 validation 准确性(实际上没有人担心训练准确性的确切值)。无论如何,正确的结果报告应该是-培训准确性为89%,验证准确性为85%。