无处不在的数据及处理方法简介
数据无处不在,数据的形式也多种多样,在这篇文章主要说一下数据的一些特征和常用的一些处理方法。这里引用一句在《Matlab技术论坛数据挖掘公开课》中看到的: 干渴的水手,看到海水也能满足他们对水的渴望 ?------Rime of Ancient Mariner《老水手之歌》 ? 搞数据的人,看到数据,也就看到信息的期待。根据公开课,本文分了3个部分,就个人的理解,进行了一些总结: 1.数据结构与类型
离散:有限或者无限可能个值 比如:二元(0、1) 连续:取实数值(温度、高度、重量等) 2.数据的特征 (1)维度 (2)稀疏性 (3)分辨率 3.数据质量 (1)特殊的列 a.只有一种值的“列” 这类的信息对于建模是没有贡献信息的,应该忽略他们 b.几乎只含一种值的列 数据偏态,一般以均值为参考点,如果大多数值分布在均值左边,则称为右偏;如果大多数值分布在均值的右边,则称为左偏。这类数据,一般按照拇指法则,如果一个数据95%~99%的值都相同,那么就应该忽略它。 c.列的值各不相同 不能直接用为特征,但是可以从中衍生出一些有用的特征,比如:地址(地址信息一般是唯一的,但是可以提取出地方等信息) (2)测量误差和数据收集错误 (3)噪声和伪像 噪声是测量误差的随机部分,可能涉及值的扭曲和附加的谬误对象 ? 伪像:是一种更确定性的现象,比噪声更有规律,比如:一组照片同一地方的条纹 (4)离群点 ? 异常对象或异常值,主要处理方案: 1.漠然处之,直接交给算法处理(比如:决策树) 2.滤掉含有离群点的行 不推荐---歧视性抽样 3.忽略相应的列 4.采用预测值,用其余列的值来预测缺失的列中的数据(比如:0,平均值,极大极小值) 5.对数据做等高分组,比如:(身高,收入等)---这个比较推荐,在更高的维度中处理掉离群点 (5)缺失数据 处理方案: 1.漠然处之,交给算法处理 2.滤掉含有缺失值的行 3.忽略相应的列 减少一维/用一个显示数据是否缺失的标示变量替代 4.采用预测值,用其余列的值来预测缺失列中的数据---比较推荐 5.建立独立的模型---比较推荐 6.更改运作系统(不实用) 4.数据挖掘预处理 1.聚集 将两个或者多个对象合并成单个对象,通过聚集,可以减少内存的使用和处理时间,通过高层的视图对低层的数据有更好的解释性,及属性的稳定性。 2.抽样 1.简单随机抽样:无放回抽样、有放回抽样 2.分层抽样 3.分组抽样 3.维规约 通过维规约的技术,比如:PCA、LDA、SVD等方法,通常通过规约,删除不相关的特征,去相关性,可以得到更好的效果,同时,模型更能理解,容易可视化,减低了数据挖掘算法的时间和内存要求。 4.特征子集选择 从特征集中,选择一个子集参与模型的建立,可以去掉一些冗余特征、不相关的特征 三种标准的特征选择方法:嵌入,过滤,包装 5.变量变换 用于变量的所有值的变换,比如简单函数:log(x)、1/x、sin(x)、|x|、e^x、x^k等 但是变量变换也可以改变数据的一些特性,所以要小心使用 规范化和标准化:x' = (x-xavg)/Sx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |