pandas实现one-hot编码

机器学习中我们常常需要自己准备数据,对于分类task,one-hot编码是最常用的label方式。

什么是one-hot:离散的每一种取值都看做一个类别,若一种特征中有N个不相同的取值,那么就可以将该特征当作N种不同的类别,one-hot编码保证了每一个类别都会有唯一的取值,仅在该类别上取值为,其他位置取值为0。

举例来说,如果特征1下有cat、dog、horse,那么one-hot编码如下:

cat\rightarrow [1,0,0]   dog\rightarrow [0,1,0]   horse\rightarrow [0,0,1]

代码上用pandas中的pd.get_dummies()实现:

import pandas as pd
import numpy as np

data = pd.read_csv('feature.csv')
data = pd.DataFrame(data,columns=['animal'])
print (data)

输出:pandas实现one-hot编码_第1张图片

dummies = pd.get_dummies(data)

输出:pandas实现one-hot编码_第2张图片

那么利用pandas来实现one-hot编码的方法如上,这里需要强调的是,即使数据是一堆没有实际意义的编码,同样可以使用pd.get_dummies()来实现one-hot编码。

数据如下:

pandas实现one-hot编码_第3张图片

one-hot编码结果:

pandas实现one-hot编码_第4张图片

你可能感兴趣的:(编程学习)