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

来源:互联网 发布:windows 添加路由 编辑:程序博客网 时间:2024/06/14 19:50

求解的关键在引用计数,可以使用字典,也可以使用 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 Counterlabels = []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 operatorsortedClassCnt = sorted(labelCnt.items(), key=operator.itemgetter(1), resverse=True)return sortedClassCnt[0][0]
0 0
原创粉丝点击