下面显示了使用 LabelEncoder、OneHotEncoder、LabelBinarizer 对数组进行编码的简单示例。
我看到 OneHotEncoder 首先需要整数编码形式的数据才能转换为其各自的编码,而在 LabelBinarizer 的情况下不需要。
from numpy import array
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelBinarizer
# define example
data = ['cold', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold',
'warm', 'hot']
values = array(data)
print "Data: ", values
# integer encode
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(values)
print "Label Encoder:" ,integer_encoded
# onehot encode
onehot_encoder = OneHotEncoder(sparse=False)
integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)
onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
print "OneHot Encoder:", onehot_encoded
#Binary encode
lb = LabelBinarizer()
print "Label Binarizer:", lb.fit_transform(values)
解释 OneHotEncoder 的另一个很好的链接是:使用python解释onehotencoder https://stackoverflow.com/questions/42728772/explain-onehotencoder-using-python
两者之间可能还存在其他有效差异,专家可能会对此进行解释。