one-hot 编码 preprocessing.OneHotEncoder()

from sklearn import preprocessing
enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])   
enc.transform([[0, 1, 3]]).toarray()  

有3列,每列为一个特征:

0 0 3
1 1 0
0 2 1
1 0 2

第一列的取值为 01

第二列的取值为 01 2

第二列的取值为 01 2 3

所以对应的 【0 1 3】的one-hot 编码为 10   010  0001

如果还不理解比如:男女  10为男  01为女

再举一个例子:

from sklearn import preprocessing
data = [["男", "北京", "1"], ["女", "2", "1"], ["女", "1","2"], ["男", "2", "3"]]
enc=preprocessing.OneHotEncoder()
encoder = enc.fit(data)
m=enc.transform([["男", "北京", "1"]]).toarray()
print(m)

输出:

one-hot 编码 preprocessing.OneHotEncoder()_第1张图片

你可能感兴趣的:(数据挖掘)