在工程实践中,我们得到的数据会存在有缺失值、重复值等,在使用之前需要进行数据预处理。数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同。数据预处理的常用流程为:去除唯一属性、处理缺失值、特征(属性)编码、数据标准化正则化、特征选择。

数据预处理方法介绍:

1、去除唯一属性:

        唯一属性通常是一些ID属性,这些属性并不能刻画样本本身的分布规律,所以简单地删除这些属性即可。

2、处理缺失值:

        缺失值处理的三种方法:直接使用含有缺失值的特征;删除含有缺失值的特征;补全缺失值。

        常见的补全缺失值的方法:平均值填充、同类均值填充、K最近邻法、回归、期望值最大化方法(EM)

①平均值填充:将初始数据集中的属性分为数值属性和非数值属性来分别进行处理。如何空值是数值型的,就根据该属性在其他所有对象的取值的平均值来填充该缺失的属性值;如果空值是非数值型的,就根据统计学中的众数原理,用该属性在其他所有对象的取值次数最多的值来补齐该缺失的属性值。

②同类均值填充:首先将样本进行分类,然后以该类中样本的均值来填充缺失值。

③K最近邻法:先根据欧式距离来确定距离具有缺失数据样本最近的K个样本,将这K个值的加权平均来估计该样本的缺失数据

④回归:基于完整的数据集,建立回归方程。对于包含空值的对象,将已知属性值带入方程来估计未知属性值,以此估计值进行填充。当变量不是线性相关时会导致有偏差的估计。

⑤期望值最大化方法(EM):EM算法是一种在不完全数据情况下计算极大似然估计的迭代算法。在每一迭代循环过程中交替执行两个步骤:E步(期望步)——在给定完全数据和前一次迭代所得到的参数估计的情况下计算完全数据对应的对数似然函数的条件期望;M步(极大化步)——用极大化对数似然函数以确定参数的值,并用于下步的迭代。算法在E步和M步之间不断迭代直至收敛,即两次迭代之间的参数变化小于一个预先给定的阈值时结束。该方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。

3、特征(属性)编码:

①特征二元化:特征二元化的过程是将数值型的属性转换为布尔值的属性,设定一个阈值作为划分属性值为0和1的分隔点。

②独热编码(One-HotEncoding):独热编码采用N位状态寄存器来对N个可能的取值进行编码,每个状态都由独立的寄存器来表示,并且在任意时刻只有其中一位有效。

4、数据标准化正则化:

       
数据标准化是将样本的属性缩放到某个指定的范围,进行标准化的原因是:某些算法要求样本均有零均值和单位方差;需要消除样本不同属性具有不同量级时的影响。

        数据正则化是将样本的某个范数缩放到位1,正则化的过程是针对单个样本的,对于每个样本将样本缩放到单位范数。

5、特征选择:

       
从给定的特征集合中选出相关特征子集的过程称为特征选择。进行特征选择的两个主要原因是:减轻维数灾难问题;降低学习任务的难度。进行特征选择必须保证不丢失重要特征。常见的降维方法:SVD、PCA、LDA

 

技术
©2019-2020 Toolsou All rights reserved,
shiro-oauth 启用第三方认证登录冲突声明(conflicting declaration)解决常见的5种JAVA运行时异常java中的编译时异常和运行时异常Hack Bar 2.1.2 按F9没反应(精华)2020年6月26日 C#类库model PageInput11-5 指定位置输出字符串Element-UI二次封装实现TreeSelect 树形下拉选择组件数字滚动抽奖小程序Hackbar 使用教程