在机器学习中,人们通常指的是“模型的性能”或“优化器的性能”。“性能”的确切定义是什么?“优化器的性能”是什么?
我知道有一些方法可以衡量机器学习模型的当前预测与预期的预测相差多远:例如,您可以衡量模型的准确性、困惑度等。这就是 ML 模型的性能所指的吗? 它是指衡量模型预测(或一般而言,输出)正确性的任何方法的名称吗?或者性能实际上是执行预测所需的时间?或者是其他东西?
在机器学习中,人们通常指的是“模型的性能”或“优化器的性能”。“性能”的确切定义是什么?“优化器的性能”是什么?
我知道有一些方法可以衡量机器学习模型的当前预测与预期的预测相差多远:例如,您可以衡量模型的准确性、困惑度等。这就是 ML 模型的性能所指的吗? 它是指衡量模型预测(或一般而言,输出)正确性的任何方法的名称吗?或者性能实际上是执行预测所需的时间?或者是其他东西?
在没有任何具体说明的情况下,“性能”只是“质量”的同义词。
“我想要一个性能更好的模型”这句话与“我想要一个更高质量的模型”这句话本质上是一样的。读者明白,演讲者对模型解决某些特定问题的能力不满意,但读者不知道,确切地说,模型不满意的地方是什么。该模型是否预测太多误报?还是假阴性?它是否为具有倾斜地平线的图像或在阴天拍摄的图像预测错误的类别?了解模型需要改进的地方需要进一步的具体阐述。
同样,如果有人说 Adam 比另一个优化器有更好的性能,他们就声称 Adam 在某些任务上做得更好,他们必须指定这一点才能评估该声明的真实性。评估优化器性能的一种方法是需要多少次迭代才能达到最小值附近的某个邻域;另一个是机器学习分类器特有的,是优化器获得的解决方案对样本外数据的泛化程度。
性能不包含正式定义,它主要取决于但不限于:
使用一个或另一个度量将取决于您是尝试预测连续变量还是离散变量。其中一些是:准确度、召回率、精度、R2、F-Measure、均方误差等。
为了明确这一点,假设您正在研究信用卡欺诈机器学习算法,您想要预测欺诈交易的数量。评估算法的运行情况:a) 了解上下文 b) 了解适用于问题的指标
a) 我们正在处理一个分类问题;交易可以是欺诈也可以不是(目标是离散变量)。我们很可能会面临一个高度不平衡的数据集,因为大多数信用卡交易都是非欺诈性的。
b) 由于这是一个分类问题,我们可以丢弃所有与连续变量相关的指标(例如,R2 和 MSE)。此外,由于可能存在的不平衡,我们也可以丢弃 Accuracy 度量。这给我们留下了两个指标:召回率和精度。我们从理论上知道这两个指标是一种权衡(如果我增加一个,另一个会减少)。召回将有助于检测可能存在的主要欺诈交易。精确度将有助于避免错误分类的欺诈行为。
最后,在考虑了前面的事情之后,我们的效果如何,最终将取决于我们的目标是什么:
希望这可以为您提供更好的见解。
正如另一个答案正确指出的那样,机器学习模型的性能没有通用的定义或衡量标准。相反,性能指标高度依赖于所构建模型的领域和最终目的。ML 模型的性能只是它在特定任务中的“好”程度,但“好”的定义可以有多种形式。一个“好”的模型可以是一个预测良好的模型、一个快速训练的模型、一个找到稳健解决方案的模型,或者上述的任意组合。
例如,用于医学筛查测试的算法应该是高度敏感的——我们希望捕获所有可能的疾病病例,但代价是误诊了一些实际上并没有生病的人。这些人可以继续进行进一步的测试,以优化其他指标,如阳性预测值,表明阳性测试结果可能是实际患有疾病的结果。根据测试的目的,我们可能希望更多地关注真正的正面/负面,而代价是另一边的错误。
性能也可以是所使用的误差度量的函数。假设您的分类器以连续比例输出值,然后对二进制分类进行阈值处理。您是否只关心点是否位于边界的正确一侧(精度度量)?或者您是否关心您错过了错误分类点 (RMSE) 的严重程度?没有通用的最佳方法来优化性能。