数据预处理

1. 数据清洗: 缺失值、异常值和重复值的处理
2. 类别数据处理
3. 数据降维
4. 样本类别分布不平衡
5. 抽样还是全样本
6. 共线性
7. 相关性分析
8. 标准化
9. 离散化
10. 非结构化数据预处理

- 1. 数据清洗:
   缺失值:
                  处理思路: 发现缺失值--》分析缺失值占比及是否有显著的分布特征--》使用的模型是否能自动处理--》决定采用的缺失值方法。
    1. 删除(缺失样本比例较小,低于10%)
    2. 补全 
    (1)使用均值、中位数和众数等补全。
    (2)利用模型进行补全:基于其他已有的字段,将缺失值为目标变量进行预测。
                (3)真值转换法。如性别中有缺失,可以转换为3个变量,是否男性,是否女性,是否缺失。
    (4)找到与之相似的样本,做聚类。
    3. 不处理
    有些模型能够自动地处理缺失值,如一些有关树的模型。

     异常值:可以用于客户异常识别,信用卡欺诈,贷款审批识别等等。
     重复值:根据业务需求进行处理。

- 2. 类别数据的处理
- 分类数据和顺序数据

   都应该采用ONE-HOT编码。如果用1,2去编码,反映出这些变量取值之间是有差异的,但实际上并没有或者无法准确区分。

-3.降维
降维的原因: 数据维度太高,导致运算耗时,内存不够等。
 1. 基于特征的降维方法
     (1)经验法。由专家选择一部分变量,其余删除。
     (2)基于统计分析的方法。通过相关性分析不同维度之间的相关性,在相关性高的维度中进行人工删除等等。
      (3)机器学习法。通过机器学习算法得到不同特征之间的特征值或者权重,然后根据权重选择最大的特征。

好处: 在保留了原始变量的基础上进行降维,既能满足建模的需要又能保留原始维度的含义,以便于业务理解和应用。

2. 基于维度转换的降维方法
基本思想:通过数学变换方法,把给定的一组相关变量通过数学模型将高维空间中的数据点映射到低维空间中,然后利用映射后的变量来表示原有变量。这种方式是一种产生新维度的过程,转换后的维度并非原有维度的本体,而是其综合多个维度转换或映射后的表达式。

常见的两种方法: LDA,PCA
注意:
在建模过程中,常把数据分为训练集和测试集,那么降维的时候是用全部数据还是部分数据。这取决于采用的降维方法,比如,PCA只需求出映射矩阵,就可以实现降维,这个时候,我们可以采用部分数据。但是有些降维方法是基于某种局部的结构从而实现降维的,这个时候应该采用全部的数据。

4. 样本不平衡问题
坏处: 将导致样本量少的类别包含的特征过少,很难从中提取出规律;即使得到分类模型,也容易因为过度依赖样本而导致过拟合,泛化性能会很差。
出现的场景:
 1. 异常检测场景; 2、客户流失场景; 3、罕见事件的分析; 4、 发生频率低的时间。
处理方法:
1. 采样法: 过采样、欠采样;SMOTE法
2、 通过对正负样本的惩罚权重解决。sklearn: class_weight.
3、集成方法,如Easy_ensemble。每次在多类样本中选择与少类样本数目一样的样本数,多次反复训练模型,将结果进行组合。

5. 抽样还是全样本
抽样使用的条件:计算资源不足,采样限制,时效性要求;快速概念验证、解决不平衡问题、定性分析工作的需要。
抽样方式:非概率抽样和概率抽样。
常用的概率抽样法:
(1)简单随机抽样
使用前提是等概率分布的
(2)等距抽样 
总体的每个样本按顺序编号,然后计算出抽样间隔,再按照抽样间隔抽取个体。
好处:简单易行,易于理解。
缺点:当总体样本呈现出明显的分布规律时,会产生偏差。如增减趋势或者周期性规律。
适用条件:个体分布均匀或者呈现出明显的均匀分布,无明显的周期性或者趋势规律。
(3)分层抽样
将所有个体按照某种特征划分为几个类别,然后从每个类别中使用随机抽样或者等距抽样选择个体组成样本。
好处:明显降低抽样误差
适用于分类属性等特征、
(4)整群抽样
先将所有样本划分为几个小群体,然后随机抽样几个小群体代表总体。
缺点:抽样受限于小群体的划分,抽样误差大。
适用于小群体的特征差异小,且对小群体有更高的要求。 

6. 共线性问题
检验:容忍度和方差膨胀因子(Tolerance, VIF)
容忍度是用每个自变量作为因变量对其他自变量进行回归建模时得到的残差比例,大小用1-决定系数得到的。越小说明越有可能存在共线性。
VIF:容忍度的倒数。一般以10作为判别边界。
相关系数等方法。

解决:
(1)增大样本量。
(2)岭回归。
(3)逐步回归法。
(4)主成分回归。
通过主成分分析,将原始变量转换为少数几个主成分,每个主成分是原始变量的线性组合,然后基于主成分做回归分析,这样也可以在不丢失重要数据特征的前提下缓解共线性。
(5)人工剔除。

7. 相关分析
相关系数

8. 标准化
目的: 处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模、特征、分布差异等对模型的影响。
(1)Z-score(中心化、正态分布)
基于原始数据的均值和标准差进行的标准化。适合于大多数的数据,标准化后均值为0方差为1的正态分布。
会改变原有数据的分布结构,不适合用于对稀疏数据做处理。(因为会破坏原有的数据分布,标准化后绝大数的0 变了)
(2)Max-Min(归一化)
对原始数据进行线性变换
x = (x-min)/(max-min)
好处:归一化并且能较好地保持原有的数据结构。
(3)MaxAbs(用于稀疏数据)
根据最大值的绝对值进行标准化
X = X/ABS(MAX)

9. 离散化
离散化:把无限空间中的有限个体映射到有限空间中。大多是针对连续性数据进行的。
必要性:
(1)节约计算资源、提高计算效率。
(2)算法模型的计算需要。比如决策树
(3)增强模型的稳定性和准确度。数据离散化后处于异常状态的数据不会明显突出,而是被划分到一个子集中。降低异常数据对模型的影响。
方法:
分位数法、距离区间法、频率区间法、聚类法。

10. 非结构数据的预处理
(1)网页数据解析
       在抓取和解析网页数据前,首先要做网页内容分析,包括:
    要抓取的内容格式:文本、图像、还是其他文件。
    是否存在重定向:需要根据User-Agent来判断,例如手机端和电脑端所看到的的内容是不一样的。
    是否需要验证:很多网页爬虫需要用户登录和验证码等。
    目标数据是否具有统一标签规则:HTML标签是否一致,决定了后续处理的便利性。
    URL规则:大多数情况下网页爬取都不是只有一个页面,而是多个页面,因此需要了解不同页面的URL规则,尤其是带有条件查询,需要了解具体参数的。
    业务常识性分析:根据实际要爬取的数据,分析可能会产生哪些字段,会有哪些冲突和联系等。

 

主要参考文献:

Python数据分析与数据化运营 宋天龙

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值