Task3

目标:

  • 学习特征预处理、缺失值、异常值处理、数据分桶等特征处理方法
  • 学习特征交互、编码、选择的相应方法

一、数据预处理

由于接下来需要用数学模型来建模,所以所有的样本都不能有特征缺失,同时非数值型的特征都需要想办法转化为数值型

1. 缺失值的填充

Task2里面详细讲过,此处略

2.类别特征处理

类别特征转化为数值型特征的方法通常有两种:

2.1LabelEncoder

该方法思想很简单,直接对类别取值编号即可,例如“grade(贷款等级)”这个类别特征现有的可能取值为“A,B,C,D,E,F”这6种取值,那么只需要依次编号为“1,2,3,4,5,6”即可

2.2OneHotEncoder

该方法的思想也很简单,直接将一个类别按照取值拆分成多个类别,例如“color(颜色)”这个类别特征有“red,green,blue”这2种可能取值,那么我们就可以按照这3个取值拆分出3个新的类别“red,green,blue”,效果如下:

  • 拆分前:
idcolor
0blue
1red
2green
  • 拆分后:
idredgreenblue
0001
1100
2010

2.3 LabelEncoder or OneHotEncoder?

通常对于那些取值之间有“优劣”之分的类别特征常用LabelEncoder,因为其本身取值的大小就是一个特征,例如上述例子中的“grade(贷款等级)”就是这类特征,而对于那些取值之间没有“优劣”之分的特征,例如上述例子中的“color(颜色)”就倾向于用OneHotEncoder。除了从取值之间的“优劣”这个角度来看以外,更重要的还是得从模型的角度来看,毕竟现在所做的一切都是为了下一步喂进模型,此处暂不展开,下个Task再说。

3.时间类特征处理

对于时间类特征,通常给的数据都是“年-月-日”这种字符串格式的取值,其本质也属于类别特征(凡是取值不是纯数值的都算类别特征),所以上面讲的类别特征处理方法也同样适用于时间类特征,不过考虑到时间类特征里面是含有数值的,所以其会有一些自己特有的处理方式。比如可以只保留年份这个数值作为取值,也可以将年月日拼接得到的数字作为取值,等等各种方法都可以。此处给的方法是取最小的日期为起点,然后计算每个日期超过该起点的天数作为取值,比如此处的最小日期是“2007-06-01”,那么“2007-06-02”就可以转化为1,因为它只超过了最小日期1天。

二.异常值处理

处理异常值时,一定要先分清是什么原因导致的异常值,然后再考虑如何处理。首先,如果这一异常值并不代表一种规律性的,而是极其偶然的现象,或者说你并不想研究这种偶然的现象,这时可以将其删除。其次,如果异常值存在且代表了一种真实存在的现象,那就不能随便删除。在现有的欺诈场景中很多时候欺诈数据本身相对于正常数据来说就是异常的,我们要把这些异常点纳入,重新拟合模型,研究其规律。常用的异常值检测算法如下:

1.3sigma原则

注意一个大前提:【假设该特征的取值服从正态分布】,那么在3sigma(此处的sigma表示的即为标准差常用的数学符号σ)原则下,超过3个标准差(即3sigma)的取值即为异常值。3sima原则默认为大约 68.27% 的取值会在均值的一个标准差(1sigma)范围内,大约 95.45% 会在两个标准差(2sigma)范围内,大约 99.73% 会在三个标准差(3sigma)范围内。当然这都是经验之谈,思路值得借鉴,具体指标还是要根据具体业务或者具体分布(因为有可能不服从正态分布)来进行具体分析。

2.箱型图

相对于3sigma原则有一个优势,就是不需要假设特征一定符合某个特定的分布,也就是不限定分布,那箱型图为何能检测异常值呢?具体参见:https://www.zhihu.com/question/36172806

三、特征分箱

特征分箱的目的:从模型效果上来看,特征分箱主要是为了降低变量的复杂性,减少变量噪音对模型的影响,提高自变量和因变量的相关度,从而使模型更加稳定。例如此次任务中的借贷数据,如果有“年龄”这个特征的话,那么取值应该是1-100之间的数字,这时候我们就可以考虑对“年龄这个特征做个分箱”,因为对于借贷数据来说精确的年龄意义不大,我们只需要知道年龄所处的阶段就可以了,也就是属于“儿童、青年、中年、老年”中的哪个阶段即可,那么我们就可以把1-18分箱为“儿童”,18-30分箱为“青年”,30-50分箱为“中年”,50-100分箱为“老年”,显然此时就降低了“年龄”这个特征的复杂度,取值从1-100共100种可能降低为了“儿童、青年、中年、老年”共4种可能,这对模型来说也更加容易学习。特征分箱根据不同类型的特征有不同的操作,但是其本质都是如此,在此不再展开。

四、特征交互

所谓特征交互就是尝试特征之间进行排列组合,进而衍生出一些新的特征,所以特征的复杂度会从O(n)扩展到O(n^2),相应的学习复杂度也呈类似增长,例如现在的数据只有两个维度的特征x1和x2,通过特征交互规则【A*A*B】我们可以衍生出x1*x1*x2和x2*x2*x1这两个新特征,那么现在就有了四个维度的特征x1、x2、x1*x1*x2、x2*x2*x1,相对于之前直接翻倍了。那么用怎样的特征交互规则衍生出的特征比较有效呢?同样这个也是一个需要根据具体业务具体数据具体特征来进行具体分析的任务。

五、特征选择

特征选择技术可以精简掉无用的特征,以降低最终模型的复杂性,它的最终目的是得到一个简约模型,在不降低预测准确率或对预测准确率影响不大的情况下提高模型计算速度。Task2中的缺失值和唯一值处理本质也是在做特征选择。常用的特征选择方法如下:

1.方差选择法

2.相关系数法(pearson 相关系数)

3.卡方检验

4.互信息法

5.递归特征消除法

6.基于惩罚项的特征选择法

7.基于树模型的特征选择

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值