class_order 数组来实现重新编号或者改变类别

发布时间:2024年01月05日

当你在处理分类问题时,数据集的标签(类别)可能是从0到n-1的整数,其中n是类别的总数。有时候,在进行模型训练之前,你可能想要改变类别的顺序或者重新编号。这可以通过class_order数组来实现。

问题描述:已知有数据集,将其原有的标签ori_class_order映射为新的标签new_class_order

# 原始类别顺序
ori_class_order = ['cat':0, 'dog':1, 'bird':2, 'fish':3]

# 训练数据集的原始目标标签
train_targets = ['dog', 'cat', 'bird', 'fish', 'dog', 'cat']

# 测试数据集的原始目标标签
test_targets = ['bird', 'fish', 'dog']

print("原始的训练目标标签:", train_targets)
print("原始的测试目标标签:", test_targets)
原始的训练目标标签: [1, 0, 2, 3, 1, 0]
原始的测试目标标签: [2, 3, 1]

将类别重新映射为新的顺序:

# 新的类别顺序
new_class_order = {'cat': 1, 'dog': 0, 'bird': 3, 'fish': 2}

# 使用class_order重新映射训练数据集和测试数据集的目标标签
new_train_targets = [new_class_order[label] for label in train_targets]
new_test_targets = [new_class_order[label] for label in test_targets]

print("重新映射后的训练目标标签:", new_train_targets)
print("重新映射后的测试目标标签:", new_test_targets)
重新映射后的训练目标标签: [0, 1, 3, 2, 0, 1]
重新映射后的测试目标标签: [3, 2, 0]

文章来源:https://blog.csdn.net/weixin_51659315/article/details/135310579
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。