机器学习第三周-数据预处理和特征工程

一、数据归一化

原因:样本有多个维度时,量纲的不同会影响特征的重要程度,如果将数据进行归一化处理可以消除量纲对特征的影响

常用的归一化方式有两种:

    最值归一化:  Xs =(X – Xmin)/(Xmax – Xmin)    适用于特征有明显边界的情况

    均值方差归一化:Xs = (X – Xmean)/ S    适用于特征有极端值的情况


二、数据离散化(分箱)

将数值型数据转化成类别型数据。连续值的取值空间可能是无穷的,为了便于表示和在模型中处理,需要对连续值特征进行离散化处理。

无监督: 自定义分箱:根据自己需求或经验进行分箱

                等距分箱:从最小值到最大值均分为n份

                等频分箱:将数据分为n份,每份样本个数相同

                聚类分箱:根据k均值聚类分为n份,前一份观测值小于后一份

                二值化:转化为bool类型

有监督:卡方分箱:具有最小卡方值的区间合并在一起

               最小熵法分箱:根据熵的大小确定最优分箱


三、缺失值处理

目前常用的三类处理方法:

1. 用平均值、中值、分位数、众数、随机值等替代。效果一般,因为等于人为增加了噪声。

2. 先根据欧式距离或Pearson相似度,来确定和缺失数据样本最近的K个样本,将这K个样本的相关feature加权平均来估计该样本的缺失数据。

3. 将变量映射到高维空间

    a.对于离散型变量:男、女或缺失的情况,采用One-hot编码,映射成三个变量,是否男、是否女、是否缺失;

    b.对于连续型变量,首先对连续变量进行变量分箱,采用一定的数据平滑方式(平均值/中值/箱边界)进行离散化,然后增加是否缺失这种维度。

四、编码与哑变量

One-hot编码

    one-hot编码,又称独热编码、一位有效编码。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。one hot在特征提取上属于词袋模型(bag of words)

优点:一是解决了分类器不好处理离散数据的问题,二是在一定程度上也起到了扩充特征的作用(上面样本特征数从3扩展到了9)

缺点:在文本特征表示上有些缺点就非常突出了。首先,它是一个词袋模型,不考虑词与词之间的顺序(文本中词的顺序信息也是很重要的);其次,它假设词与词相互独立(在大多数情况下,词与词是相互影响的);最后,它得到的特征是离散稀疏的。

dummy 编码

 哑变量编码直观的解释就是任意的将一个状态位去除。将one-hot简化,比如用所有状态位为0来表示新的状态

你可能感兴趣的:(机器学习第三周-数据预处理和特征工程)