课程目录
特征标准化
完成学习
实际数据分析及建模过程中,为达到更好的效果,许多数学科学算法需要其输入特征为标准化的形式,例如在不少学习算法中(如SVM算法中的RBF核函数,线性模型中的L1、L2正则项等),目标函数往往假设其特征均值在0附近且方差齐次。若是其中有一个特征的方差远远大于其它特征的方差,那么这个特征就将会是影响目标函数的主要因素,进而算法模型便难以学习到其它变量对结果的影响。因此,特征s的标准化处理经常是数据建模分析流程中的重要步骤。 常用的特征标准化化方法有:Z-Score标准化、0-1标准化、小数定标标准化和对数Logistic标准化。 ### Z-Score标准化 Z-Score标准化是实际数据处理中最常用的标准化处理方法,该方法通过对数据系列中的每一个数据点作减去均值并除以方差的操作,其处理函数为: $$x_i^{*} = \frac{x_i-\mu}{\sigma}$$ 其中:$x_i^{*}$为标准化后的各数据点取值,$x_i$为原始各数据点取值,$\mu$为数据的平均值,$\sigma$为数据的标准差。 经过Z-Score标准化后的数据,能够直观反应每个数据点距离平均值点的标准差距离,从而理解整体数据的分布情况。 <img src="http://cookdata.cn/media/lecture/464/normal1.png" style="max-width:70%;"/> 利用Z-Score标准化后的数据,均值将落在0附近,而每一个数据点离零点的距离可解释为其远离均值的标准差距离。 适用范围:Z-Score的标准化方法适用于数据系列中最大值或最小值未知、数据分布非常离散的情况。 <br> ### MinMax标准化 MinMax标准化的核心即是对数据集作线性变换,使得处理过后数据均落在[0,1]区间内。其处理函数为: $$x_i^{*} = \frac{x_i-min}{max-min}$$ 其中:$x_i^{*}$为标准化后的各数据点取值,$x_i$为原始各数据点取值,$min$为该数据系列中的最小值,$max$为该数据系列中的最大值。 在此基础上,若希望标准化后的数据以0为中心落在[-1,1]区间内,可对上述处理函数稍作修改,使其变为: $$x_i^{*} = \frac{x_i-\frac{max+min}{2}}{\frac{max-min}{2}}$$ 适用范围:MinMax标准化适用于需要将数据简单地变换映射到某一区间中,但其不足之处在于当有新数据加入时,可能会导致数据系列中的最大值或最小值发生变化,此时便需要重新定义最大值、最小值。 <br> ### 小数定标标准化 小数定标标准化(Decimal Scaling)方法通过移动数据的小数点位置来进行标准化。具体标准化过程中,小数点移动多少位取决于数据系列中的最大绝对值大小。其处理函数为: $$x_i^{*} = \frac{x_i}{10^j}$$ 其中:$x_i^{*}$为标准化后的各数据点取值,$x_i$为原始各数据点取值,$j$为满足条件的最大绝对值的位数。 例如,某变量的取值范围为-3021至2087,那么其中最大绝对值为3021,则j取值为4,即我们用变量的每个取值除以10000。这样,-3021标准化成了-0.3021,2087标准化成了0.2087。 适用范围:小数定标标准化方法适用于数据分布比较离散,尤其是数据遍布多个数量级的情况,若数据分布集中在某几个量级上,则小数定标标准化的数据也会集中在某个值附近,不利于建模时的数据区分。该方法的优点在于简单实用,在确定了小数点移动位数后,易于还原标准化后的数据系列。类似于0-1标准化方法,小数定标标准化方法的不足之处同样在于当有新数据加入时,可能会导致数据中的最大绝对值发生变化,此时便需要重新确定小数点移动位数。 ### Logistic标准化 Logistic标准化利用Sigmoid函数的特性,将原始数据转化为[0,1]之间的数。 首先简要介绍Sigmoid函数。Sigmoid函数(又称Logistic函数)是一种常见的S型曲线。一般来说,Sigmoid函数可以有效仿真人口增长的S型曲线:起初阶段大致是指数增长;随后开始变得饱和,缓慢增加;最后达到成熟时停止增长。此外,Sigmoid函数也被经常用将数据从实数域光滑映射到[0,1]空间。 Sigmoid函数公式定义如下: $$ S(x) = \frac{1}{1+e^{-x}} $$ Sigmoid的S型曲线函数图如下所示: <img src="http://cookdata.cn/media/lecture/464/sigmoid.png" style="max-width:70%;"/> Logistic标准化利用了Sigmoid函数能够映射实数至[0,1]空间这一特性来完成数据的标准化处理。其处理函数如下: $$ x_i^{*} = \frac{1}{1+e^{-x_i}} $$ 其中:$x_i^{*}$为标准化后的各数据样本取值,$x_i$为原始各数据样本取值。 适用范围:Logistic标准化方法适用于数据分布相对比较集中地分布于零点两侧,若数据分布离散且均远离零点,则根据Sigmoid函数的特性,标准化处理后的值会聚集于0或1附近,造成原始数据的分布及数据间关系被改变。因此在应用Logistic标准化方法之前,需要首先分析原始数据集的分布状况。 <br> ### 标准化总结 下表分析总结了各标准化方法的优缺点以及适用范围,需要明确的是,每一种标准化处理方法都会因数据的不同而产生不同的效果,在分析处理中,应以实际的数据情况为参考依据。 <table class="table table-bordered table-striped table-condensed"> <tr> <th>标准化方法</th> <th>优点</th> <th>缺点</th> <th>适用范围</th> </tr> <tr> <td>Z-Score标准化</td> <td>转化为标准正态分布<br>无需数据的最大、最小值</td> <td>需要记录原数据的均值、方差</td> <td>数据中最大或最小值未知,<br>且数据系列分布离散</td> </tr> <tr> <td>MinMax标准化</td> <td>对数据作线性变换<br>保留原始数据间的关系</td> <td>若原数据的最大、最小值<br>发生变化,则需重新定义</td> <td>需要保留原始数据间的关系,<br>且最大最小值已固定</td> </tr> <tr> <td>小数定标标准化</td> <td>简单实用,<br>易于还原标准化后的数据</td> <td>若原数据的最大绝对值<br>发生变化,则需重新定义</td> <td>数据系列分布比较离散,<br>尤其数据遍布多个数量级</td> </tr> <tr> <td>Logistic标准化</td> <td>简单易用,<br>通过单一映射函数对数据进行标准化</td> <td>对分布离散且远离零点的<br>数据处理效果不佳</td> <td>数据系列分布比较集中,<br>且均分布于零点两侧</td> </tr> </table> 此外,值得注意的是,标准化往往会改变原始数据的取值,因此在实际操作中需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化处理。、 <br>
实战演练(2)
返回 >
1
2