one-hot编码实现详解
one-hot编码,又称一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候只有一位有效。
one-hot编码是特征处理中的必备,在项目中我们是这么应用的:
Tensorflow中one_hot() 函数用法
sklearn实现one-hot编码
附代码一份:
import tensorflow as tf
from sklearn.preprocessing import OneHotEncoder
from numpy import array
from sklearn.preprocessing import LabelEncoder
data = ['cold', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold', 'warm', 'hot']
values = array(data)
# 为每个唯一单词指定唯一索引
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(values)
# 方法一:Tensorflow中one_hot() 函数用法
one_hot_data = tf.one_hot(integer_encoded, 3)
one_hot_data
# 方法二:sklearn实现one-hot编码
integer_encoded_sklearn = integer_encoded.reshape(len(integer_encoded), 1)
# 将sparse参数设置为False,则直接生成array对象,可直接使用
onehot_encoder = OneHotEncoder(sparse=False)
onehot_encoded = onehot_encoder.fit_transform(integer_encoded_sklearn)
onehot_encoded