数据的预处理
数据的预处理
数据的预处理又称属性的规范化,经常在处理数据时作为第一个步骤,在进行决策时一般都要进行数据规范化
属性值的三种类型
效益型,成本型,区间型
这三种属性,效益型越大越好,成本型越小越好,而区间型则在某个区间为最佳
属性规范化的作用
- 因为属性值有多种类型,故多种类型的数据在同一个表中,不便于直接从数据就判断优劣
因此需要预处理,使得同一个属性下,性能更优的方案变换后的属性越大 - 非量纲化,多属性决策和评估的困难之一就是不同属性之间的不可公度性,即表中每一列的属性值的量纲不尽相同,规范化后就可以排除量纲对决策和评估的影响
- 归一化,因为表中不同属性值的数据大小可能差别很大,为了更便于各种决策和评估方法的使用,
需要把表中数值归一化,即统一变换到0到1之间
常用的属性值规范化方法
原始的决策矩阵为\(A=(a_{ij})_{m*n}\),变化后的决策矩阵为\(B=(a_{ij})_{m*n}\)
-
线性变换
设\(a_i^{max}\)为一列属性值中的最大值,\(a_j^{min}\)为一列属性值中的最小值
若\(x_j\)为效益型属性,则
\[b_{ij}=\frac{a_{ij}}{a_j^{max}} \]即属性值的最优值一定为1,最差值不一定为0
若\(x_j\)为成本型属性,则
\[b_{ij}=1-\frac{a_{ij}}{a_j^{max}} \]即属性值的最差值一定为0,最优值不一定为1
-
标准0—1变换
为了使变换后的属性值的最优值为1,最差值为0
对效益型属性,则
\[b_{ij}=\frac{a_{ij}-a_i^{max}}{a_j^{max}-a_j^{min}} \]对成本型属性,则
\[b_{ij}=\frac{a_j^{max}-a_{ij}}{a_j^{max}-a_j^{min}} \] -
区间属性的变换
对于区间属性,设给定的最优区间为\([a_j^0,a_j^*]\),\(a_j^{'}\)为无法容忍的下限,\(a_j^{''}\)为无法容忍的上限
\[b_{ij}= 1-\frac{a_j^0-a_{ij}}{a_j^0-a_j^{'}},[无法容忍下限,最优区间左] \]\[b_{ij}=1,[整个最优区间] \]\[b_{ij}=1-\frac{a_{ij}-a_j^*}{a_j^{''}-a_j^*},[最优区间右,无法容忍上限] \]\[b_{ij}=0,[其他] \] -
向量规范化
无论成本型还是效益型属性,向量规范化的式子均为:
\[b_{ij}=\frac{a_{ij}}{\sqrt{\sum_{i=1}^{m}a_{ij}^{2}}},i=1,2,...,n \]它与前几个变换不同,变换后的值的大小还是无法分辨优劣,但是它的特点是,规范化后各方案的同一属性值的平方和为1,所以常用计算欧几里得距离,比如理想解法\(TOPSIS\)。
-
标准化处理
在实际不同变量的量纲不同,为了消除这个影响,使每个变量都具有同样的表现力,常对数据进行标准化处理
\[b_{ij}=\frac{a_{ij}-a_j^-}{s_i},i=1,2,...,m,j=1,2,...,m \]式子中:\(a_j^-=\frac{1}{m}\sum_{i=1}^{m}a_{ij}\)为属性值的均值,\(s_i=\sqrt{\frac{1}{m-1}\sum_{i=1}^{m}(a_{ij}-a_j^-)^2},j=1,2,...,n\)
实际上可以按照标准正态化的方法来看