内容简介:数据预处理
数据预处理
Outline
- 概述,Abstract,什么是预处理,为什么,怎么办
- 数据清洗,data cleaning
- 数据整合,data integration
- 压缩,reduction
- 变换,离散化
概述
-
为什么
如果不进行预处理,数据的质量一般会很糟糕,会带来维度灾难等后果,影响后续处理的效率以及最终结果。
-
四个步骤
清洗:填充缺失值,去噪降噪,去除异常点
整合:整合不同来源的数据
压缩:压缩
变换:分层,归一化
数据清洗
-
原始数据可能存在哪些问题?
噪声,离群点,缺失值,重复值
-
如何去噪
均值,最大值,最小值,中值
回归,用超平面拟合数据点,
-
离群点
明显脱离集体的点
-
缺失值
信息收集不完全,丢失,。。。
如何处理:舍弃,估计(0,众数,中值,。。。)
-
重复值
融合两个数据集的时候容易出现重复,比如某个人有多个邮箱地址,多次填表,。。。
去重
数据整合
-
整合不同来源的数据,同时要检查冲突
相同的实体,在不同的数据集中可能有不同的表达方式,比如名字不同,长度单位不同,阿拉伯数字或者英文数字表达
-
处理数据冗余
对于不同表达方式的对象,要能识别出最终实体
月收入 * 12 ≈ 年收入
处理方式:相关性分析 correlation analysis, 协方差分析 covariance analysis
- 如果处理得当,可以减少冗余,减少维度,提升数据集质量,提升处理速度
-
相关性分析 correlation analysis
-
X^2 (Chi-Square) test,卡方检验(存疑)
X^2 越大,相关性越大,> 10.828 说明明显相关
-
相关系数
r > 0, 正相关
r = 0, 不相关
r < 0, 负相关
-
相关性
先对 a, b 标准化 a = (a - mean_a) / std_a, b = (b - mean_b) / std_b
correlation(A, B) = a * b (内积)
-
-
协方差分析
cov(A, B) > 0, 正相关, < 0 负相关,
例子
压缩
- 使数据体积减小,但是不影响最终分析结果
- 为什么要压缩:数据集的体积太大了,处理时间太长
-
维度灾难
当维度增加,数据会变得更加系数,体积明显增加,组合数爆炸式增长,使维度增加前的一些定义失去意义,可视化难度增加
-
策略
降维(移除无用属性):小波变换,PCA,特征选择
替换:用超平面拟合数据,只保留超平面参数
压缩:
变换:傅里叶变换,小波变换(图像压缩,多分辨率分析)
小波分解
-
为什么用小波(存疑)
- 滤波器(hat-shape filter):突出那些点集中的区域,抑制边界点
- 移除离群点,过滤噪声
- 多分辨率,检测不同尺度下不同形状的集群
- 高效,O(n)
- 但是只对低维数据有效
-
PCA, Principal Component Analysis, 主成分分析
把高维空间映射到低维空间,同时尽可能多地保留原来的点
找出协方差矩阵的特征向量,这些特征向量定义了新的空间
步骤:先进行标准化,使所有属性的值域相同;计算 k 个标准正交向量,即 k 个主要成分;排序,舍弃较小的向量,从而达到降维的目的
只对数值型数据有效
-
特征选择
舍弃一些特征,比如 总价 = 单价 * 数量,总价其实可以舍去。还有就是一些明显不相关的特征,比如学号和成绩一般来说是不相关的,学号可以舍去。
其他数据压缩方法
-
假设数据分布符合某种模型,我们可以用超平面拟合数据,然后只保留参数。
线性回归(假设初始直线,计算所有点到直线的距离的平方和作为误差 sqe,梯度下降使得sqe最小): Y = wX + b
多元回归: Y = b0 + b1X1 + b2X2 + ...
不止是数据压缩降维,还可以使数据平滑
-
直方图分析
把数据放到不同的 bucket/bin ,这些 bucket 都是计数器,用统计值(求和,平均值)代替 bucket 中的数据
等宽(equal-width), 0-10, 10-20, 20-30, ...
等间隔(equal-frequency),每 5 个人一个 bucket,
-
聚类
先聚类,然后只保留类中心或者类特征,以此代表整个类的点
-
抽样(样本代替总体)
随机采样,放回采样,不放回采样,自适应采样(如分层采样,避免倾斜)
注意,不会减少IO时间
-
数据压缩
有损/无损 压缩
文本压缩(通常无损),音视频压缩(通常有损)
数据变换
- 平滑(去噪)
- 把两个特征合并为新的特征
- 聚合:摘要,数据方快
-
标准化
min-max,z-score(减去均值, 再除以标准差),decimal scaling
离散化
-
把【1.非数值型数据,2.连续的数值型数据】转为【离散的数值型数据】
【1.非数值型数据】:Nominal(名词,如颜色,职业),Ordinal(序数词)
【2.连续的数值型数据】:量化,离散化,以此减少数据量。为后续的分类做准备。
-
方法
-
Binning, 分桶,直方图,top-down,无监督。
-
Equal-width (distance) partitioning,相同大小的全部放在一个桶。
噪点影响较大,可能存在严重倾斜
- Equal-depth (frequency) partitioning,每个桶的数量相等
-
Smoothing
放到不同桶里面,然后用均值/最大值/最小值进行平滑
-
- 聚类,无监督,top-down split 或 bottom-up merge
- 决策树,有监督,top-down
- 相关性分析,无监督,bottom-up
-
分层
- 可能需要人为制定划分标准,street < city < state < country
- 也可以把取值最多的属性作为最低层, 比如街道名的取值一般要远远大于国家名的取值
小结
- 数据清洗:去掉重复值,异常值,缺失值,噪声
- 数据整合:整合不同来源的数据,处理冲突,相关性分析,协方差分析
- 数据压缩:去掉无用信息,改变表达方式,降维,减少数据体积,加快处理速度,还能产生相同的分析结果
- 数据变换:标准化,离散化,改变属性表达方式,映射到新的属性空间
以上所述就是小编给大家介绍的《数据挖掘复习笔记---03.数据预处理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 数据挖掘复习笔记---02.数据
- 大数据产品经理必备的数据挖掘知识概述(一)认识数据之数据可视化
- 大数据产品经理必备的数据挖掘知识概述(一)认识数据
- 让数据关联产生价值,「创邻科技」以图数据库加速数据挖掘
- 数据挖掘建模:如何从数据中“淘金”?
- 数据挖掘竞赛指南:曾经的数据挖掘少年,如今的阿里算法大佬
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Python
Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99
Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!