Python 模型评估:从准确率到混淆矩阵
模型评估是机器学习中非常重要的一部分,它可以帮助我们了解模型的优劣和适用性。在 Python 中进行模型评估可以使用各种指标和方法,下面我们介绍一些常用的模型评估方法。
- 准确率
准确率是最常用的模型评估指标,它表示模型预测正确的样本比例。在 Python 中,可以使用 sklearn 库中的 accuracy_score 方法来计算准确率,示例代码如下:
from sklearn.metrics import accuracy_score y_true = [0, 1, 0, 1, 1] y_pred = [0, 1, 1, 1, 0] accuracy = accuracy_score(y_true, y_pred) print("Accuracy: {:.2f}".format(accuracy))
输出结果为:
Accuracy: 0.60
- 混淆矩阵
混淆矩阵是一种可视化模型性能的方法,它可以将模型的预测结果与真实标签进行比较,并展示出分类中的真阳性、假阳性、真阴性和假阴性。在 Python 中,可以使用 sklearn 库中的 confusion_matrix 方法来计算混淆矩阵,示例代码如下:
from sklearn.metrics import confusion_matrix y_true = [0, 1, 0, 1, 1] y_pred = [0, 1, 1, 1, 0] confusion = confusion_matrix(y_true, y_pred) print("Confusion Matrix:\n", confusion)
输出结果为:
Confusion Matrix: [[1 1] [1 2]]
混淆矩阵的行表示真实标签类别,列表示模型预测类别。矩阵中的每个元素代表了真实标签和模型预测结果的组合,如上面的混淆矩阵表示,真阳性为1个,真阴性为2个,假阳性为1个,假阴性为0个。
- 精度、召回率和 F1 值
精度、召回率和 F1 值是常用的分类问题评估指标,它们可以帮助我们进一步了解模型的性能。在 Python 中可以使用 sklearn 库中的 precision_score、recall_score 和 f1_score 方法来计算精度、召回率和 F1 值,示例代码如下:
from sklearn.metrics import precision_score, recall_score, f1_score y_true = [0, 1, 0, 1, 1] y_pred = [0, 1, 1, 1, 0] precision = precision_score(y_true, y_pred) recall = recall_score(y_true, y_pred) f1 = f1_score(y_true, y_pred) print("Precision: {:.2f}".format(precision)) print("Recall: {:.2f}".format(recall)) print("F1 Score: {:.2f}".format(f1))
输出结果为:
Precision: 0.67 Recall: 0.67 F1 Score: 0.67
- ROC 曲线和 AUC
ROC 曲线和 AUC 是评估二分类模型性能的常用方法,它们可以帮助我们了解模型对于正例和负例的分类准确性。在 Python 中,可以使用 sklearn 库中的 roc_curve 和 auc 方法来计算 ROC 曲线和 AUC 值,示例代码如下:
from sklearn.metrics import roc_curve, auc import matplotlib.pyplot as plt y_true = [0, 1, 0, 1, 1] y_score = [0.1, 0.8, 0.3, 0.6, 0.7] fpr, tpr, thresholds = roc_curve(y_true, y_score) roc_auc = auc(fpr, tpr) plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc) plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver operating characteristic') plt.legend(loc="lower right") plt.show()
输出结果为:
ROC 曲线的横轴为假阳性率(FPR),纵轴为真阳性率(TPR),AUC 值越大代表模型的性能越好。
以上就是Python模型评估中常用的几种方法,它们可以帮助我们了解模型性能、优化模型并提升模型预测能力。
相关文章