数据科学中经常出现的标签为文本型的,因为需要转化为数值型,以便后续处理。
参考一、
get_dummies 是利用pandas实现one hot encode的方式。详细参数请查看官方文档
官方文档在这里
get_dummies 前:
get_dummies 后:
另:pd.get_dummies(df.color)
df = df.join(pd.get_dummies(df.color))
参考二、
利用pandas的Categorical()
import pandas as pd
c = ['A','A','A','B','B','C','C','C','C']
category = pd.Categorical(c)
print category.codes
参考三、
利用 sklearn
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 用于将表示分类的数据扩维:
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,0,1,0] , [1,0,0,0] ,[0,0,0,1] ]
参考四、
利用keras中的keras.utils.to_categorical方法
to_categorical(y, num_classes=None, dtype='float32')
将整型标签转为onehot。y为int
数组,num_classes为标签类别总数,大于max(y)(标签从0开始的)。