机器学习之独热编码(One-Hot)

这篇具有很好参考价值的文章主要介绍了机器学习之独热编码(One-Hot)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等。这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。那什么是特征数字化呢?例子如下:

    性别特征:["男","女"] =>[0,1]

    祖国特征:["中国","美国,"法国"] =>[0,1,2]

    运动特征:["足球","篮球","羽毛球","乒乓球"] =>[0,1,2,3]

假如某个样本,它的特征是这样的["男","中国","乒乓球"],我们可以用 [0,0,3] 来表示,但是这样的特征处理并不能直接放入机器学习算法中,因为类别之间是无序的。

二、定义

独热编码是指将离散型的特征数据映射到一个高维空间中,每个可能的取值都对应于高维空间的一个点,在这些点上取值为1,其余均为0,因此独热编码也被称为“一位有效编码”或“One-of-K encoding”。

回到一开始的例子,性别特征:["男","女"],按照N位状态寄存器来对N个状态进行编码的原理:

    性别特征:["男","女"](这里N=2 二维数据)
    男 => 10
    女 => 01

    地区特征:["北京","上海,"深圳"](这里N=3,三维数据):
    北京 => 100
    上海 => 010
    深圳 => 001

    工作特征:["演员","厨师","公务员","工程师","律师"](这里N=5,五维数据):
    演员 => 10000
    老师 => 01000
    公务员 => 00100
    工程师 => 00010
    消防员 => 00001
 

三、优缺点

独热编码的优点有以下几个:

  • 能够处理非数值属性。比如血型、性别等
  • 一定程度上扩充了特征。
  • 编码后的向量是稀疏向量,只有一位是 1,其他都是 0,可以利用向量的稀疏来节省存储空间。
  • 能够处理缺失值。当所有位都是 0,表示发生了缺失。此时可以采用处理缺失值提到的高维映射方法,用第 N+1 位来表示缺失值。

当然,独热编码也存在一些缺点:

高维度特征会带来以下几个方面问题:

  • KNN 算法中,高维空间下两点之间的距离很难得到有效的衡量
  • 逻辑回归模型中,参数的数量会随着维度的增高而增加,导致模型复杂,出现过拟合问题
  • 通常只有部分维度是对分类、预测有帮助,需要借助特征选择来降低维度

四、代码

from sklearn import preprocessing  

enc = preprocessing.OneHotEncoder()  

enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])  #这里一共有4个数据,3种特征

array = enc.transform([[0,1,3]]).toarray()  #这里使用一个新的数据来测试

print array   # [[ 1  0  0  1  0  0  0  0  1]]

参考:

独热编码(One-Hot Encoding)-CSDN博客

机器学习:数据预处理之独热编码(One-Hot)详解-CSDN博客文章来源地址https://www.toymoban.com/news/detail-819384.html

到了这里,关于机器学习之独热编码(One-Hot)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习中使用的独热编码

    独热编码(One-Hot Encoding)是一种常用的特征编码方法,主要用于将离散特征转换为连续特征,以便机器学习算法能够更好地处理。独热编码将每个离散特征的取值映射为一个二进制向量,其中只有一个元素为 1,其余元素都为 0,这个元素的位置表示了该取值在所有取值中的

    2024年02月02日
    浏览(38)
  • 机器学习之IV编码,分箱&WOE编码

    使用如下: WOE计算公式

    2024年02月07日
    浏览(41)
  • 人口普查数据集独热编码转换

    在机器学习中,数据的表示方式对于模型算法的性能影响很大,寻找数据最佳表示的过程被称为“特征工程”,在实际应用中许多特征并非连续的数值,比如国籍、学历、性别、肤色等,这些特征被称为离散特征(或分类特征),对于多数模型来说,需要预先对离散特征进行

    2023年04月15日
    浏览(37)
  • 05 神经网络语言模型(独热编码+词向量的起源)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html 统计+语言模型–》用统计的方法去完成以下两个和人说的话相关的任务 语言模

    2024年02月14日
    浏览(38)
  • 初识人工智能,一文读懂机器学习之逻辑回归知识文集(1)

    🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 🔎 人工智能领域知识 🔎 链接 专栏 人工智能专业知识学习一 人工智能专栏 人

    2024年01月23日
    浏览(59)
  • FPGA中有限状态机的状态编码采用格雷码还是独热码?

            有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前

    2024年02月05日
    浏览(76)
  • PyTorch 稀疏函数解析:embedding 、one_hot详解

    目录 PyTorch子模块Sparse functions详解 embedding 参数 输出形状 示例 带有 padding_idx 的示例 embedding_bag 参数 输出形状 示例 使用 padding_idx 的示例 one_hot 参数 返回 示例 总结 torch.nn.functional.embedding 是 PyTorch 中的一个函数,用于从固定字典和大小的简单查找表中检索嵌入(embeddings)。这

    2024年01月18日
    浏览(45)
  • 机器人SLAM导航学习-All in one

    参考引用 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022. 本博客未详尽之处可自行查阅上述书籍 移动机器人激光SLAM导航(文章链接汇总) 1. ROS 入门必备知识 ROS学习笔记(文章链接汇总) 2. C++ 编程范式 《21天学通C++》读书笔记(文章链接汇总) 3. OpenCV 图像

    2024年02月16日
    浏览(41)
  • 【学习资源】终身机器学习之增量学习

    从机器学习存在的问题谈起,介绍增量学习可以解决怎样的问题,增量学习的类别,实现增量学习的方法,增量学习的评价指标和常用数据集,类别增量学习典型方法和代码库以及参考资源,希望能帮助大家用增量学习提高图像分类、对象检测、语义分割、行为识别、对象重

    2023年04月27日
    浏览(40)
  • 机器学习之集成学习概念介绍

    机器学习中的集成学习(Ensemble Learning)是一种通过组合多个模型来提高整体性能的技术。它的基本思想是将多个学习器(弱学习器)组合成一个更强大的学习器,以提高整体性能和泛化能力。集成学习可以在各种机器学习任务中使用,包括分类、回归和聚类。 弱学习器(

    2024年01月22日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包