Ⅰ 数据预处理的无量纲化
1.1数据无量纲化
将不同规格的数据转化到同一规格或是将不同分布的数据转换到某个特定分布的需求,这种需求统称将数据“无量纲化”。在梯度和矩阵为核心的算法中,无量纲化可以加快求解速度,而在距离类模型中,无量纲化可以帮助我们提升模型精度,避免某一个取值范围特别大的特征对距离计算造成影响。决策树和树的集成模型是一个特例,它们不需要无量纲化,它们可以把任何数据处理的很好。
数据的无量纲化可以是线性的也可以是非线性的,线性的无量纲化包括中心化处理和缩放处理。中心化的本质是将所有记录减去一个固定值,就是使数据样本平移到某个位置,缩放的本质就是通过除以一个固定值,将数据固定到某个范围之中,取对数也算一种缩放。
1.2 preprocession.MinMaxScaler
当数据按照最小值中心化后,再按极差(最大值-最小值)缩放,数据移动到了最小值个单位,并且会收敛到[0,1]之间,这个过程称为数据的归一化(Normalization,又称Min-Max-Scaler),Normalization是归一化的意思不是正则化,正则化是regularization,不是数据预处理的手段。归一化后数据服从正态分布。
sklearn中,使用preprocess.MinMaxScaler来实现数据归一化,MinMaxScaler重要参数:feature_range,控制数据压缩到的范围,默认是[0,1]
1.3 preprocession.StandardScaler
当数据按均值中心化后,再按标准差缩放,数据会浮动均值为0,方差为1的正态分布(标准的正态分布),而这个过程称为数据标准化(StandardScaler,又称Z-score normalization)
对于StandardScaler和MinMaxScaler来说,空值NaN会被当成缺失值,在fit的时候忽视,在transform的时候保存缺失NaN的状态显示,无量纲化的过程不是具体的算法,但是在fit接口中,依然只允许导入至少二维数组,如果导入一维的数组会报错。
1.4 StandardScaler和MinMaxScaler选哪个?
大多数机器学习算法中,都是用StandardScaler来进行特征的缩放,因为MinMaxScaler对异常值非常敏感,在PCA,聚类,逻辑回归,SVM,神经网络这些算法中,StandardScaler会是比较好的选择。
MinMaxScaler用在不涉及度量距离、梯度、协方差计算以及数据需要被压缩到特定区间时使用,比如数字图像处理中量化像素强度时,都会使用MinMaxScaler将数据压缩到[0,1]区间之间。
可以先尝试一下StandardScaler,效果不好再换MinMaxScaler。
Sklearn中其他缩放处理:
Ⅱ 数学分析模型(一):数据的无量纲处理方法及示例(附完整代码)
在对实际问题建模过程中,特别是在建立指标评价体系时,常常会面临不同类型的数据处理及融合。而各个指标之间由于计量单位和数量级的不尽相同,从而使得各指标间不具有可比性。在数据分析之前,通常需要先将数据标准化,利用标准化后的数据进行分析。数据标准化处理主要包括同趋化处理和无量纲化处理两个方面。数据的同趋化处理主要解决不同性质的数据问题,对不同性质指标直接累加不能正确反应不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对评价体系的作用力同趋化。数据无量纲化主要解决数据的不可比性,在此处主要介绍几种数据的无量纲化的处理方式。
可以选择如下的三种方式:
即每一个变量除以该变量取值的全距,标准化后的每个变量的取值范围限于[-1,1]。
即每一个变量与变量最小值之差除以该变量取值的全距,标准化后各变量的取值范围限于[0,1]。
,即每一个变量值除以该变量取值的最大值,标准化后使变量的最大取值为1。
采用极值化方法对变量数据无量纲化是通过变量取值的最大值和最小值将原始数据转换为界于某一特定范围的数据,从而消除量纲和数量级的影响。由于极值化方法对变量无量纲化过程中仅仅对该变量的最大值和最小值这两个极端值有关,而与其他取值无关,这使得该方法在改变各变量权重时过分依赖两个极端取值。
来计算,即每一个变量值与其平均值之差除以该变量的标准差,无量纲化后各变量的平均值为0,标准差为1,从而消除量纲和数量级的影响。虽然该方法在无量纲化过程中利用了所有的数据信息,但是该方法在无量纲化后不仅使得转换后的各变量均值相同,且标准差也相同,即无量纲化的同时还消除了各变量在变异程度上的差异。
,该方法在消除量纲和数量级影响的同时,保留了各变量取值差异程度上的信息。
(4)标准差化方法
。该方法是标准化方法的基础上的一种变形,两者的差别仅在无量纲化后各变量的均值上,标准化方法处理后各变量的均值为0,而标准差化方法处理后各变量均值为原始变量均值与标准差的比值。
综上所述,针对不同类型的数据,可以选择相应的无量纲化方法。如下的示例就是一个典型的评价体系中无量纲化的范例。
近年来我国淡水湖水质富营养化的污染日益严重,如何对湖泊水质的富营养化进行综合评价与治理是摆在我们面前的任务,下面两个表格分别为我国5个湖泊的实测数据和湖泊水质评价标准。
表1 全国五个主要湖泊评价参数的实测数据
表2 湖泊水质评价标准
(1)试用以上数据,分析总磷,耗氧量,透明度,总氨这4个指标对湖泊水质评价富营养化的作用。
(2)对这5个湖泊的水质综合评价,确定水质等级。
在进行综合评价之前,首先要对评价的指标进行分析。通常评价指标分成效益型,成本型和固定型指标。效益型指标是指那些数值越大影响力越大的统计指标(也称正向型指标);成本型指标是指数值越小越好的指标(也称逆向型指标);而固定型指标是指数值越接近于某个常数越好的指标(也称适度型指标)。如果每个评价指标的属性不一样,则在综合评价时就容易发生偏差,必须先对各评价指标统一属性。
(ⅰ)建立无量纲化实测数据矩阵和评价标准矩阵,其中实测数据矩阵和等级标准矩阵如下,
然后建立无量纲化实测数据矩阵和无量纲化等级标准矩阵,其中
得到
(ⅱ)计算各评价指标的权重
计算矩阵B的各行向量的均值和标准差,
最后对变异系数归一化得到各指标的权重为
(ⅲ)建立各湖泊水质的综合评价模型
通常可以利用向量之间的距离来衡量两个向量之间的接近程度,在Matlab中,有以下的函数命令来计算向量之间的距离;
dist(w,p): 计算中的每个行向量和中每个列向量之间的欧式距离;
mandist(w,p): 绝对值距离。
计算中各行向量到中各列向量之间的欧氏距离,
,则第个湖泊属于第级。
这说明杭州西湖,武汉东湖都属于极富营养水质,青海湖属于中营养水质,而巢湖和滇池属于富营养水质。
,则第个湖泊属于第级。
其评价结果与利用欧氏距离得到的评价结果完全一样。
所以,从上面的计算可以看出,尽管欧氏距离和绝对值距离的意义完全不一样,但对湖泊水质的评价等级是一样的,这表明了方法的稳定性。
各位老铁养成习惯,看完点个赞呗,随便也来个关注!!!
各位老铁养成习惯,看完点个赞呗,随便也来个关注!!!
各位老铁养成习惯,看完点个赞呗,随便也来个关注!!!