OneHotEncoder独热编码和LabelEncoder标签编码

本文介绍了数据预处理中的独热编码(OneHotEncoder)和标签编码。独热编码用于将离散型特征转化为欧式空间的向量,以便于距离计算,适用于大多数机器学习算法。标签编码则用于将类别标签标准化。文章讨论了何时使用独热编码,其优缺点,以及何时需要进行归一化。在sklearn和pandas中提供了相应的实现函数。

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

特征类别:连续型特征和离散型特征。
数据处理时会用到以下的知识:

  • 连续性特征使用归一化

特征A的取值范围是[-1000,1000],特征B的取值范围是[-1,1]。
如果使用logistic回归,w1x1+w2x2,因为x1的取值太大了,所以x2基本起不了作用。
所以,必须进行特征的归一化,每个特征都单独进行归一化。

  • 离散型使用独热编码(哑变量)

OneHotEncoder独热编码

什么是独热编码

独热码,称做 one-hot code(多么直观的英文啊), 好像也叫做(哑变量 dummy variable)。
直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。

举例如下:假如有三种颜色特征:红、黄、蓝。 在利用机器学习的算法时一般需要进行向量化或者数字化。那么你可能想令 红=1,黄=2,蓝=3.
那么这样其实实现了标签编码,即给不同类别以标签。然而这意味着机器可能会学习到“红<黄<蓝”,但这并不是我们的让机器学习的本意,只是想让机器区分它们,并无大小比较之意。所以这时标签编码是不够的,需要进一步转换。因为有三种颜色状态,所以就有3个比特。

为什么要使用独热编码

独热编码是因为大部分算法是基于向量空间中的度量来进行计算的,为了使非偏序关系的变量取值不具有偏序性,并且到圆点是等距的。使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用one-hot编码,会让特征之间的距离计算更加合理。
离散特征进行one-hot编码后,编码后的特征,其实每一维度的特征都可以看做是连续的特征。就可以跟对连续型特征的归一化方法一样,对每一维特征进行归一化。比如归一化到[-1,1]或归一化到均值为0,方差为1。

注意⚠️:
为什么特征向量要映射到欧式空间?
将离散特征通过one-hot编码映射到欧式空间,是因为,在回归、分类、聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算。

独热编码优缺点

优点:独热编码解决了分类器不好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值