《Python数据分析与挖掘实战》,第四章数据预处理
缺失值处理
上一篇说到,处理缺失值的方法有3种:删除记录、数据插补、不处理,这个数据插补,该怎么插补呢?
数据插补的方法
后面,书中介绍了一种拉格朗日插值法
这个我就迷糊了,并没有看懂,书中讲了一堆公式,也没有个实例,真是不人性化
还有一种牛顿插值法
还是一堆公式,卒
哦哦,还好,有个拉格朗日插值法的实例,看看吧
参考这一篇吧:
异常值处理
对于异常值也有一种常用的处理方法:
- 删除含有异常值的记录
- 视为缺失值,使用缺失值的处理方式处理
- 平均值修正,可以用前后两个观测值的平均值修正该异常值
- 不处理
简单函数变换
这个挺好的,虽然我还没有应用过,但是,感觉很厉害,记录下
简单函数变换,是对原始数据进行某些数学函数变换,常用的变换,包括平方、开发、去对数、差分运算等
简单函数变换常用来将不具有正态分布的数据,变换为具有正太分布的数据
简单的对数变换或者差分运算就可以将非平稳序列转换成平稳序列
规范化
不同的评价指标往往具有不同的量纲,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果。
为了消除指标之间量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析
关于这一块儿,之前有写过:
1.最小最大规范化
2.零-均值规范化
我们需要思考的是,在不同的场景下,如何选择适合的规范化方法
小栗子,参考:数据规范化实例
连续属性离散化
将连续属性变换成分类属性,即连续属性离散化
连续属性的离散化就是在数据的取值范围内设定若干个离散的划分点,将取值范围划分为一些离散化的区间,最后使用不同的符号或整数值代表落在每个子区间中的数据值
常用的离散化方法:
等宽法
将属性的值,分成具有相同宽度的区间,比如将年龄按照5岁,分割成不同的年龄段等频法
就是每个区间的个数相同,比如每10个人一组,按照每个区间内这10个人的年龄进行分割,去其中的最小值和最大值作为区间段
以上两种方法,要基于数据特点或者是人为的划分,依赖人比较多
- 基于聚类分析的方法
也就是通过聚类算法,来看数据的分布如何,然后生成区间
小栗子参考:连续属性离散化实例