使用sklearn训练模型,只能输入数值型变量。因此需要对数据集中的非数值型离散变量进行处理,非数值型离散变量分为两类:有序型与无序型

一、有序型离散变量处理

什么叫有序型离散变量呢,比如说衣服尺码,M、L、XL;学历:小学、初中、高中、本科;这些都属于有序型变量。

在上图数据表格中,size及classlabel则为有序型变量,自定义有序型字典表,进行相关映射即可:

二、无序型离散变量处理

衣服的颜色,风向、人员类别这些都属于无序型变量,如果转换成有序型数值代入模型会对建模结果造成影响,因此对于无序型变量需要做独热编码或者哑变量处理

(1)独热编码

独热编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。 独热编码是分类变量作为二进制向量的表示,这首先要求将分类值映射到整数值,然后再将每个整数值表示为二进制向量。

具体操作如下:首先将无序型变量color利用LabelEncoder()方法映射为数值

再将整数型数值进行独热编码

(2)哑变量处理

  在模型中引入多个虚拟变量时,虚拟变量的个数应按下列原则确定: 如果有m种互斥的属性类型,在模型中引入(m-1)个虚拟变量。 例如,性别有2个互斥的属性,引用2-1=1个虚拟变量;再如,文化程度分小学、初中、高中、大学、研究生5类,引用4个虚拟变量。 
  pandas中的get_dummies方法来创建哑特征,get_dummies默认会对DataFrame中所有字符串类型的列进行独热编码:

在实际特征工程处理过程中,使用LabelEncoder()+OneHotEncoder()方式,sklearn能够将训练集属性记录,并可以采用transform()方法直接作用于待加入模型的测试集。

什么情况下用都热编码:

  • 用:独热编码用来解决类别型数据的离散值问题,
  • 不用:将离散型特征进行one-hot编码的作用,是为了让距离计算更合理,但如果特征是离散的,并且不用one-hot编码就可以很合理的计算出距离,那么就没必要进行one-hot编码。 有些基于树的算法在处理变量时,并不是基于向量空间度量,数值只是个类别符号,即没有偏序关系,所以不用进行独热编码。  Tree Model不太需要one-hot编码: 对于决策树来说,one-hot的本质是增加树的深度

总的来说,要是one hot encoding的类别数目不太多,建议优先考虑。

转载于:https://www.cnblogs.com/dearL/p/9551726.html

特征工程之离散变量处理相关推荐

  1. python特征工程有序变量处理_特征工程之离散变量处理

    使用sklearn训练模型,只能输入数值型变量.因此需要对数据集中的非数值型离散变量进行处理,非数值型离散变量分为两类:有序型与无序型 一.有序型离散变量处理 什么叫有序型离散变量呢,比如说衣服尺码, ...

  2. 「特征工程」之零基础入门数据挖掘

    Datawhale 作者:吴忠强,Datawhale优秀学习者 摘要:对于数据挖掘项目,本文将学习应该从哪些角度做特征工程?从哪些角度做数据清洗,如何对特征进行增删,如何使用PCA降维技术等. 特征工 ...

  3. 常用特征工程方法总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 摘要:对于数据挖掘项目,本文将学习应该从哪些角度做特征工程?从哪些 ...

  4. 电信用户流失预测案例(2)(特征工程)

    [Kaggle]Telco Customer Churn 电信用户流失预测案例 第二部分导读   在上一部分中,我们已经完成了对数据集背景解读.数据预处理与探索性分析.在数据背景解读中,我们介绍了数据 ...

  5. 金融风控--申请评分卡模型--特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融风

    金融风控-->申请评分卡模型-->特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融 ...

  6. 专栏 | 基于 Jupyter 的特征工程手册:特征选择(三)

    作者:陈颖祥.杨子晗 编译:AI有道 数据预处理后,我们生成了大量的新变量(比如独热编码生成了大量仅包含0或1的变量).但实际上,部分新生成的变量可能是多余:一方面它们本身不一定包含有用的信息,故无法 ...

  7. 专栏 | 基于 Jupyter 的特征工程手册:特征选择(二)

    作者:陈颖祥.杨子晗 编译:AI有道 数据预处理后,我们生成了大量的新变量(比如独热编码生成了大量仅包含0或1的变量).但实际上,部分新生成的变量可能是多余:一方面它们本身不一定包含有用的信息,故无法 ...

  8. 【零基础入门数据挖掘】-特征工程

    Datawhale 作者:吴忠强,Datawhale优秀学习者 摘要:对于数据挖掘项目,本文将学习应该从哪些角度做特征工程?从哪些角度做数据清洗,如何对特征进行增删,如何使用PCA降维技术等. 特征工 ...

  9. 用户特征工程详细解读

    在网上找到了美团一位叫付晴川同学些的ppt,里面有一幅描述用户特征工程的图,感觉总结得还是比较到位的.现在把图片贴出来:  这张图将用户特征工程里的大面基本都囊括了.因为ppt本身做得比较简单,现在我 ...

最新文章

  1. R语言ggplot2可视化:可视化分组的小提琴图(violin plot)并在分组小提琴内部嵌入箱图(box plot)
  2. WINCE Launch函数分析
  3. py脚本得到Python的版本
  4. JVM调优技巧与经验
  5. 跟踪React流–将Spring Cloud Sleuth与Boot 2结合使用
  6. 【ZOJ - 4024】Peak(模拟,水题)
  7. 【Python】http.client库的用法
  8. 欧盟网络安全局发布《供应链攻击威胁全景图》报告(上)
  9. swift4.1 系统学习十 函数
  10. 【动态规划】leetcode 53:最大子数组和
  11. junit mockito_Mockito存根异常– JUnit,TestNG
  12. php libiconv close_PHP出现undefined reference to `libiconv' 错误的解决方法
  13. C语言顺序表的12个基本操作(增删改查等)
  14. python数据透视表对各列统计_python pandas数据分析基础入门2——(数据格式转换、排序、统计、数据透视表)...
  15. 游戏服务器背包系统,Unity MMORPG 背包系统如何设计
  16. 米勒-拉宾质数判断证明
  17. 虚拟化技术 、 Win系统安装
  18. 飞冰 - ICE Design Pro 使用指南
  19. i217lm网卡驱动linux,【电脑不能上网怎么安装网卡驱动】i217lm网卡驱动xp
  20. urllib和urllib2的区别和使用

热门文章

  1. 被IP代理网站屏蔽了,真是跪了
  2. linux命令---查找文件中的内容
  3. englis translate,word
  4. 周立波贼经典的话1-10
  5. 東方茸回廊 汉化补丁
  6. Ubuntu Server 16.04服务器版配置图解教程06 - 安装MySql
  7. html-body标签中相关标签 02
  8. BZOJ2298 [HAOI2011]problem a 【dp】
  9. win32: 查询滚动条相关信息的注意事项
  10. 变量的域内赋值和域外赋值