[Sklearn应用] Preprocessing data (三)编码分类特征 Encoding categorical features

此内容在sklearn官网地址: http://scikit-learn.org/stable/modules/preprocessing.html#
sklearn版本:0.18.2

one-hot-encode

  有时特征内容并不是数值,而是字符串类型。如果直接将字符串转成一个对应的数值,造成原本的特征具有大小关系。这是需要使用 one-hot-encode编码格式。

两种转化方式:

  • pandas.get_dummies():常用方法,功能强大,操作简单;
  • sklearn.preprocessing.OneHotEncoder():用法复杂且易报错,较少使用。
pandas.get_dummies(data, columns=["one","two",...], dummy_na=False, ...) 
# columns : 需处理的列逐个填写
# dummy_na : 是否将NA作为新的分类

sklearn.preprocessing.OneHotEncoder()使用时需将列的类型转成str类型。一般类的dtype如果是object,OneHotEncoder时会报错,因为object是混合类型,需将类型转换成str类型。

你可能感兴趣的:(机器学习,特征工程,编码,one,hot,get_dummies)