sklearn.preprocessing中LabelEncoder与OneHotEncoder

本文介绍了LabelEncoder用于离散数据编码的原理,以及如何将DataFrame中的类别数据转换为数值。同时,详细展示了OneHotEncoder的功能,它将分类变量转换为二进制特征向量,以进行多元分类分析。通过实例演示了如何使用这两个工具进行特征编码。
摘要由CSDN通过智能技术生成

LabelEncoder:

作用:将离散型的数据转换成 0 到 n − 1 之间的数,这里 n 是一个列表的不同取值的个数,可以认为是某个特征的所有不同取值的个数。

df = pd.DataFrame({'A':['a','a','b','c'], 'B':['b','C','c','C']})
model_label_encoder = LabelEncoder()
model_label_encoder.fit(df['B'].values)
df['C'] = model_label_encoder.transform(df['B'].values)

先构造encoder,通过fit函数传入需要编码的数据,在内部生成对应的key-value
然后encoder 用于需要转化的数据,用transform函数,上述代码执行之后将在df中增加新的一列'C',用于存储对'B'中数值的编码值。

OneHotEncoder:

作用:分类编码变量,将每一个类可能取值的特征变换为二进制特征向量,每一类的特征向量只有一个地方是1,其余位置都是0,如[A,B,C]转化后分别为[1,0,0],[0,1,0],[0,0,1]。

df = pd.DataFrame({'A':['a','a','b','c'], 'B':['b','C','c','C']})
print(df)
'''
   A  B  C
0  a  b  1
1  a  C  0
2  b  c  2
3  c  C  0
'''
brand_onehot_encoder = OneHotEncoder()
print(df['B'].values)
'''
['b' 'C' 'c' 'C']
'''
brand_onehot_encoder.fit(df['B'].values.reshape(-1, 1))   # reshape(-1, 1)目的是将数据格式转化为单列形式;
te_brand_feat = brand_onehot_encoder.transform(df['B'].values.reshape(-1, 1))
print(te_brand_feat.toarray())
'''
[[0. 1. 0.]
 [1. 0. 0.]
 [0. 0. 1.]
 [1. 0. 0.]]
'''

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值