Python应用专题 | 13:将标签转为onehot形式

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 在做文本分类的时候,常常需要将标签转为one-hot的数值形式,本文主要从代码的角度介绍该操作。

背景

对于给定具体标签,如何将其转为one-hot形式?比如标签集合体育', '娱乐', '家居', '房产', '教育', '时尚', '时政', '游戏', '科技', '财经',对于multiclass任务,如何将训练数据集中的样本的标签转为one-hot形式?

方法1:

    import numpy as np
    label_list = ['体育', '娱乐', '家居', '房产', '教育', '时尚', '时政', '游戏', '科技', '财经']
    label_dict = { l: i for i, l in enumerate(label_list)}

    data_labels = np.array(["娱乐", "体育", "房产", "科技", "财经"])
    data_label_ids = list(map(label_dict.get, data_labels))
    one_hot = np.zeros((data_labels.size, len(label_list)), dtype=np.int8)
    one_hot[np.arange(data_labels.size), data_label_ids] = 1
    print(one_hot)

输出结果如下:

[[0 1 0 0 0 0 0 0 0 0]
 [1 0 0 0 0 0 0 0 0 0]
 [0 0 0 1 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 1 0]
 [0 0 0 0 0 0 0 0 0 1]]

方法2:

使用np.eye

    import numpy as np
    label_list = ['体育', '娱乐', '家居', '房产', '教育', '时尚', '时政', '游戏', '科技', '财经']
    label_dict = { l: i for i, l in enumerate(label_list)}

    data_labels = np.array(["娱乐", "体育", "房产", "科技", "财经"])
    data_label_ids = list(map(label_dict.get, data_labels))

    # 方法2
    one_hot = np.eye(len(label_list), dtype=np.int8)[data_label_ids]
    print(one_hot)

输出结果如下:

[[0 1 0 0 0 0 0 0 0 0]
 [1 0 0 0 0 0 0 0 0 0]
 [0 0 0 1 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 1 0]
 [0 0 0 0 0 0 0 0 0 1]]

方法3:

使用sklearn.preprocessing.LabelBinarizer

    import numpy as np
    label_list = ['体育', '娱乐', '家居', '房产', '教育', '时尚', '时政', '游戏', '科技', '财经']
    label_dict = { l: i for i, l in enumerate(label_list)}

    data_labels = np.array(["娱乐", "体育", "房产", "科技", "财经"])
    data_label_ids = list(map(label_dict.get, data_labels))

    # 方法3:
    import sklearn.preprocessing
    label_binarizer = sklearn.preprocessing.LabelBinarizer()
    label_binarizer.fit(range(len(label_list)))
    one_hot = label_binarizer.transform(data_label_ids)
    print(one_hot)
相关文章
|
1天前
|
SQL JavaScript 前端开发
用Java、Python来开发Hive应用
用Java、Python来开发Hive应用
11 6
|
5天前
|
jenkins 持续交付 Docker
一个python应用在CI/CD中的例子分享
一个python应用在CI/CD中的例子分享
20 10
|
1天前
|
数据采集 机器学习/深度学习 数据可视化
Python 在数据科学中的应用
这篇文章将深入探讨 Python 在数据科学中的多种应用,包括数据清洗、数据分析、可视化及机器学习。我们将通过实例展示如何利用 Python 的强大库和工具,如 Pandas、NumPy、Matplotlib、Seaborn 以及 Scikit-learn,来高效地进行数据处理与分析。无论您是初学者还是有经验的开发者,这篇文章都能为您提供宝贵的见解和实用技巧。
|
1天前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
13 4
|
3天前
|
安全 开发者 Python
Python IPC大揭秘:解锁进程间通信新姿势,让你的应用无界连接
【9月更文挑战第11天】在编程世界中,进程间通信(IPC)如同一座无形的桥梁,连接不同进程的信息孤岛,使应用无界而广阔。Python凭借其丰富的IPC机制,让开发者轻松实现进程间的无缝交流。本文将揭开Python IPC的神秘面纱,介绍几种关键的IPC技术:管道提供简单的单向数据传输,适合父子进程间通信;队列则是线程和进程安全的数据共享结构,支持多进程访问;共享内存允许快速读写大量数据,需配合锁机制确保一致性;套接字则能实现跨网络的通信,构建分布式系统。掌握这些技术,你的应用将不再受限于单个进程,实现更强大的功能。
19 5
|
5天前
|
数据采集 机器学习/深度学习 搜索推荐
Python爬虫技术基础与应用场景详解
本文介绍了爬虫技术的基本概念、原理及应用场景,包括数据收集、价格监测、竞品分析和搜索引擎优化等。通过一个实战案例展示了如何使用Python爬取电商网站的商品信息。强调了在使用爬虫技术时需遵守法律法规和道德规范,确保数据抓取的合法性和合规性。
|
7天前
|
Kubernetes Docker Python
如何在K8s中使用Python应用
一文带你了解如何在K8s中使用Python应用
16 4
|
8天前
|
JSON 安全 数据库
Python安全性大升级:OAuth与JWT,让你的应用穿上防弹衣🛡️
【9月更文挑战第6天】在数字世界中,每个应用都面临着安全威胁。作为Python开发者,构建强大的系统至关重要。OAuth和JWT为我们提供了坚实的安全保障。OAuth作为一种授权机制,让用户无需向第三方应用暴露敏感信息;JWT则通过自包含的信息传输,增强了安全性并提高了系统性能。利用Python生态中的这些工具,我们可以更好地保护用户数据,守护他们的信任与期待。下面是一个使用PyJWT生成和验证JWT的示例代码:(示例代码同上)通过这些技术,我们的应用能够更加稳健地在数字海洋中航行。
16 3
|
15天前
|
数据可视化 物联网 区块链
探索Python中的数据可视化:使用Matplotlib和Seaborn绘制图表探索未来:区块链、物联网与虚拟现实的融合趋势与应用前景
【8月更文挑战第30天】本文旨在引导读者通过Python编程语言,利用Matplotlib和Seaborn库,轻松掌握数据可视化技术。文章以浅显易懂的语言,结合实用的代码示例,从基础的图表绘制到高级定制功能,逐步深入讲解如何在数据分析中运用这些工具。无论你是编程新手还是希望提升可视化技能的开发者,都能在这篇文章中找到有价值的信息,让你的数据“活”起来。
|
16天前
|
人工智能 中间件 算法框架/工具
Python在工业自动化领域的应用详解
Python在工业自动化领域的应用详解