哑变量=独热编码=稀疏矩阵
分类特征变量分为:名义变量,有序变量,有距变量
名义变量:如门A,B,C,指数据之间毫无关联性
有序变量:如小学,中学,大学,学历有高低,但不能相互计算
有距变量:如分数,体重,费用等,可以通过计算得出
对于有序变量可以使用编码进行处理,对于名义变量可以使用哑变量进行处理
sklearn中使用OneHotEncoder模块进行哑变量:
代码如下:
from sklearn.preprocessing import OneHotEncoder
x = data1.iloc[:,2:3]
one = OneHotEncoder(categories="auto") #categories使用auto进行自动特征查找
re = one.fit_transform(x)
res = re.toarray() #使用toarray转换查看
pd.DataFrame(res)
上述对性别进行哑变量
one.inverse_transform(re) #逆转
one.get_feature_names() #查看编码后的特征
使用concat方法添加到原数据
newdata = pd.concat([data2,pd.DataFrame(res)],axis = 1) #将哑变量追加到原数据