独热编码

python之独热编码的实现         独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。         上图就是独热编码(“one hot” encoding)的转换,在转换后的表示中,每列的一个元素是“hot”(意思是设置为1)。    阅读详情

为了解决上述问题,其中一种可能的解决方法是采用独热编码(One-Hot Encoding)。独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。

例如:

自然状态码为:000,001,010,011,100,101

独热编码为:000001,000010,000100,001000,010000,100000
可以这样理解,对于每一个特征,如果它有m个可能值,那么经过独热编码后,就变成了m个二元特征(如成绩这个特征有好,中,差变成one-hot就是100, 010, 001)。并且,这些特征互斥,每次只有一个激活。因此,数据会变成稀疏的。

这样做的好处主要有:

解决了分类器不好处理属性数据的问题

在一定程度上也起到了扩充特征的作用

实现方法一:pandas之get_dummies方法

pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False)
  该方法可以讲类别变量转换成新增的虚拟变量/指示变量。

常用参数

复制代码
data : array-like, Series, or DataFrame
输入的数据
prefix : string, list of strings, or dict of strings, default None
get_dummies转换后,列名的前缀
*columns : list-like, default None
指定需要实现类别转换的列名
dummy_na : bool, default False
增加一列表示空缺值,如果False就忽略空缺值
drop_first : bool, default False
获得k中的k-1个类别值,去除第一个
复制代码
  1、实验

实现方法二:sklearn

from sklearn import preprocessing
enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) # fit来学习编码
enc.transform([[0, 1, 3]]).toarray() # 进行编码
输出:array([[ 1., 0., 0., 1., 0., 0., 0., 0., 1.]])

数据矩阵是4*3,即4个数据,3个特征维度。

0 0 3 观察左边的数据矩阵,第一列为第一个特征维度,有两种取值0\1. 所以对应编码方式为10 、01

1 1 0 同理,第二列为第二个特征维度,有三种取值0\1\2,所以对应编码方式为100、010、001

0 2 1 同理,第三列为第三个特征维度,有四中取值0\1\2\3,所以对应编码方式为1000、0100、0010、0001

1 0 2

再来看要进行编码的参数[0 , 1, 3], 0作为第一个特征编码为10, 1作为第二个特征编码为010, 3作为第三个特征编码为0001. 故此编码结果为 1 0 0 1 0 0 0 0 1

OneHotEncoder独热编码与哑编码 易混点分析 什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和哑编码的区别。 一. 什么是独热编码?        独热码,在英文文献中称做 one-hot code, 又称独热编码、一位有效编码,直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效... 阅读详情

相关推荐

数据预处理:独热编码

preprocessing.OneHotEncoder:独热编码,创建哑变量 前言: 我们刚才已经用OrdinalEncoder把分类变量Sex和Embarked都转换成数字对应的类别了。在舱门Embarked这一列中,我们使用[0,1,2]代表了三个不同的舱门,然而这种转换是正确的吗? 我们来思考三种不同性质的分类数据: 1) 舱门(S,C,Q) 三种取值S,C,Q是相互独立的,彼此之间完全没有...

weixin_41798592的博客 1723

文本分类之独热编码、词袋模型、N-gram、TF-IDF

文本分类的几种文本向量化方法

liweiminlining的专栏 947

[machine learning] 独热编码one hot encoding 及 MNIST label 独热编码范例

1. 为什么要用one hot encoding在实际场景中,变量非连续数值,而是离散数据时,采用暴力赋值,会给数据一个潜在的排序权重。换言之,各向量之间的距离不等。例如:性别(男,女),我们可以暴力转码为(0,1),没问题。但是性别(男,女,人妖),如果暴力转码为(0,1,2),“男”/“女”、“男”/“人妖”间的向量距离不等,就提供了一个潜在的大小排序,会影响输出结果。为了解决上述问题,其中一...

u013084616的专栏 3005

Python实现类别变量的独热编码(One-hot Encoding)

本文介绍基于下与两种方法,实现机器学习中最优的编码方法——的方法。目录在数据处理与分析领域,对数值型与字符型加以是不可或缺的预处理操作;这里介绍两种不同的方法。

Gefangenes的博客 3571

独热编码——文本数据

机器学习算法往往无法直接处理文本数据,需要把文本数据转换为数值型数据,独热编码就是一种解决方法。独热(one-hot)编码又称为一位有效编码。独热编码将文本中的单词编号,构建字典结构的词汇表。其中,key是单词,value是单词的索引。词汇表有n个单词,构成n个词向量。例如,某个单词在词汇序列中的位置为k,对应的词向量的第k个位置为1,其他位置都为0。独热编码保证了每一个取值只会使得一种状态处于激活态,也就是说多种状态中只有一个状态位为1,其他状态位都是0.独热编码具有操作简单、容易理解的优势。

qq_41566819的博客 996

燧原科技云燧ESL64-O超节点:国产AI芯片与OEX光互联架构解析

