在Python中,模型评估指标是衡量机器学习模型性能的关键工具。以下是一些常用的评估指标及其计算方法:
准确率是模型正确预测的样本数占总样本数的比例。它是最直观的性能指标之一,但在类别不平衡的情况下可能会产生误导。
from sklearn.metrics import accuracy_score
y_true = [0, 1, 1, 0, 1, 0] # 实际标签
y_pred = [0, 1, 0, 0, 1, 1] # 预测标签
accuracy = accuracy_score(y_true, y_pred)
print(f'Accuracy: {accuracy}')
精确率是指在所有被模型预测为正类的样本中,实际为正类的比例。它关注的是假正例(FP)对结果的影响。
from sklearn.metrics import precision_score
precision = precision_score(y_true, y_pred)
print(f'Precision: {precision}')
召回率表示在所有实际为正类的样本中,模型能够正确识别出的比例。它关注的是假负例(FN)对结果的影响。
from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
print(f'Recall: {recall}')
F1分数是精确率和召回率的调和平均数,用于综合评估模型的性能。它考虑了精确率和召回率两个指标的重要性,并给出了一个单一的度量值。
from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred)
print(f'F1 Score: {f1}')
混淆矩阵是一个表格,总结了分类模型的表现,通过比较预测值和实际值。它为我们提供了一个模型表现的直观表示,帮助识别模型的错误之处。
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_true, y_pred)
print(cm)
ROC曲线展示了模型在不同阈值下的真正例率(Recall)与假正例率(False Positive Rate, FPR)之间的关系。AUC是ROC曲线下的面积,AUC值越接近1,模型的表现越好。
from sklearn.metrics import roc_auc_score, roc_curve
fpr, tpr, thresholds = roc_curve(y_test, y_prob)
roc_auc = auc(fpr, tpr)
plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (area = {roc_auc:.2f})')
plt.show()
这些指标可以帮助你全面评估模型的性能,选择合适的评估指标对于理解模型性能和适应不同任务至关重要。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。