1.One-Hot Encoding
有多少个状态就用几个bit来进行表示,实际上是向量维度增加了。
树形模型不进行One-Hot Encoding
from sklearn.preprocessing import OneHotEncoder
import pandas as pd
data = pd.DataFrame({'number': [1, 2, 1], 'age': [20, 25, 30], 'height': [175, 178, 180]})
arr = OneHotEncoder(sparse=False).fit_transform(data[['age','height']])
2.标签二值化
OneHotEncoder无法对字符串进行编码,可以使用LabelBinarizer进行字符串编码。
接收矩阵数据
from sklearn.preprocessing import LabelBinarizer
data = pd.DataFrame({'name': ['zhang', "li", "song"], 'age': [20, 25, 30], 'height': [175, 178, 180]})
labelBinarizer = LabelBinarizer()
newarr3 = labelBinarizer.fit_transform(data['age'])
3.标签数值化
LabelEncoder可以把标签变成多值
from sklearn.preprocessing import LabelEncoder
data = pd.DataFrame({'name': ['zhang', "li", "song"], 'age': [20, 25, 30], 'height': [175, 178, 180]})
labelEncoder = LabelEncoder()
newarr4 =labelEncoder.fit_transform(data['name'])