分布式AI训练通过将计算任务拆分到多个节点并行执行来加速模型训练,其核心原理涉及数据并行和模型并行等策略。在技术价值层面,分布式训练能显著提升大规模深度学习任务的效率,但传统GPU集群常因网络通信瓶颈导致性能受限。OEX光互联架构作为解决通信瓶颈的关键创新,采用硅光技术实现高带宽、低延迟的节点内互联,优化了AI训练中的集合操作。这种硬件级优化特别适用于千亿参数大模型训练和科学计算等场景,能有效降低AI集群的总体拥有成本(TCO)。云燧ESL64-O超节点正是基于国产自研AI芯片与OEX架构的集成方案,为大规

weixin_29071809的博客 370

来聊一聊独热码检测

那么让我们想一想该如何解决这个问题,其实有个很简单的思路,就是从独热码的定义出发:只有一位是1,其余位都是0,那么不管我们输入信号有多少位,有一个性质是不变的--把这些位加起来,最后的结果肯定是1,那么我们就可以利用一个for循环,把每一位相加,最后把最终的和1比较一下,如果是1,那就是独热码,如果不是1,那就是其他的数,非常的直观。,当A为全0的时候,P也是全0,但是A取反之后是全1,所以A反和P按位OR之后也会得到全1,幸好,特殊情况就只有一种,我们只需要对A进行一下全0的判断就可以了。

笨蛋大乌龟的博客 1093

MFC停靠窗口实战:CDockablePane从创建到控件布局的完整指南(附残影问题排查)

本文提供了MFC中CDockablePane停靠窗口的完整实战指南,涵盖从自定义窗格类创建、主框架集成、内部控件布局到高级功能定制的全过程。针对开发中常见的“残影”视觉问题,文章深入剖析了其根源,并给出了系统性的排查步骤与解决方案,帮助开发者构建稳定、专业的可停靠用户界面。

sun99的博客 613

如何对类别变量进行独热编码

大部分机器学习算法是基于向量空间中度量来进行计算的,使用独热编码(One-hot encoding, 也称为哑变量 dummy variable)会让特征之间的距离计算更加合理。通过独热编码把类别变量转换为机器学习算法可使用的格式,其基本思想是对原始类别变量的每个值创建新的变量,并赋值为 1 和 0 下图展示如何进行独热编码,把Team变量转为新的变量:下面把原始变量转为独热编码形式:R 有多种方式很容易实现独热编码。可以使用工具包提供函数实现,也可以手动实现。下面定义演示数据: 我们先看caret包中提供

neweastsun的专栏 3563

C# CAD2016 多边形顶点按方向重新排序

这样,通过以上步骤,我们找到了一个多边形的一个候选起始顶点(可能位于西北方向),并且已经获取了该多边形的边界框信息,这些信息对于后续判断顶点排列顺序及处理其他相关问题具有重要意义。完整地处理八个方向(东北、东南、西南、西北、北、南、东、西),我们可以创建一个方法来获取多边形相对于给定点的最近顶点及其对应的方向。对象(或类似的多边形表示方式),其中包含了多边形的顶点。//附送AI 图片无版权 随意用 龙年大吉大利。

转眼之间 一路有你 1355

LCL滤波器参数设计实战:从理论约束到工程选型指南

本文提供了LCL滤波器参数设计的实战指南,从理论约束到工程选型逐步拆解。核心在于平衡总电感量、电感比与电容值,确保谐振频率落在安全区间,以满足并网电流谐波标准并维持系统稳定。文章以10kW并网逆变器为例,给出了具体的参数计算流程与选型步骤,并强调了寄生参数、阻尼设计等工程实现细节。

c6d7e8f9g的博客 921

MATLAB实现one-hot编码和逆编码

将数字标签进行one-hot独热编码转换 需要注意的是数字编码ind需要包含从1开始到n(任意正整数)的编号,但是不能跳过1~n中的任一个数字。可以是1,2,3,4,5…3484,但不能是1,2,3,5。而且数字标签需要是行向量,不能是列向量。 ind = [1 3 5 7 9 10 2 4 6 8]; % n = length(unique(ind));% 一共有多少类 onehot = full(ind2vec(ind,n)) % ind2vec():将ind标签转换成vec稀疏编码,再由full()

qq_36108664的博客 6893

AI学习记录 - transformer的位置编码的理解

先看三角函数为什么可以,我们看下三角函数的图像先提一个点:位置信息肯定是唯一的,或者是在很长的文字当中,起码重复度不会太高,x轴代表位置,y轴代表叠加上去的值1、假设只使用一个三角函数sin,我们将第2和第14两个位置输入到sin,他们的值很像,在神经网络的训练中,很容易把第2个位置和第14个位置当成是一个位置,不满足我们上面说到的要求位置唯一性。sin2sin14。

weixin_43954090的博客 1412

Python实现独热编码

关于独热编码与哑变量编码的概念,可以参考:https://blog.youkuaiyun.com/qq_41853758/article/details/81252174。 离散特征的编码分为两种情况: 1、离散特征的取值之间没有大小的意义,比如color:[red,blue],此时可以使用one-hot编码; 2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],此时可以使用数值的映射{...

