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)
输出: