One-hot coding(独热编码)

博客介绍了One-hot编码的概念,这是一种将非数值类型数据转化为数值类型的数据预处理方法,适用于离散型数值编码。文章详细阐述了编码原理,通过N位状态寄存器对N个状态进行编码,并在Python中利用pandas的get_dummies()函数进行简单实现。此外,还讨论了One-hot编码的优点,如便于模型处理和特征扩充,以及在类别数量过多时可能带来的特征空间膨胀问题,建议可以结合PCA进行降维。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在数据预处理中,为了方便模型的输入,常常会把非数值类型量化成数值类型。
其中比较简单的一种处理离散型数值编码方式叫one-hot coding(独热编码)

1、概念

独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。

2、介绍

其实编码方式并不难理解,N位状态寄存器来对N个状态进行编码就是将所有状态排列,具有哪些状态就将状态进行标记。用来解决类别型数据的离散值问题

比如:

对0,1进行编码
首先只有两个状态就是需要两个状态寄存器
编码为:00,01

再比如,有3个特征值;

face = ['handsome','ugly']
stature = ['tall','middle','short']
country = ['Chinese','American,'Japan','korea']

一共9种状态,用9位数字表示

['handsome','tall','Japan'] 表示为 101000010
['ugly','short','Japan'] 表示为 010010010

3、简单实现

在python的第三方库pandas中实现非常简单,就是使用 get_dummies() 方法

def one_hot_encoder(df, nan_as_category = True):
    original_columns = list(df.columns)         # 属性
    categorical_columns = [col for col i
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值