数据处理之编码(独热编码、标签编码)

独热编码 (One-Hot)

为样本特征的每个值建立一个由一个1和若干个0组成的序列, 用该序列对所有的特征值进行编码.

1		3		2
7		5		4	
1		8		6	
7		3		9
为每一个数字进行独热编码:
1-10    3-100	2-1000
7-01    5-010   4-0100
        8-001   6-0010
                9-0001
使用上述码表, 对原始矩阵编码过后的结果为:
101001000
010100100
100010010
011000001

独热编码相关API:

# 获取独热编码器对象
ohe = sp.OneHotEncoder(sparse=是否采用紧缩格式)
# 对原始样本矩阵进行处理
result = ohe.fit_transform(原始样本矩阵)
# 获取独热编码器对象
ohe = sp.OneHotEncoder(sparse=是否采用紧缩格式)
# 对原始样本矩阵进行训练,得到编码字典
encode_dict = ohe.fit(原始样本矩阵)
# 根据字典对样本矩阵执行独热编码
result = encode_dict.transform(样本矩阵)

案例:

# 构建独热编码器
ohe = sp.OneHotEncoder(sparse=False, dtype=int)
r = ohe.fit_transform(samples)
print(r)
[[1 0 0 0 0 1 1 0 0]
 [0 1 0 0 1 0 0 1 0]
 [0 0 1 1 0 0 0 0 1]]
标签编码

根据字符串形式的特征值在特征序列中的位置, 为其指定一个数字标签, 用于提供给基于数值算法的学习模型。标签编码是深度学习中非常常用的编码方式。

标签编码相关API:

# 创建标签编码器
lbe = sp.LabelEncoder()
# 执行标签编码
result = lbe.fit_transform(原始样本矩阵)
# 标签解码, 通过result矩阵回推样本矩阵
样本矩阵 = lbe.inverse_transform(result)

案例:

"""
标签编码器
"""
import numpy as np
import sklearn.preprocessing as sp

samples = np.array(['audi', 'ford', 'audi',
	'toyota', 'ford', 'bmw', 'toyota',
	'ford', 'audi'])

# 标签编码器
lbe = sp.LabelEncoder()
r_samples = lbe.fit_transform(samples)
print(r_samples)

inv_samples = lbe.inverse_transform(r_samples)
print(inv_samples)
[0 2 0 3 2 1 3 2 0]
['audi' 'ford' 'audi' 'toyota' 'ford' 'bmw' 'toyota' 'ford' 'audi']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值