独热编码 One Hot Encode with scikit-learn

关于one hot编码的由来、好处以及我们为什么要在机器学习中使用,可以在网上很多地方找到说明。我们这里看看怎么样使用scikit-learn来完成one hot 编码。
第一种方法

  from sklearn.preprocessing import LabelEncoder
  from sklearn.preprocessing import OneHotEncoder

首先需要使用 LabelEncoder() 将data 转换成数字的标签,然后使用 OneHotEncoder()

  data = ['北京', '上海', '广州', '成都', '杭州', '深圳']
  label_encoder = LabelEncoder()
  label_encoded = label_encoder.fit_transform(data)
  print(label_encoded)
  one_hot_encoder = OneHotEncoder()
  one_hot_encoded = one_hot_encoder.fit_transform(label_encoded.reshape(-1, 1)).toarray()
  print(one_hot_encoded)

输出的结果:


image.png

第二种方法:
scikit-learn 提供了第二种一步到位的方法。使用LabelBinarizer

  from sklearn.preprocessing import LabelBinarizer
  data = ['北京', '上海', '广州', '成都', '杭州', '深圳']
  label_binarizer = LabelBinarizer()
  one_hot_encoded = label_binarizer.fit_transform(data)
  print(one_hot_encoded)

输出结果:


image.png

我们也可以通过 one-hot encoded vector 找到原来的文本类别

  beijing = one_hot_encoded[[0]]
  print(label_binarizer.inverse_transform(beijing))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容