【特征工程】定性数据的编码

本文介绍了定性数据的分类,包括定序等级和定类等级,并详细讲解了如何对定性数据进行编码,重点讨论了sklearn.preprocessing.LabelEncoder和pandas.get_dummies在定序和定类等级数据编码中的应用。
摘要由CSDN通过智能技术生成

一、定性数据的分类

数据可以按照数据的本质是数值的还是类别的分为定量数据和定性数据。通常来说,在这个基础上还可以将数据再分类,定性数据可以按照数据结构的强弱再细分为定序等级(ordinal level)定类等级(nominal level)

1.定序等级

定序等级的数据可以自然排序,即其取值不仅表示类别,而且它们之间具有可比较性。例如,调查问卷中的认可程度由低到高分为非常不赞同、比较不赞同、一般、比较赞同和非常赞同五个等级,如果用数值1-5分别表示这五个等级,那么数值5就表示比数值4更强的赞同度。

2.定类等级

定类等级的数据结构弱于定序等级,其取值仅仅表示某一个类别,数值之间的比较没有意义。例如,用0和1分别表示男性和女性,此时虽然1大于0,但这样的大小关系并无实际意义。

二、定性数据的编码

在解决实际问题的过程中,我们得到的原始数据往往是直接表示类别的字符串,例如"Male"和"Female","grade_A"和"grade_B"之类,此时如果要把它们表达的信息计入模型,就需要对这类变量进行合理的编码,将其转换为数值。但编码不是随便选用一种方式,而是要弄明白它们编码之后属于什么等级的数据才能找到相对应的编码方式。

1.定序等级编码

如果编码以后属于上述所说的定序等级,那么使用
sklearn.preprocessing.LabelEncoder

LabelEncoder()

LabelEncoder()的作用是将特征中的n种取值一一对应地编码为0到n-1的整数。例如,银行客户贷款的数据中有一个属性是客户的信用评级,评级最好的为A,最差的为D,样本数据为: B D B C A 。显然这个属性编码后数值的大小具有可比较性,是定序数据,于是选用LabelEncoder()对其编码:

from sklearn.preprocessing import LabelEncoder

data = ['B','D','B','C','A']

enc = LabelEncoder()
enc = enc.fit(['A','B','C','D'])
data_enc = enc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值