某个样本的特征有多个特征。描述某个样本是由多个特征来处理
例如:对于Bengio这个人描述为:(男、美国、一米八)
对于上述特征每个特征有不同的状态位,例如性别有男女之分,其特征值都是离散的非连续值的无序值。为了将其连续有序化。则采用独热编码方式。
什么是独热编码(One-Hot)?
One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。
One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1
例如:
性别特征分男女两个状突则N为2,则有:
男=>10
女=> 01
身高特征有 一米八、一米七、一米六、一米五(举四个例子)则N=4
则有一米八=> 1000 、一米七=> 0100 、一米六=> 0010 、一米六五> 0001
其他特征类似
再有如下例子:
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import LabelBinarizer
from sklearn.preprocessing import MultiLabelBinarizer
testdata = pd.DataFrame({'pet': ['cat', 'dog', 'dog', 'fish'],
'age': [4 , 6, 3, 3],
'salary':[4, 5, 1, 1]})
将年龄按从小到大排列:3 4 6(3重复两次,按一次处理)
以上即有三个状态为,分为100 ,010,001