如何进行多变量的建模_如何对离散变量进行数字化编码

本文探讨了在数据建模中如何处理离散变量,特别是分类变量的数字化编码。介绍了OneHotEncoder、LabelEncoder和get_dummies三种方法。OneHotEncoder通过创建二进制列来避免赋予离散值大小意义,LabelEncoder则是按顺序为分类变量分配0~n-1的编码,而get_dummies是pandas库中的方法,同样将分类变量转换为数字。文章还提到了处理未知类型的策略以及drop='first'选项。
摘要由CSDN通过智能技术生成

上一篇文章《什么情况下需要对特征变量标准化》介绍了特征变量的标准化,是针对连续型数值变量,由此关联到离散的分类变量是否需要做处理呢?本文介绍三种常用方法。

(一)OneHotEncoder

在数据分析中有个重要的步骤就是辨识变量的类型,分类变量有两种,一种是定类变量,离散值之间没有大小意义,例如:水果:[苹果,香蕉,梨子];另一种是定序变量,离散值之间有大小意义,例如学历:[小学、初中、高中]。为了提升数据分析效率,分类变量的值在数据建模分析中通常会被转换为数字特征。[苹果,香蕉,梨子]表示为[0,1,2],[小学、初中、高中]表示为[0,1,2]。数字冠以特征值大小,对于学历没有问题。但是水果就会有问题,三种水果在通常意义下并没有大小之分,凭什么苹果是0,梨子是2呢?所以为了公平就需要换一种编码方式来标记三种水果,引出one-hot编码。对于具体样本数据[苹果,香蕉,梨子,香蕉]利用one-hot编码如下:

[苹果,香蕉,梨子,香蕉]记为[[1,0,0],[0,1,0],[0,0,1],[0,1,0]]

具体操作方法是:将总体特征值放在行,将需要编码的样本放在列,如果样本与总体值相等则记为“1”,其他记为“0”

a51656d5bee02b40857b66997ab654f4.png

首先引入需要的工具包,本操作的 sklearn 使 用的是0.23.1版本。
import sklearnfrom sklearn import preprocessingimport numpy as npsklearn.__version__'0.23.1'
OneHotEncoder编码过程:
genders = ['female', 'male']locations = ['from Africa', 'from Asia', 'from Europe', 'from US']browsers = ['uses Chrome', 'uses Firefox', 'uses IE', 'uses Safari']enc = preprocessing.OneHotEncoder(categories=[gen
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值