前言
metrics.confusion_matrix 是 scikit-learn 中用于计算混淆矩阵的函数。混淆矩阵是用于评估分类模型性能的重要工具,它可以展示模型在测试集上对每个类别的分类情况,有助于分析模型的误差类型和性能表现。
函数介绍
在实际使用中,可以通过以下方式调用 confusion_matrix 函数:
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_true, y_pred,labels = [0,1])
其中,y_true 是真实的类别标签,y_pred 是模型在测试集上预测的类别标签。confusion_matrix 函数将返回一个二维数组,行代表真实类别,列代表预测类别,数组中的元素表示对应类别的样本数量。
通过执行上述代码,可以得到一个 2x2 的混淆矩阵 cm,其中行代表真实类别,列代表预测类别。具体来说,cm[0, 0] 表示真实为 0 且被预测为 0 的样本数量,cm[0, 1] 表示真实为 0 但被预测为 1 的样本数量,cm[1, 0] 表示真实为 1 且被预测为 0 的样本数量,cm[1, 1] 表示真实为 1 且被预测为 1 的样本数量。
核心指标介绍
True Positive (TP):表示模型将正类样本正确地预测为正类的数量。
True Negative (TN):表示模型将负类样本正确地预测为负类的数量。
False Positive (FP):表示模型将负类样本错误地预测为正类的数量。
False Negative (FN):表示模型将正类样本错误地预测为负类的数量。
准确率(Accuracy):分类正确的样本数量占总样本数量的比例,计算公式为 (TP + TN) / (TP + TN + FP + FN)。
精确率(Precision):在模型预测为正类的样本中,真正为正类的比例,计算公式为 TP / (TP + FP)。
召回率(Recall):在所有真正为正类的样本中,被模型预测为正类的比例,计算公式为 TP / (TP + FN)。
F1 值(F1 Score):精确率和召回率的调和平均数,综合考虑了分类器的精度和召回率,计算公式为 2 * (Precision * Recall) / (Precision + Recall)。
重要分值函数介绍
metrics.accuracy_score
metrics.accuracy_score 是 scikit-learn 中用于计算分类准确率的函数。分类准确率是指分类模型在测试集上预测正确的样本数量与总样本数量之比,是评估分类模型性能的常用指标之一。
在实际使用中,可以通过以下方式调用 accuracy_score 函数:
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_true, y_pred)
其中,y_true 是真实的类别标签,y_pred 是模型在测试集上预测的类别标签。accuracy_score 函数将返回一个介于 0 和 1 之间的准确率值,表示模型在测试集上的分类准确率。
metrics.recall_score
metrics.recall_score 是 scikit-learn 中用于计算召回率(recall)的函数。召回率是指分类模型成功预测出正类样本的比例,也被称为灵敏度(sensitivity)或真正例率(true positive rate)。在某些情况下,召回率是评估分类模型性能的重要指标之一。
在实际使用中,可以通过以下方式调用 recall_score 函数:
from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
其中,y_true 是真实的类别标签,y_pred 是模型在测试集上预测的类别标签。recall_score 函数将返回一个介于 0 和 1 之间的召回率值,表示模型成功预测出正类样本的比例。
召回率的计算公式为 TP / (TP + FN),其中 TP 表示真正例(模型成功预测为正类的样本数量),FN 表示假反例(模型将正类样本错误地预测为负类的数量)。
metrics.precision_score
metrics.precision_score 是 scikit-learn 中用于计算精确率(precision)的函数。精确率是指分类模型在预测为正类的样本中,真正为正类的比例,也被称为查准率。精确率是评估分类模型性能的重要指标之一。
在实际使用中,可以通过以下方式调用 precision_score 函数:
from sklearn.metrics import precision_score
precision = precision_score(y_true, y_pred)
其中,y_true 是真实的类别标签,y_pred 是模型在测试集上预测的类别标签。precision_score 函数将返回一个介于 0 和 1 之间的精确率值,表示模型在预测为正类的样本中,真正为正类的比例。
精确率的计算公式为 TP / (TP + FP),其中 TP 表示真正例(模型成功预测为正类的样本数量),FP 表示假正例(模型将负类样本错误地预测为正类的数量)。
实战
from sklearn import metrics
cm = metrics.confusion_matrix(y_test, sklearn_predict, labels = [0,1])
print(cm)
Accuracy = metrics.accuracy_score(y_test, sklearn_predict)
Sensitivity = metrics.recall_score(y_test, sklearn_predict)
Precision = metrics.precision_score(y_test, sklearn_predict)
print('模型准确率为%.2f%%:' %(Accuracy*100))
print('正例覆盖率为%.2f%%' %(Sensitivity*100))
print('模型精确率为%.2f%%' %(Precision *100))

557

被折叠的 条评论
为什么被折叠?



