如何预处理从分类数据中选择多个?

时间:2018-07-03 11:30:01

标签: python machine-learning scikit-learn categorical-data

在数组之前

[[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.]]

但是当选择了多个类别时,分类数据如何进行预处理?

Example

1 个答案:

答案 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])