Backcanhave7 1万+

QGis软件 —— 5、QGis增加线,并对线进行绘制、旋转、缩放、移动等基本操作

QGis软件 —— 5、QGis增加线,并对线进行绘制、旋转、缩放、移动等基本操作

8239

【定位教程2----旋转中心标定之方法一】

【定位教程2----旋转中心标定之方法一】

Quintin 3万+

为什么要独热编码、优缺点、

一、为什么要独热编码? 独热编码(哑变量 dummy variable)是因为大部分算法是基于向量空间中的度量来进行计算的,为了使非偏序关系的变量取值不具有偏序性,并且到圆点是等距的。使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用one-hot编码,会让特征之间的距离计算更加合理。离散特征进行one-hot编码后,编码后的特征,...

qq_43149373的博客 2万+

C#利用最小二乘法拟合任意次函数曲线

给出一组离散点,确定一个函数逼近原函数,插值是这样的一种手段。在实际中,数据不可避免的会有误差,插值函数会将这些误差也包括在内。因此,我们需要一种新的逼近原函数的手段: ①不要求过所有的点(可以消除误差影响);②尽可能表现数据的趋势,靠近这些点。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 [1],其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达,具体可以查阅相关资料。最小二乘法(又称最小平方法)是一种数学技术。

qq_30725967的博客 3755

【思考】什么是独热编码,它的坑你踩过吗?

为什么要用独热编码 为什么要用独热编码,这是特征工程中的问题,如果是类别型的特征,比较粗的方法就是将文本特征进行数值化,比如'A'->1,'B'->2。 但是,作为类别型特征,单纯的将其数值化会让模型赋予了数值大小含义,而实际上数字大或小并没有区别。 所以针对类别型特征,用one-hot独热编码进行处理。如:特征A,有三个类别a,b,c。经过独热编码,将会生成3个特征:A_...

鱼大 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

day5 离散特征的独热编码

在进行线性回归等模型训练时,如果对一个类别变量生成了 n 个独热编码特征,而这些特征的总和是恒定的(例如,对于二分类问题,特征值之和始终为 1),会导致多重共线性(Multicollinearity)问题。的作用是在独热编码时丢弃第一个类别对应的虚拟变量(dummy variable),从而避免虚拟变量陷阱(Dummy Variable Trap)。-多重共线性会使模型参数估计不稳定,避免多重共线性,减少特征之间的相关性,提高模型的稳定性和性能。二. 对离散变量进行one-hot编码。

hyugihbkui的博客 1996

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【独热编码介绍】

在机器学习和数据挖掘领域,独热编码(One-Hot Encoding)是一种常用的数据预处理技术。它将分类变量(Categorical Variable)转换为二进制向量,以便在机器学习算法中更好地使用。

武帝为此的博客 2830

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

学习笔记 | 独热编码(One-Hot Encoding)

最近学习机器学习,接触到独热编码相关内容,参考了一些资料,加上自己的思考,做出了如下总结。

Bryce230的博客 1万+

独热编码python实现_详解深度学习中的独热编码

很多人开始接触深度学习,数据处理遇到第一个专业英文术语就是one-hot encode(独热编码),很多初学者就会迷茫,这个东西是什么意思,其实说的直白点所谓的独热编码最重要的就是把一组字符串或者数字转为一组向量而且这组向量中只能有一个向量值是1。可见独热编码还是很形象的说1这个单独大热门,做个形象的比喻,2018足球世界杯的冠军只能有一个,如果对32支球队做个独热编码则会得到32个向量,其中只能...

weixin_33921444的博客 2035

一文读懂Pandas中独热编码

在本文中,我们将探讨如何利用Pandas对分类数据进行独热(One-Hot)编码。

weixin_39915649的博客 1604

为什么要独热编码

一、为什么要独热编码? 独热编码(哑变量 dummy variable)是因为大部分算法是基于向量空间中的度量来进行计算的,为了使非偏序关系的变量取值不具有偏序性,并且到圆点是等距的。使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用one-hot编码,会让特征之间的距离计算更加合理。离散特征进行one-hot编码后,编码后的特征,...

weixin_43830118的博客 1254

DAY 5 离散特征的独热编码

本文介绍了对离散特征进行独热编码的完整流程。首先,读取数据并填充所有缺失值。接着,识别离散特征,并根据其类别关系决定使用标签编码还是独热编码。对于无顺序关系的离散特征,使用pd.get_dummies进行独热编码,生成新的布尔型特征列。然后,将这些布尔型特征转换为整型,以便后续分析。最后,通过对比编码前后的特征名,确保所有新生成的特征都被正确处理。这一流程包括数据读取、缺失值处理、特征识别、独热编码和类型转换,为机器学习模型的输入数据准备提供了清晰的步骤。

awsndy的博客 921
上一篇: 深度和广度优先递归遍历指定目录(python)
下一篇: 自定义实现min—max 标准化_离差归一化
leaf13
博客等级 码龄8年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值