数据预处理
数据存在的问题
数据不一致
各系统之间数据的量纲不一致
噪声数据
数据中存在明显错误或异常的数据(偏离期望值)
缺失值
数据记录出现的局部的缺失
数据预处理的任务
数据清洗
去掉数据中的噪声,纠正不一致
数据集成
将多个数据源合并成一致的数据存储,构成一个完美的数据集,如数据仓库
数据归约
通过聚集、删除冗余属性或聚类等方法来压缩数据
数据变换
将一种格式的数据转换为另一种形式的数据
基本方法
- 简单函数变换
如果要保持数据保持正态分布,如果提供的数据是偏态的,我们需要将数据从偏态分布变为正态分布。
此时我们可以对一侧取指数、对数函数
- 归一化
将数据映射到区间 [-1,1] 或 [0,1] 之间。
- 最小-最大规范化
$$x^{\ast} = \frac{x-min}{max-min}$$
- 零-均值规范化:处理后平均数为0,标准差为1
$$x^{\ast} = \frac{x-\bar x}{\sigma}$$
- 小数定标规范化:移动小数点的数位,k取决于最大值
$$x^{\ast}= \frac{x}{10^{k}}$$
- 缺失值处理
缺失值的处理可分为三类:删除记录、数据补差和不处理。
- 数据补差:
- 我们可以采用平均数、中位数、众数进行补差
- 使用固定值
- 最近邻补差(使用最相似的数据)
- 回归方法(预测)
- 插值法(利用已知点建立插值函数)
$$f(x)=\sum_{i=0}^{n}y_{i} \frac{(x-x_{0})\ldots(x-x_{n})}{(x_{i}-x_{0})\ldots(x_{i}-x_{n})}$$
- 异常值处理
- 删除含有异常值的记录
设置阈值,处理数据。
- 视为缺失值
- 平均值修正
- 不处理
- 删除含有异常值的记录
特征工程
去掉无用特征,去除冗余特征,利用存在的特征、转换特征、内容中的特征以及其他数据源生成的新特征,然后对特征进行转换,最后对特征进行处理,已符合模型的使用。
简单来说,特征工程的处理有以下的步骤:
- 数据预处理
- 特征处理
- 特征选择
特征选择
过滤法:按照发散性或者相关性对各个特征进行评分,通过阈值或者待选择阈的个数来选择特征
包装法:根据目标函数(通常是预测效果评分)每次选择若干选项或者排除若干选项
嵌入法:使用机器学习的某些算法和模型进行训练,得到各个特征的权值系数,并根据系数从大到小选择特征。