多分类问题下准确率python_准确度(accuracy)、精确率(precision)、召回率(recall)、F1值 谈谈我的看法...

本文详细介绍了多分类问题下准确度、精确率、召回率和F1值的概念,并通过实例阐述了它们在评估模型性能中的作用。在多分类问题中,可以通过将问题拆分为多个二分类问题,计算各类别的精确率、召回率和F1值的均值来评估模型。此外,文章还展示了如何使用Python的sklearn、pyspark和tensorflow库进行相关计算。
摘要由CSDN通过智能技术生成

目录

前言

准确度、精确率、召回率、F1值作为评估指标,经常用到分类效果的评测上。比较好理解的二分类问题,准确度评估预测正确的比例,精确率评估预测正例的查准率,召回率评估真实正例的查全率。如何把这些评估指标用到多分类上呢,比如有三个类别A、B、C,准确度好理解,只要关系是否预测正确即可;那么精确率和召回率怎么理解呢?我们可以把多分类问题拆分成多个二分类问题,比如A类别是否预测正确,B类别是否预测正确,C类别是否预测正确,分别计算各个类别的每个类别的精确率和召回率,最终求均值既能作为所有样本的评估指标。

基本概念

TP(True Positives):真正例,预测为正例而且实际上也是负例;

FP(False Positives):假正例,预测为正例然而实际上却是负例;

FN(false Negatives):假负例,预测为负例然而实际上却是正例;

TN(True Negatives):真负例,预测为负例而且实际上也是负例。

57851262d6c76ac156f7ce2946fd8a24.png

记忆要点:正负例的是依据预测值,真假是依据实际值。真正例的意思,预测为正例,实际上是真的正例。

用二分类的问题类举例,有黑白色球,真实的球个数是黑球3个,白球7个,编号和真实颜色如下表格:

a113959389c7cc624e12f3bd09f0a8c6.png

模型预测结果为黑球4个,白球6个,预测结果入下表格,红色代表预测正确:

d670430bb1a1d184fe66ac670f6666b9.png

如果我们以黑球为正例标准,则可以统计出:

TP:2个, 预测是黑色的,实际就是黑色的,即黑字红色部分。

FP:2个,预测是黑色的,实际是白色的,即黑字黑色部分,即编号4和5。

FN:1个,预测是白色的,实际是黑色的&#x

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,CBA(Classification Based on Association rule)是一种基于关联规则的分类算法。在使用CBA算法进行分类之前,需要先进行关联规则挖掘。 步骤如下: 1. 导入数据集 ```python import pandas as pd data = pd.read_csv('iris.csv') ``` 2. 数据预处理 ```python # 将分类变量转换为数变量 data['species'] = data['species'].map({'setosa': 0, 'versicolor': 1, 'virginica': 2}) # 将数据集划分为训练集和测试集 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(data.iloc[:, :-1], data.iloc[:, -1], test_size=0.2, random_state=42) ``` 3. 关联规则挖掘 ```python !pip install pyfpgrowth import pyfpgrowth patterns = pyfpgrowth.find_frequent_patterns(X_train.values.tolist(), 2) rules = pyfpgrowth.generate_association_rules(patterns, 0.7) # 可调整置信度阈 ``` 4. 基于关联规则的分类 ```python def classify(rules, instance): classification = None max_confidence = 0 for rule in rules: if set(rule[0]).issubset(set(instance)): confidence = rule[1] if confidence > max_confidence: max_confidence = confidence classification = rule[2] return classification y_pred = [] for instance in X_test.values.tolist(): y_pred.append(classify(rules, instance)) # 计算分类准确度、精确度、召回率F1 from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score print('Accuracy:', accuracy_score(y_test, y_pred)) print('Precision:', precision_score(y_test, y_pred, average='macro')) print('Recall:', recall_score(y_test, y_pred, average='macro')) print('F1 Score:', f1_score(y_test, y_pred, average='macro')) ``` 这里使用了pyfpgrowth库来进行关联规则挖掘,同时计算分类指标使用了sklearn库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值