机器学习结果统计-准确率、召回率,F1-score

用手写数字识别来作为说明。
准确率: 所有识别为”1”的数据中,正确的比率是多少。 
如识别出来100个结果是“1”, 而只有90个结果正确,有10个实现是非“1”的数据。 所以准确率就为90%

召回率: 所有样本为1的数据中,最后真正识别出1的比率。 
如100个样本”1”, 只识别出了93个是“1”, 其它7个是识别成了其它数据。 所以召回率是93%

F1-score:  是准确率与召回率的综合。 可以认为是平均效果。


详细定义如下:
对于数据测试结果有下面4种情况:
TP: 预测为正, 实现为正
FP: 预测为正, 实现为负
FN: 预测为负,实现为正
TN: 预测为负, 实现为负

准确率: TP/ (TP+ FP
召回率: TP(TP + FN)
F1-score: 2*TP/(2*TP + FP + FN) 
机器学习中,评估模型性能常用的指标包括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`来得到一个针对每个类别的性能指标列表。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值