大数据分析之你会用Python做数据预处理吗
沉沙 2019-03-14 来源 : 阅读 1444 评论 0

摘要:本篇文章探讨了大数据分析之你会用Python做数据预处理吗,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章探讨了大数据分析之你会用Python做数据预处理吗,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

大数据分析之你会用Python做数据预处理吗

  在拿到一份数据准备做挖掘建模之前,首先需要进行初步的数据探索性分析(你愿意花十分钟系统了解数据分析方法吗?),对数据探索性分析之后要先进行一系列的数据预处理步骤。因为拿到的原始数据存在不完整、不一致、有异常的数据,而这些“错误”数据会严重影响到数据挖掘建模的执行效率甚至导致挖掘结果出现偏差,因此首先要数据清洗。数据清洗完成之后接着进行或者同时进行数据集成、转换、归一化等一系列处理,该过程就是数据预处理。一方面是提高数据的质量,另一方面可以让数据更好的适应特定的挖掘模型,在实际工作中该部分的内容可能会占整个工作的70%甚至更多。

  01、缺失值处理

  由于人员录入数据过程中或者存储器损坏等原因,缺失值在一份数据中或多或少存在,所以首先就需要对缺失值进行处理,缺失值处理总的原则是:使用最可能的值代替缺失值,使缺失值与其他数值之间的关系保持最大。具体的常用方法如下:

  删除缺失值(缺失值占比很小的情况)

  人工填充 (数据集小,缺失值少)

  用全局变量填充(将缺失值填充一常数如“null”)

  使用样本数据的均值或中位数填充

  用插值法(如拉格朗日法、牛顿法)

  Python缺失值处理实例代码:

  a、判断删除缺失值- -isnull,notnull

  判断缺失值可以用来计算缺失值占比整个数据的大小,如果占比很小可以删除缺失值。

  b、填充替换缺失值--fillna

  如果缺失值不可以占比很多,就不能能够轻易的删除缺失值,可以用上述的插值方法填充缺失值。

  c、核心代码和结果图:

  02、异常值处理

  异常值是数据集中偏离大部分数据的数据。从数据值上表现为:数据集中与平均值的偏差超过两倍标准差的数据,其中与平均值的偏差超过三倍标准差的数据(3σ原则),称为高度异常的异常值。

  异常值分析方法

  3σ原则 (数据分布为正态分布)

  箱型图分析(内限or外限)。

  常用处理方法如下:

  直接删除 (异常值占比小)

  暂且保留,待结合整体模型综合分析

  利用现有样本信息的统计量填充(均值等)

  Python异常值处理实例代码:

  检验是否符合正态分布,符合用3σ原则判断并处理,核心代码结果如下:

  2. 当不符合正态分布时可用箱型图分析处理,核心结果代码如下:

  03、数据标准化处理

  数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权,最典型的就是数据归一化处理就是将数据统一映射到[0,1]区间上 。

  常用数据标准化方法:

  MIN- MAX标准化(x - x_min)/(x_max-x_min)

  z-score标准化(x-x_mean)/x_std

  小数定标标准化

  向量归一化

  线性比例变换法

  平均值法

  指数转换法

  归一化的目的:

  使得预处理的数据被限定在一定的范围

  消除奇异样本数据导致的不良影响

  在大佬Ng的视频课中听过一句话,归一化会加快梯度下降的求解速度。

  应用场景说明:

  SVM、线性回归之类的最优化问题需要归一化,是否归一化主要在于是否关心变量取值;

  神经网络需要标准化处理,一般变量的取值在-1到1之间,这样做是为了弱化某些变量的值较大而对模型产生影响。一般神经网络中的隐藏层采用tanh激活函数比sigmod激活函数要好些,因为tanh双曲正切函数的取值[-1,1]之间,均值为0;

  在K近邻算法中,如果不对解释变量进行标准化,那么具有小数量级的解释变量的影响就会微乎其微。

  注意:没有一种数据标准化的方法,放在每一个问题,放在每一个模型,都能提高算法精度和加快算法的收敛速度。所以对于不同的问题可能会有不同的归一化方法。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好。

  04、数据连续属性离散化

  一些数据挖掘算法,特别是分类算法,要求数据是分类属性形式。常常需要将连续属性变换成分类属性,即连续属性离散化。 常用的离散化方法:

  等宽法:将属性值域分成具有相同宽度的区间,区间的个数由数据本身的特点决定,或者由用户指定,类似于制作频率分布表。

  等频法:将相同数量的记录放进每个区间。

  基于聚类分析的方法。 通过分箱离散化、通过直方图分析离散化、通过聚类、决策树和相关分析离散化、标称数据的概念分层产生。

  05、总结

  本文是笔者在学习数据分析过程中记录下来的一些通用的数据预处理步骤,并且用Numpy、Pandas、Matplotlib等实现了每一种处理方法并可视化了处理结果。


      本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved