神经网络设计与实现
上QQ阅读APP看书,第一时间看更新

1.6.1 指标

选择用于评估算法的指标是机器学习过程中另一个极其重要的步骤。你还可以选择一种特定的指标作为算法要最小化的损失。损失是我们将算法预测与正确标准结果进行比较时对算法产生的误差的度量。损失非常重要,因为它决定了算法将如何评估其错误,从而决定了其如何学习将输入与输出映射的函数。

我们可以根据之前定义的问题类型,将指标划分为分类指标或回归指标。

1.回归指标

在Keras中,我们可以看到以下几个重要指标:

·均方误差:mean_squared_error,MSE或mse

·平均绝对误差:mean_absolute_error,MAE或mae

·平均绝对百分比误差:mean_absolute_percentage_error,MAPE或mape

·余弦接近度:cosine_proximity,余弦

在Keras中,只有在实例化模型后,才可以指定要优化的指标,即损失。在本书的后面,我们将介绍如何选择感兴趣的指标。

2.分类指标

在Keras中,我们可以找到以下分类指标:

·二元分类准确度:这可以衡量二元分类问题结果的准确度。在keras中,可以使用binary_accuracy和acc函数。

·ROC AUC:它衡量二元分类问题中的AUC。在keras中,可以使用categorical_accuracy和acc函数。

·分类准确度:它衡量多类分类问题结果的准确度。在keras中,可以使用categorical_accuracy和acc函数。

·稀疏分类准确度:它与分类准确的功能相同,但对于稀疏问题,应使用sparse_categorical_accuracy。

·前k个分类准确度:它可反馈前k个元素的准确度。在keras中,可以使用top_k_categorical_accuracy函数(参数k需自行指定)。

·稀疏前k个分类准确度:它可反馈稀疏问题前k个元素的准确度。在keras中,可以使用sparse_top_k_categorical_accuracy函数(参数k需自行指定)。

我们要确定的第一件事是,需要预测的类所在的数据集是平衡的还是不平衡的。如果数据集不平衡(例如,如果99%的案例都属于一类),精度和准确度等指标可能会产生偏差。在这种情况下,如果我们的系统始终预测最普遍的类,其精度和召回率都将看起来非常好,但系统就失去其价值了。这就是为什么我们建模时,选择有用的指标很重要。例如,在上述情况中,使用ROC AUC会更好,因为它关注我们算法的错误分类以及错误的严重程度。