这里有组合多个评价指标的另一个方法。
假设你同时关系算法的精度和运行时间。你需要在如下分类器中进行选择:
分类器 精度 运行时间
A 90% 80ms
B 92% 95ms
C 95% 1,500ms
如果将精度和运行时间按照下面的公式进行组合可能看起来不太自然:
精度 - 0.5*运行时间
你可以这样做:首先定义一个可接受(acceptable)的运行时间。例如任何运行时间在100ms内都是可以接受的。然后再在满足运行时间要求的分类器中选择精度最高的。在这里运行时间就是一个“满足指标(satisficing metric)”,你的分类器只要在这个指标上表现的足够好即可,这意味着你的算法最多耗时100ms,而准确率是一个“优化指标(optimizing metric)”。
如果你正在权衡N个不同的标准,比如模型文件的大小(这对移动APP很重要,因为大多数用户都不想下载过大的APP)、运行时间和准确率。你可以考虑将其中N-1个标准设置为“满足指标”,然后将最后一个指标定义为“优化指标”。如,你将模型文件的大小,和运行时间设置为一个可接受的阈值,然后在这些约束下不断优化你的算法准确度。
在最后一个例子中,假设你正在构建一个硬件设备,该设备使用麦克风监听用户说出的某个词作为特定的“唤醒词语(wakeword)”,从而唤醒系统。例如:Amazon Echo监听“Alexa”;苹果Siri监听“Hey Siri”;Android监听“Okay Google”;百度app监听“Hello Baidu”。你同时关心假正例的比例(the false positive rate)——当没有人说出唤醒词系统唤醒的频率, 和假反例的比例(the false negative rate)——有人说出唤醒词但是系统没有唤醒的频率。 该系统性能的一个合理目标是最大限度的减少误报率(优化指标),同时满足每24个小时操作不会出现一个假正例(满足指标)。
一旦你的团队按照评估指标进行优化,那你们肯定可以更快的取得进展。