Trick(十二)——统计 label(序列)各个标签值出现的次数以及出现次数最多的标签

57 篇文章 0 订阅

求解的关键在引用计数,可以使用字典,也可以使用 collections 模块中的 Counter。

统计 label(序列)各个标签值出现的次数

统计 label(序列)各个标签值出现的次数,来计算 label 的概率分布,或者样本集的香农熵。

法一:使用字典

labelCnt = {}
for featVec in dataset:
    label = featVec[-1]
    if label not in labelCnt:
        labelCnt[label] = 0
    labelCnt[label] += 1

法二:使用字典

from collections import Counter
labels = []
for featVec in dataset:
    labels.append(featVec[-1])
labelCnt = Counter(labels)

次数出现最多的标签

获得次数出现最多的标签,用于投票表决;

使用 Counter 类定义的引用计数,本质还是一个 dict,统计出现次数最多的标签,二者的使用是几乎相同的,都是先排序。这里关注 sorted 函数 key 参数的指定。

法一:key 使用匿名函数

sortedClassCnt = sorted(labelCnt.items(), key=lambda item: item[1], reverse=True)
return sortedClassCnt[0][0]

法二:key 使用 operator.itemgetter

import operator
sortedClassCnt = sorted(labelCnt.items(), key=operator.itemgetter(1), resverse=True)
return sortedClassCnt[0][0]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值