分类算法的评价指标

分类算法的评价指标

查准率、查全率、准确率、F1分数:

查准率(Precision): 模型预测为正例的样本中实际未正的比例。它关注的点在:预测为正例样本的准确性。

查全率(recall): 模型正确预测为正例的样本数占所有实际样本的比例。它关注的点是:模型能够正确捕捉到多少正例样本。

准确率(Accuracy): 模型所有正确预测的样本数占总样本数的比例,即模型整体的预测准确性。

F1分数: 是一个综合评价指标,结合了查准率(Precision)和查全率(Recall),用于平衡模型在不同情况下的性能。它是精确率和召回率的调和平均值,可以帮助评估模型在不同阈值下的整体表现。

作用:

  1. 平衡查准率和查全率,查准率和查全率之间存在一种平衡关系,提高查准率可能会降低查全率,反之也是,当然,模型足够优秀的话他们俩可以同时提高,但是做不到二者一直持续提高,毕竟数据集中正例样本有限;
  2. 处理**不平衡数据集,**数据集的正负样本分布可能不均衡,这个时候仅仅依靠准确率可能不足以反应模型性能。F1分数适合这种情况下模型评估,因为它考虑了正负样本的不平衡。
    不平衡数据集: 是指不同类别的样本数量存在了明显差异,比如正例900个,负例100个,这样的情况如果模型不是很差,那么美查准率可能高,但是因为正例总数较小,所以查全率会很小,反过来说也是一样,所以这个时候需要F1分数来调和。
  3. 评估模型稳定性,D1分数对模型的稳定性有影响,如果模型在不同阈值下的预测结果变化比较大,可能会影响F1分数,所以根据F1分数可以帮助评估模型在不同条件下的鲁棒性。

总结: 平衡查准率和查全率

  1. 查准率重点在于避免误报,即尽量确保模型预测为正例的样本是真的正例;
  2. 查全率重点在于避免漏报,即尽量捕捉到所有的正例样本;
  3. 准确率是整体预测的准确性,综合考虑了正例和负例的预测情况。

代码实现

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_curve, roc_auc_score

accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='weighted')
recall = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')

详细的功能实现可参考sklearn官网介绍,链接:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics

你可能感兴趣的:(分类,机器学习,算法)