在机器学习中,one-hot编码是对分类特征进行预处理的常用手段。本篇博客讲解了如何利用sklearn来进行one-hot编码。

举一个简单的例子:

>> from sklearn.preprocessing import OneHotEncoder
>>> enc = OneHotEncoder()
>>> enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
OneHotEncoder(categorical_features='all', dtype=<... 'numpy.float64'>,handle_unknown='error', n_values='auto', sparse=True)
>>> enc.n_values_
array([2, 3, 4])
>>> enc.feature_indices_
array([0, 2, 5, 9])
>>> enc.transform([[0, 1, 1]]).toarray()
array([[ 1.,  0.,  0.,  1.,  0.,  0.,  1.,  0.,  0.]])

首先确认一下输入样本[[0, 0, 3], [1, 1, 0], [0, 2, 1],[1, 0, 2]],

这个输入样本表示该input共有四个样本,三个特征,也就是三列。这里我们观察可以发现对于第一个feature,对应第一列,它的取值有0,1两个属性值,第二列有0,1,2三个值,第三个有0,1,2,3四个取值。那么这里的enc.n_values_就是每个属性列不同属性值的个数,所以输出可以看到分别是2,3,4。而enc.feature_indices_是对enc.n_values_的一个累加。

enc.transform([[0, 1, 1]]).toarray()

这一句目标是将[0, 1, 1]这个样本转化为基于上面四个输入的one-hot编码。那么可以得到:

第一个属性值0,对应第一列:0->10

第二个属性值1,对应第二列:1->010

第三个属性值1,对应第三列:1->0100

所以[0, 1, 1]对应以上输入的one-hot编码为

[1,0,0,1,0,0,1,0,0]。

Python: 进行one-hot编码相关推荐

  1. python pandas 独热编码

    python pandas 独热编码 import pandas as pd df1 = pd.DataFrame({'姓名': ['周', '武', '郑'],'成绩': [100, 96, 77] ...

  2. unicode 编码转换漏洞_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

  3. python exe运行报 编码错误_python运行显示编码错误

    python中运行显示编码错误一般有2种原因: 编码与译码的方式不一致 在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息: SyntaxError: Non-ASCII chara ...

  4. python无法打印unicode编码_【整理】Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来或打印出来却是乱码...

    [背景] Python中的字符编码,其实的确有点复杂. 再加上,不同的开发环境和工具中,显示的逻辑和效果又不太相同,尤其是,中文的,初级用户,最常遇到的: (1)在Python自带的IDE:IDLE中 ...

  5. python编码转换语句_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

  6. python 获取系统相关编码的函数

    怎么避免UnicodeEncodeError: 'ascii' codec can't-类似的错误? 1.首先在py文件头部指定文件内容编码,例如:# coding: utf8 2.文件保存的时候要和 ...

  7. python中的URL编码和解码

    python中的URL编码和解码:test.py 1 # 引入urllib的request模块 2 import urllib.request 3 4 url = 'https://www.douba ...

  8. python批量转换文件编码

    python批量转换文件编码   3年之前   python 今天在 eclipse 中导入了个之前的 swing 项目,结果跑起来后乱码,检查代码发现竟然一部分 java 文件是 utf-8 编码, ...

  9. Python 对文件进行编码转换

    Python 对文件进行编码转换 import sys import chilkat charset = chilkat.CkCharset() #  Any string argument auto ...

  10. Python 定义源码编码 (Source Encoding)

    Python 定义源码编码 (Source Encoding) import chilkat someBytes = chilkat.CkByteData() someBytes.append('\x ...

最新文章

  1. matlab optimvar
  2. 在php中可以使用几种方法定义数组,PHP中数组定义的几种方法
  3. 23期PHP基础班第四天
  4. GitHub 热榜第一!这个 Python 项目超 8.4k 标星,网友:太实用!
  5. oracle组合数据类型,oracle复合数据类型-相关方法
  6. 微信小程序独家秘笈之左滑删除
  7. 27.将 VMware 服务器上的虚拟机备份到 Azure(上)
  8. 【系统架构】如何逐步去构建一个大型网站系统
  9. spring4笔记----spring生命周期属性
  10. gcms基峰有什么用_金鉴实验室 | 气相质谱(GCMS)
  11. Qt开发 之 删除文件或文件夹到回收站(详解)
  12. 微软热招,一起定义未来的搜索引擎!
  13. 被晨光搁浅的誓言无声
  14. PowerDesigner 15 License Key失效的解决方案
  15. 缓动函数及DOTWeen的SetEase方法
  16. JAVA SE基础---kuangstudy
  17. 测向交叉定位matlab,一种三维多站测向交叉定位算法
  18. 门店数字化转型| 美容院管理系统
  19. HTML+CSS 编辑的(多列布局、相册、百度首页)、盒子模型
  20. LeetCode994 Rotting Oranges解题方案

热门文章

  1. 从维密天使到编程大拿,她的彪悍人生不需要解释!
  2. Java消息队列--ActiveMQ 实战
  3. windows系统漏洞修复CVE-2016-2183,CVE-2013-2566,CVE-2015-2808
  4. Android 锁屏后Socket长连接踩坑总结
  5. Linux——MySQL分表分区
  6. 使用python提取英语句子中的英文单词(初学)
  7. zabbix查询历史数据
  8. 黑客窃取企业数据的后门程序技巧
  9. 超实用!教你用 Python 获取并下载美股数据
  10. three.js 场景编辑器 源码解析(六)