python垃圾分类准确率计算公式_准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure...

机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy),精确率(Precision),召回率(Recall)和F1-Measure。(注: 相对来说,IR 的 ground truth 很多时候是一个 Ordered List, 而不是一个 Bool 类型的 Unordered Collection,在都找到的情况下,排在第三名还是第四名损失并不是很大,而排在第一名和第一百名,虽然都是“找到了”,但是意义是不一样的,因此 更多可能适用于 MAP 之类评估指标。)

本文将简单介绍其中几个概念。中文中这几个评价指标翻译各有不同,所以一般情况下推荐使用英文。

现在我先假定一个具体场景作为例子。

假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生.

现在某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了.

作为评估者的你需要来评估(evaluation)下他的工作

首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率[1].

这样说听起来有点抽象,简单说就是,前面的场景中,实际情况是那个班级有男的和女的两类,某人(也就是定义中所说的分类器)他又把班级中的人分为男女两类。accuracy需要得到的是此君分正确的人占总人数的比例。很容易,我们可以得到:他把其中70(20女+50男)人判定正确了,而总人数是100人,所以它的accuracy就是70 %(70 / 100).

由准确率,我们的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作。举个例子,google抓取

了argcv

100个页面,而它索引中共有10,000,000个页面,随机抽一个页面,分类下,这是不是argcv的页面呢?如果以accuracy来判断我的工

作,那我会把所有的页面都判断为"不是argcv的页面",因为我这样效率非常高(return false,一句话),而accuracy已经到了99.999%(9,999,900/10,000,000),完爆其它很多分类器辛辛苦苦算的值,而我这个算法显然不是需求期待的,那怎么解决呢?这就是precision,recall和f1-measure出场的时间了.

在说precision,recall和f1-measure之前,我们需要先需要定义TP,FN,FP,TN四种分类情况.

按照前面例子,我们需要从一个班级中的人中寻找所有女生,如果把这个任务当成一个分类器的话,那么女生就是我们需要的,而男生不是,所以我们称女生为"正类",而男生为"负类".

相关(Relevant),正类

无关(NonRelevant),负类

被检索到(Retrieved)

true positives(TP 正类判定为正类,例子中就是正确的判定"这位是女生")

false positives(FP 负类判定为正类,"存伪",例子中就是分明是男生却判断为女生,当下伪娘横行,这个错常有人犯)

未被检索到(Not Retrieved)

false negatives(FN 正类判定为负类,"去真",例子中就是,分明是女生,这哥们却判断为男生--梁山伯同学犯的错就是这个)

true negatives(TN 负类判定为

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Matlab可以通过计算散点图分类准确率来评估分类器的性能。首先,需要将样本数据分成训练集和测试集两部分。训练集用来训练分类器,测试集用来评估分类器的性能。其中,训练集应包含已知类别的样本数据,而测试集则不包含已知类别的样本数据。 之后,将分类器应用于测试集中的每个样本,计算出其被正确分类的概率。分类准确率可以通过将所有正确分类的样本数除以总样本数来计算。此外,还可以计算其它评价指标,如敏感性和特异度等,以更全面地评估分类器的性能。 在Matlab中,可以使用分类器工具箱中的函数来快速实现散点图的分类准确率计算。例如,可以使用fitcknn函数训练k近邻分类器,并使用predict函数将其应用于测试集中的样本,最后使用confusionmat函数计算分类器的混淆矩阵,从而计算出其准确率和其它评价指标。 总之,Matlab可以通过简单的代码实现散点图的分类准确率计算,从而评估分类器的性能,并为进一步的优化提供参考。 ### 回答2: 在Matlab中,对散点图进行分类准确率计算可以通过以下几个步骤实现: 1. 首先,需要将数据集分为训练集和测试集。训练集用于训练分类模型,而测试集用于测试模型的准确率。 2. 接下来,选择合适的分类算法,例如支持向量机、朴素贝叶斯等,并对训练集进行训练。 3. 使用训练好的模型对测试集进行分类预测,并将预测结果与测试集的真实标签进行比较,计算准确率。可以使用Matlab中提供的函数confusionmat和classificationReport来实现。 4. 最后,可以通过调整分类算法的参数或选择其他算法来提高准确率,并重复以上步骤进行模型评估和优化。 在实际应用中,可以根据数据集的特征和分类任务的需求选择不同的分类算法,比如针对多分类问题可以使用KNN或神经网络等算法。此外,对于非平衡分类问题,可以使用过采样、欠采样等方法来平衡数据集,提高模型的准确率。 ### 回答3: 在Matlab中进行散点图的分类准确率计算,需要经过以下步骤: 1. 读取并准备数据集:从已经准备好的数据集中读取数据,将其分为训练集和测试集,并对数据进行预处理和归一化。 2. 建立分类模型:使用适当的分类算法(如支持向量机、神经网络、决策树等),在训练集上训练分类模型,并通过交叉验证等手段调节模型参数。 3. 进行分类预测:将测试集中的数据送入分类模型中进行分类预测,并将预测结果与真实结果进行比较,以评估分类准确率。 4. 计算分类准确率:根据测试集中所有数据的预测结果和真实结果,用如下公式计算分类准确率: 分类准确率 = 预测正确的数据量 / 测试集总数 在Matlab中可以使用confusionmat函数计算混淆矩阵,从而得到分类准确率精确率召回率等评价指标。同时,还可以使用ROC曲线和AUC值来评估分类器的表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值