机器学习输出模型AUC、准确度、精确度、召回率、F1-score的代码
时间: 2024-09-10 10:03:29 浏览: 55
机器学习基础概念:查准率、查全率、ROC、混淆矩阵、F1-Score 机器学习实战:分类器
5星 · 资源好评率100%
在机器学习中,评估模型性能常用的指标包括AUC、准确度(Accuracy)、精确度(Precision)、召回率(Recall)和F1-score。以下是使用Python中的`sklearn`库计算这些指标的一个简单示例:
首先,你需要有一个训练好的机器学习模型,并对其做预测,得到预测结果和真实的标签。然后,使用`sklearn.metrics`中的相关函数来计算这些性能指标。
```python
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score
from sklearn.metrics import confusion_matrix
# 假设 y_true 是真实的标签数组,y_pred 是模型预测的标签数组,y_pred_proba 是模型预测的概率数组(对于二分类问题)
y_true = [...] # 真实标签
y_pred = [...] # 模型预测的标签
y_pred_proba = [...] # 模型预测的概率
# 准确度(Accuracy)
accuracy = accuracy_score(y_true, y_pred)
print(f'准确度: {accuracy}')
# 精确度(Precision)
precision = precision_score(y_true, y_pred)
print(f'精确度: {precision}')
# 召回率(Recall)
recall = recall_score(y_true, y_pred)
print(f'召回率: {recall}')
# F1-score
f1 = f1_score(y_true, y_pred)
print(f'F1-score: {f1}')
# AUC (Area Under the Curve)
# 注意:AUC只能应用于二分类问题的ROC曲线
if len(np.unique(y_true)) == 2: # 确保标签只有两个类别
auc = roc_auc_score(y_true, y_pred_proba)
print(f'AUC: {auc}')
```
请确保你已经安装了`sklearn`库,并且你的`y_true`和`y_pred`是适当格式的数组或列表,`y_pred_proba`是一个包含概率值的数组。对于二分类问题,`y_pred_proba`应该是一个二维数组,其中每一行对应一个样本,每一列对应一个类别的预测概率。
在多分类问题中,`precision_score`、`recall_score`和`f1_score`函数默认计算所有类别的加权平均值。你也可以通过设置参数`average=None`来得到一个针对每个类别的性能指标列表。
阅读全文