在做机器学习分类问题的时候,经常需要将标签名转换为对应的索引。什么是label_to_index问题?下面将通过一个案例来详细说明。
假设现在需要完成一个图像分类的任务,现有五种类型的花卉,分别是:['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips'],每个类别的花卉有图像若干。在做具体的图形分类任务之前,需要将这些标签名转换为对应的整型索引,这样的转换便于机器学习模型的后续处理。
我们的目标是建立一个字典类型的数据结构label_to_index,能够实现给定一个标签名,找到指定的数字索引。给大家一点时间,如果是你,如何快速的编码实现?
首先按照字典序对所有的标签名进行排序。
class_names = ['roses', 'sunflowers', 'daisy', 'dandelion', 'tulips']class_names = sorted(class_names)# ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips']
接下来通过列表推导式遍历数组,然后再将列表转换为字典。其中enumerate()可以获得下标。
label_to_index = dict([(name, index) for index, name in enumerate(class_names)])
有没有更简洁的方式呢?答案就是利用下面的列表推导式更简洁的实现。
label_to_index = {name:index for index,name in enumerate(class_names)}
本文为大家介绍了利用列表推导式快速的实习label_to_index,这一机器学习中最常用的操作。