机器学习之模型评估——混淆矩阵,交叉验证与数据标准化
目录
混淆矩阵
交叉验证
数据标准化
0-1标准化
z 标准化
混淆矩阵
混淆矩阵(Confusion Matrix)是一种用于评估分类模型性能的工具。 它是一个二维表格,其中行表示实际的类别,列表示模型预测的类别。 假设我们有一个二分类问题(类别为正例和反例),混淆矩阵可能如下所示:
真实值=1 | 真实值=0 | |
---|---|---|
预测值=1 | 真正例(TP) | 假反例(FN) |
预测值=0 | 假正例(FP) | 真反例(TN) |
在多分类问题中,混淆矩阵会相应地扩展为一个多维表格。 通过混淆矩阵,可以计算出一些重要的评估指标,如准确率(Accuracy)、精确率(Precision)、召回率(Recall)和 F1 值等。
Accuracy (准确率):(TP + TN) / (TP + TN + FP + FN)
Precision (精确率)(针对某一类):TP / (TP + FP)
Recall (召回率):TP / (TP + FN)
F1 值:2 * (Precision * Recall) / (Precision + Recall)
混淆矩阵能够直观地展示模型在各个类别上的分类情况,帮助我们发现模型可能存在的偏差或错误模式,从而进一步优化模型。
举个例子,根据下面的预测结果列出混淆矩阵,并计算出准确率、精确率、召回率和 F1 值
Accuracy (准确率):3/5
Precision (精确率)(针对某一类):5/9
Recall (召回率):5/9
F1 值:5/9
交叉验证
交叉验证(Cross Validation)是一种用于评估机器学习模型性能和选择合适模型参数的技术。目的是更有效地利用有限的数据,得到对模型性能更可靠和稳健的估计。
其基本思想是将原始数据划分为多个子集,然后在不同的子集组合上进行训练和验证,以全面评估模型在不同数据分布下的表现。
K 折交叉验证(K-Fold Cross Validation)是交叉验证的常见形式之一。在 K 折交叉验证中,将数据集随机地分成 K 个大小大致相等的子集(称为 “折”)。然后,进行 K 次训练和验证:在每次迭代中,选择其中一个子集作为验证集,其余的 K - 1 个子集作为训练集。这样,每个子集都有机会作为验证集,最终得到 K 个模型性能的评估结果。
例如,如果 K = 5,那么数据被分为 5 份。
第一次,第 1 份作为验证集,2 - 5 份作为训练集;
第二次,第 2 份作为验证集,1、3 - 5 份作为训练集,以此类推。
最后,将这 K 次评估结果的平均值作为模型性能的估计。
K 折交叉验证的优点包括:
-
更充分地利用数据,减少了由于数据划分导致的偏差。
-
能够对模型的稳定性和泛化能力进行更可靠的评估。
通过 K 折交叉验证,可以更好地选择模型参数,避免过拟合或欠拟合,从而提高模型在新数据上的表现。
数据标准化
0-1标准化
0-1标准化也叫离差标准化,是对原始数据的线性变换,使结果映射到[0,1]区间。
z 标准化
z标准化这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’