使用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的类别数目不太多,建议优先考虑。

python特征工程有序变量处理_特征工程之离散变量处理相关推荐

  1. python特征工程有序变量处理_R与Python手牵手:特征工程(分类变量)

    作者:黄天元,复旦大学博士在读,热爱数据科学与R,热衷推广R在业界的应用.邮箱:huang.tian-yuan@qq.com.欢迎交流! 这次给大家分享的是对分类变量进行特征工程.很多时候我们会遇到一 ...

  2. linux中python如何调用matlab的数据_特征锦囊:如何在Python中处理不平衡数据

    今日锦囊 特征锦囊:如何在Python中处理不平衡数据 ? Index 1.到底什么是不平衡数据 2.处理不平衡数据的理论方法 3.Python里有什么包可以处理不平衡样本 4.Python中具体如何 ...

  3. python需要配置环境变量吗_教你手动设置python环境变量

    在Windows系统上安装Python非常简单,从头到尾只要跟着步骤走,一路点击"NEXT"按钮即可.最重要也是最麻烦的是安装完毕后需要手动设置下环境变量,到了这一步,很多朋友都不 ...

  4. 安装工程造价课程设计_安装工程造价课程设计的图纸-上海装修报价

    安装工程造价是什么它与工程造价有什么区别 更多关于工程造价的知识 > 网友都在找: 安装预算教程 消防工程造价 造价电气图 消防... 水电安装工程每平方工程造价是多少 1.平米成本:193元. ...

  5. python 卡方分箱算法_特征工程 - 分箱

    卡方分箱 python自帶分箱函數  --  無法實現對分類型數據的分箱,可借助卡方分箱算法實現 import numpy as np import pandas as pd data = np.ra ...

  6. python中none算变量吗_在python中对变量判断是否为None的三种方法总结

    三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...

  7. python打印多个变量名_如何在Python中打印单个和多个变量?

    请考虑下面Python 2.x中的两个Python代码片段.# Code 1 print 1 # Output: 1# Code 2 print(1) # Output: 1 在Python 2.X中 ...

  8. python程序设计课程设计二级减速器_机械工程专业的本科生应该自学哪些知识?...

    本人机械工程师,偏设计方向,硕士学历,有9年机械工程经验,曾担任某央企项目负责人,算不上大牛. 虽然离题目提出时间已经很遥远了,但看了这个题目和许多回答真的感慨很多,加上一些知友最近私信问我类似的问题 ...

  9. python 什么可以作为变量名_为什么强烈禁止开发人员使用isSuccess作为变量名

    在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提供一个RPC接口的时候,我们一般会定义一个字段表示本次请求是否成功的. 关于这个"本次请求是否成功"的字段的定 ...

最新文章

  1. mysql intersects_mysql gis 空间数据库 根据 经纬度查找附近 (INTERSECTS,within)
  2. 即学即用的 30 段 Python 非常实用的代码
  3. 利用HttpClient 获取网页数据java代码模版
  4. 车祸是怎么发生的 不论你是否开车都该看看!
  5. 基于Echarts+HTML5可视化数据大屏展示—大数据管理平台中心(二)
  6. 日语学习-多邻国-人
  7. 互联网大厂的“中台战略”到底是什么?
  8. Windowsxp系统无法安装新字体
  9. Word打开目录导航、多页视图显示文章的方法
  10. 计算机网络:广域网的基本概念
  11. 误码率(BER)测试仪市场研究分析
  12. python爬虫——爬去淘宝商品页面,总是跳转到登录界面
  13. 健康数据的获取 Iphone
  14. 基于JAVA的校园论坛系统设计与实现
  15. tpcc工具使用案例
  16. 高效操作字串的String Reference类
  17. 传说中的100句英语可以帮你背7000单词(zt)
  18. React路由跳转时通过传参进行动态渲染的方法
  19. android 图片格式 xvg,大势所趋,应用如何适配Android P HEIF图片格式
  20. liunx配置主机名

热门文章

  1. android获取sim卡手机号码,Android 读取SIM卡联系人
  2. Openwrt内网穿透NPS(新路由3d)
  3. 网络协议Http知识总结
  4. 做电商/外贸,搭建一个自己的网站要怎么选服务器(配置)?
  5. excel能设置从属值集吗_Excel中的从属组合框
  6. 通过经纬度查看地图位置的app
  7. python求和1到100_Python3基础 sum,range 计算1到100的和
  8. CDMA模块与网络连接方式
  9. 计算机视听觉机理和方法,【看点】 “视听觉信息的认知计算”重大研究计划 迎接人工智能新时代...
  10. 怎么用html5制作申请表,html-5 表格的制作