APP下载

基于Python的One-hot编码的实现

2021-10-14刘辉玲

武汉船舶职业技术学院学报 2021年3期
关键词:模型

刘辉玲 陶 洁 邱 磊

(武汉船舶职业技术学院,湖北武汉 430050)

在数据处理过程中,诸多的类别型数据常采用文本数据的形式,除了决策树等少量模型之外,其他模型如逻辑回归、支持向量机等一般都无法直接使用,其处理方式是将文本数据转换成数值数据。形如{"男","女"}、{"计算机系","数学系","物理系"……,"经济系","管理系"}等集合形式的类别值,在表征为数值数据时,其常用方式采用标签编码(Label encoding)方式,是按类别值在集合中的位置顺序赋予相应的值,一个含N个类别的集合,采用[0, N-1]区间内连续整数予以编号。如0表示计算机系,1表示数学系,2表示物理系,依次类推。类别值数据经过序号编码之后,其本质依然是非连续数据。若直接使用,较容易被当作为连续数值型数据进行处理,除非编码得到的数据连续性有实际意义。 One-hot编码是解决这个问题的有效方式之一, 对于类别值数据采用One-hot编码作数据预处理之后,其在相似度或距离计算之间更为合理,对相关的机器模型适用性更好,可用度增强[1-2]。

1 One-hot编码

对于有N种类别值的集合,One-hot编码(独热编码)采用长度为N位的状态寄存器来对每一个类别值进行编码,每个类别值对应一个独立的寄存器位,在任意时刻只有一个寄存器位为1,其余为0[3-4]。故One-hot编码又称一位有效编码。以{"中","俄","美","英","法"}为例,其编码如表1所示。

表1 One-hot编码示例

这5种类别值的编码分别是[1,0,0,0,0], [0,1,0,0,0], [0,0,0,1,0], [0,0,0,0,1], [0,0,1,0,0]。若类别值集合长度为N,则每种类别值的One-hot编码是一个长度为N的向量。在任何情况下,每个向量中只有1个分量为1,其他分量为0,从而保证了唯一性。

登录APP查看全文

猜你喜欢

模型
一半模型
一种去中心化的域名服务本地化模型
适用于BDS-3 PPP的随机模型
函数模型及应用
p150Glued在帕金森病模型中的表达及分布
函数模型及应用
重尾非线性自回归模型自加权M-估计的渐近分布
3D打印中的模型分割与打包
FLUKA几何模型到CAD几何模型转换方法初步研究
一个相似模型的应用