在数组之前
[[2][2][2][2][2][2][0][0][2][1]]
使用OneHotEncoder()
中的scikit-learn
one_hot_encoder = OneHotEncoder(categorical_features=[0])
print np_data_list
print one_hot_encoder.fit_transform(np_data_list).toarray()
此结果
[[0. 0. 1.][0. 0. 1.][0. 0. 1.][0. 0. 1.][0. 0. 1.][0. 0. 1.][1. 0. 0.][1. 0. 0.][0. 0. 1.][0. 1. 0.]]
但是当选择了多个类别时,分类数据如何进行预处理?
答案 0 :(得分:0)
OneHotEncoder
意味着您只能将类编码为具有一个条目为1
的向量。您可以为此使用sklearn's MultiLabelBinarizer。从链接:
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
mlb.fit_transform([(1, 2), (3,)])
array([[1, 1, 0],
[0, 0, 1]])
mlb.classes_
array([1, 2, 3])