码迷,mamicode.com
首页 > 编程语言 > 详细

python大战机器学习——数据预处理

时间:2017-09-29 00:38:11      阅读:1370      评论:0      收藏:0      [点我收藏+]

标签:它的   删除   集中   流程   随机   完整   不能   不同   算法   

  数据预处理的常用流程:

    1)去除唯一属性

    2)处理缺失值

    3)属性编码

    4)数据标准化、正则化

    5)特征选择

    6)主成分分析

(1)去除唯一属性

  在获取的数据集中,经常会遇到唯一属性。这些属性通常是添加的一些di属性,如存放在数据库中自增的主键。这些属性并不能刻画样本自身的分布规律,所以只需要简单地删除这些属性即可。

(2)处理缺失值的三种方法

  1)直接使用含有缺失值的特征  2)删除含有缺失值的特征  3)缺失值补全

  1)直接使用:对于某些算法可以直接使用含有缺失值的情况。如决策树。

  2)特征删除:最简单的办法就是删除含有缺失值的特征。对于只有少量值缺失的情况来说,这并不是一个好的办法

  3)缺失值补全:用最可能的值来插补缺失值,在实际工程中应用最广泛。最常见的集中方法有:a均值插补  b用同类均值插补  c建模预测  d高维映射  e多重插补  f极大似然估计  g压缩感知及矩阵补全

a.均值插补

  若缺失的是连续值,则以该属性有效值的平均值来插补缺失的值;若缺失值为离散值,则以该属性有效值的众数来插补缺失的值

b.同类均值插补

  首先将样本进行分类,然后以该类中样本的均值来插补缺失值

c.建模预测

  将缺失的属性作为预测目标来预测。这种方法效果较好,但是该方法有个根本的缺陷:如果其他属性和缺失属性无关,则预测的结果毫无意义。但是如果预测结果相当准确,则说明这个缺失属性是没必要考虑纳入数据集中的。一般情况是介于两者之间的。

d.高维映射

  将属性映射到高维空间。这种做法是最精确的做法,它完全保留了所有的信息,也未增加任何额外的信息。比如google、百度的CTR预估模型,预处理时会把所有变量都这样处理,达到几亿维。这样做的好处是完整保留了原始数据的全部信息、不用考虑缺失值。但它的缺点也很明显,就是计算量大大提升。而且只要在样本量非常大的时候效果才好,否则会因为过于稀疏,效果很差

e.多重插补

  其认为待插补的值时随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。

f.压缩感知及矩阵补全

  

python大战机器学习——数据预处理

标签:它的   删除   集中   流程   随机   完整   不能   不同   算法   

原文地址:http://www.cnblogs.com/acm-jing/p/7609011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!