03-1.3 单一量化评估指标
无论你是选择调整超参数,或是选择不同的机器学习算法,还是在构建机器学习系统时,尝试不同的配置项。你都会发现,如果你有单一的量化评估指标,可以让你知道新的方法比上一次是更好还是更糟,那么整个进程会加快很多。所以当团队在启动一个机器学习项目时,我常常建议,设置一个单一的量化评估指标。我们来看个例子。
我之前有说过应用机器学习,有一个非常经典的流程。我们通常是先有一个想法,用代码实现它,再实验验证它的效果,然后通过验证的结果来改进之前的想法,不断的在这个循环中改进你的算法。
让我们举个例子。你构建了某个分类器A,通过调整超参和训练集或者其他什么方法,你训练得到了一个新的分类器B。这时一个合理的评估你分类器好坏的方法,就是去看它的精确率和召回率。不用太关心这个例子中的精准率和召回率究竟是什么。简单地说,对于你那个分类器,精确率就是它识别出是猫的集合中有多少百分比真正是猫。因此如果分类器A有95%的精准率,就意味着,A如果把一张图片分类为猫,那么95%可能它就是猫。而召回率就是,对于所有是猫的图片,你的分类器有多少百分比可以正确的识别出来,即多少比率的真猫正确的识别出了。因此如果分类器A的召回率是90%,意味着你验证集中真猫的图片,分类器A正确分出了90%。不用太在意精准率和召回率的定义,事实证明你常常要在这两者之间做权衡,需要同时关注这两个指标。你要的是,当分类器说它是猫时,它有很高的可能性是猫。而对于所有真正是猫的图片,你同样希望分类器可以把绝大多数都识别出来。所以使用精准率和召回率来评估分类器,看起来应该是合理的。问题就在于把他们作为评估指标时,如果分类器A的召回率比较好,像这里,而分类器B的精准率更好些,你就不能确定究竟哪个分类器更好了。
并且如果你尝试许多不同的算法 就会有许多超参数,你就不止从两个分类器中选择,可能需要从十几个中快速地选出最好的那个,以便你可以在这个基础上继续迭代。当有两个评估指标时,快速找出最好的那个会很困难。因此我的建议是与其使用两个数字,精准率和召回率来选择分类器,不如找一个新的评估指标,它兼顾了精准率和召回率。
在机器学习领域,标准的方法是使用F1分数。F1分数的细节并不重要,简单的说,你可以把它理解为精准率P和召回率R的一种平均值。F1分数的计算公式是2/(1/P+1/R),在数学里,这个方程被称为精准率P和召回率R的调和平均数。但通俗一些的说,你还是可以把这理解为精准率和召回率的某种平均。只是我们不使用算术平均数,而是使用像上面公式那样的调和平均数。它在权衡精准率和召回率时是很好用的。
像这个例子,你可以立刻发现分类器A的F1分数更高。如果F1分数是一个整合精准率和召回率的合理方法,你就可以很快的在这里选择分类器A。我发现,许多机器学习的团队都有一个很好的验证集,来评估精准率和召回率,和一个单一量化评估指标。有时候我们会称之为single row number。这个评估指标可以帮你快速判断哪个分类器更好,所以一个好的验证集和单一量化评估指标,可以提高迭代的效率。它加速整个流程 让你的机器学习算法不断改进。
我们来看另一个例子。假如你做了一个关于猫的应用,给四个主要地区的猫的爱好者,美国、中国、印度和其他。你的两个分类器在这四个地区的数据上,有不同的错误率。算法A在美国用户提交的图片上达到了3%的错误率等等。可能追踪每个不同地区上你分类器的效果,是有道理的。但是同时考量4个数字,让你快速的确定,分类器A好还是B好会很困难。并且如果你同时测试许多不同的分类器,那将会更加困难。因此在这个例子中我建议,除了追踪4个不同地区的表现,应该同时关注它们的平均值。平均表现是一个合理的单一量化评估指标。通过计算平均值,你可以很快的看出似乎C的错误率更低,然后你就可以继续对于它做改进了。你必须选择一个算法并且不断的对它进行迭代。
在进行机器学习类工作的时候,常常先有一个想法,然后实现它,然后你想要知道你的想法是否有效。所以在这节课中你学到找一个单一量化评估指标,可以很好的提高你的效率,让你的团队可以更快速地做决策。
到目前为止,我们还没有讨论完如何有效设置评估指标。下一节课程,我将和你分享如何设置优化和满意度矩阵。让我们来看下一个视频。