1 使用均值填充
#空值的处理
X = X.replace("?", np.NAN)
# 使用Imputer给定缺省值,默认的是以mean
# 对于缺省值,进行数据填充;默认是以列/特征的均值填充
imputer = Imputer(missing_values="NaN")
X = imputer.fit_transform(X,Y)
2 字符数据进行编码
from sklearn.preprocessing import OrdinalEncoder
oe = OrdinalEncoder()
#线上线下数据融合,防止编码过程中出现线下数据有编码,线上数据无编码的情况
oe.fit(x_all)
x = oe.transform(x)
x_on = oe.transform(x_on)
3 实现亚编码
from sklearn.preprocessing import label_binarize
label_binarize(y_test[names[-4]],classes=(0,1,2)).T[0:-1].T.ravel()
4 LabelEncoder
from sklearn.preprocessing import LabelEncoder
import pandas as pd
a = pd.DataFrame([["b",2,3],
["a",5,6],
["a",8,9]],columns = ["feature_1", "feature_2", "label"])
laCoder = LabelEncoder()
b = pd.DataFrame(laCoder.fit_transform(a["feature_1"]))
pd.concat([a,b],axis=1)