机器学习之数据预处理

机器学习之数据预处理

一. 缺失值处理

对于数据集中显示NaN的缺失值进行处理(不同数据集缺失值显示状态可能不同)

1.删除法

通过删除包含缺失值的数据,得到一个完整的数据子集。删除既可以删除特征(列),也可以删除样本(行)。
删除特征:当某个特征缺失值较多,且该特征对数据分析目标影响不大时,可将该特征删除。
删除样本:当某些样本多个特征值缺失,且存在缺失值样本占整个数据集样本数量比例不高时刻删除样本。

2 .均值填补

计算该特征中非缺失的平均值(连续数据),中位数或众数(非数值数据、离散数据),来代替缺失值。

3 .随机填补

在均值填补的基础上加上随机项,通过增加缺失值的随机性来改善缺失值分布过于集中的缺陷

4 .基于模型的填补

将缺失值y当做预测目标,使用其余特征作为输入,利用缺失特征非缺失样本构建分类或回归模型。

5 .哑变量方法

对于离散型特征向量,将缺失值作为一个单独的取值进行处理

6 .Pandas缺失值处理机器学习之数据预处理

Sklearn缺失值填充
机器学习之数据预处理
机器学习之数据预处理
用均值法对年龄进行填充
机器学习之数据预处理

二 离群值检测

离群值指一个数据集中那些明显偏离数据集中其他样本的值。
产生原因:自然变异、数据测量和收集的误差以及人工操作失误等
离群值既可以当做数据预处理的一个步骤,为数据分析提供高质量的数据,也可以直接用来解决许多应用问题,例如电信欺诈检测、疾病分析等。
检测方法:

1.基于统计的方法

K分位数:令x为一个值,若在数据集中,百分之K的数据值都不大于x,则称x为该数据的K分位数。
常见分位数:Q1(25%,即大于25% 的数据),Q2(50%,即中位数),Q3(75%)
中间分位数:IQR=Q3-Q1
盒图(boxplot)
机器学习之数据预处理
盒外的两条线(胡须)分别延伸到最小和最大观测值,他们分别是向上/下延伸IQR的1.5倍

2.基于近邻的方法

局部异常因子算法(LOF)
基本思想:通过比较每个点p和其邻域点的密度来判断该点是否为异常点,点p密度越低,越可能是异常点。密度通过点之间的距离来计算,点之间距离越远,密度越低。
相关定义:
机器学习之数据预处理
如图d3(A)=AB
则rd3(D,A)=max{d3(A),d(A,D)}=max{AB,AD}=AD
则LOF:
机器学习之数据预处理
若A比较远,则lrdk(A)会越小,那么lofk(A)会越大。
机器学习之数据预处理
LOF实现:
机器学习之数据预处理
其中‘brute’表示暴力方法,数据较小时可采用,数据比较多时,可采用kd树‘kd_tree’,但是当数据维数较高时,kd树会退化到O(n^2),此时可采用‘ball_tree’
LocalOutlierFactor方法
机器学习之数据预处理

三、标准化

1.Z-Score 方法

对特征值中每个数据嗲减去均值并除以标准差。
机器学习之数据预处理
适用范围:特征值的最大值或最小值未知、样本分布非常离散的情况。
机器学习之数据预处理
StandardScaler方法:
机器学习之数据预处理

2.Min-Max方法

Min-Max标准化对特征做线性变换,使得转换后特征的取值分布在[0,1]区间内:
机器学习之数据预处理
使用范围:0-1标准化适用于需要将数据简单地变换映射到某一区间中。
缺点:有新数据加入时,可能会导致特征最大值或最小值发生变化,需要重新定义最大最小值;若数据存在离群值,标准化后效果较差。
机器学习之数据预处理
MinMaxScaler方法:
机器学习之数据预处理

四、特征编码

模型输入的特征值通常需要是数值型的,所以需要将非数值特征转换为数值特征。

1.数字编码

机器学习之数据预处理

2.One-hot 编码

将包含K个取值的离散型特征转换为K个二元特性(取值为0或1)
机器学习之数据预处理
缺点:特征显著增多
Sklearn One-Hot编码:
机器学习之数据预处理
例子:
机器学习之数据预处理

五、特征离散化

特征的离散化过程是将连续特征的取值范围划分为若干区间段(bin),然后使用区间段代替落在该区间段的特征值。区间段之间的分割点称为切分点(cut point),由切分点分割出来的子区间段的个数称为元数(arity)

1.二值化

根据阈值将数据二值化(特征值设为0或1),大于阈值的值映射为1,小于等于阈值的值映射为0.
机器学习之数据预处理
例子:
机器学习之数据预处理

2.等距离散化

根据连续型特征的取值,将其均匀的划分为k个区间,每个区间的宽度均相等。
等距离散化对输入数据质量要求交高,无法解决特征存在离群值的问题。

机器学习之数据预处理
例子:
机器学习之数据预处理

3.等频率离散化

不要求区间宽度始终保持一致,而是尽量使离散化后的每个区间内的样本量均衡。缺点是每个样本区间宽度不一致。
机器学习之数据预处理
例子:
机器学习之数据预处理

4.聚类离散化

机器学习之数据预处理
例子:
机器学习之数据预处理
具体内容和案例可看http://cookdata.cn/course/course_introduction/39/