机器学习之数据预处理--独热编码(One-Hot)

某个样本的特征有多个特征。描述某个样本是由多个特征来处理

例如:对于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

你可能感兴趣的:(机器学习)