简单来说 LabelEncoder 是对不连续的数字或者文本进行编号(连续的会是同一个编号)
分类,但有排序逻辑关系,等级上高于定类。
比如,学历分小学,初中,高中,本科,研究生,
各个类别之间存在一定的逻辑,显然研究生学历是最高的,小学最低。
这时候使用Label encoding会显得更合适,
因为自定义的数字顺序可以不破坏原有逻辑,并与这个逻辑相对应。
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit([1,5,67,100])
le.transform([1,1,100,67,5])
输出: array([0,0,3,2,1])#有顺序的
OneHotEncoder 用于将表示分类的数据扩维: (one-hot encoding 独热编码(哑变量))
纯分类,不排序,没有逻辑关系。比如性别分男和女,男女不存在任何逻辑关系,
我们不能说男就比女好,或者相反
from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder()
ohe.fit([[1],[2],[3],[4]])
ohe.transform([2],[3],[1],[4]).toarray()
输出:[ [0,1,0,0] , [0,