一、基础知识
one-hot是比较常用的文本特征特征提取的方法。
one-hot编码,又称“独热编码”。其实就是用N位状态寄存器编码N个状态,每个状态都有独立的寄存器位,且这些寄存器位中只有一位有效,说白了就是只能有一个状态。
假设有四个样本,每个样本有三种特征:
这样,4个样本的特征向量就可以这么表示:
sample1 -> [0,1,1,0,0,0,1,0,0]
sample2 -> [1,0,0,1,0,0,0,1,0]
sample3 -> [0,1,0,0,1,0,0,1,0]
sample4 -> [1,0,0,0,0,1,0,0,1]
举个例子
在举个例子
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male', 1], ['Female', 3], ['Female', 2]]
enc.fit(X)## fit来学习编码
enc.categories_
特征1为male和female两种类型,特征2为1/2/3三种类型,也即
用fit训练
enc.transform([['Female', 1], ['Male', 4]]).toarray() # 将one-hot encode转换成数组(顺转换)
enc.inverse_transform([[0