一、简介
OneHotEncoder(n_values = 'auto',categorical_features='all',dtype=<class 'numpy.float64'),sparse=True,handle_unknown = 'error')
- 1、One-Hot编码也称为“独热”式编码,既然独热是只能有一位是“发光”的。在众多特征中仅仅有一个特征起作用。
- 2、比如红绿灯有三个特征红色、绿色、黄色,对这三种特征进行数字化处理,我们可以简单的通过定义红色=1、绿色=2、黄色=3来进行分类,这种分类实现的是标签编码,即给不同的类别打上标签。简单分类的弊端是机器可能会根据数值进行排序,从而导致了红色<绿色<黄色,我们事实只想让机器去区分他们,某方面说他们的地位相等。
- 3、为了地位相等我们使用了One-Hot编码,红色(1,0,0)、绿色(0,1,0)、黄色(0,0,1)。这种情况下,每两个向量之间的距离都是根号2,在向量空间中的距离是相等的,基本不会影响基于向量空间度量算法的效果。也可以看出来每次只有一位是1。
二、代码操作及参数详解
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
enc.fit([[0, 0, 3],
[1, 1, 0],
[0, 2, 1],
[1, 0, 2]])
ans = enc.transform([[0, 1, 3]]).toarray()
# 如果不