Wang Haihua
🍈 🍉🍊 🍋 🍌
所谓一致化处理就是将评价指标的方向进行统一。比如有的指标越小评价得分越高,我们往往会将这类指标转化成另一种指标,使得新指标越大,评分越高。
一般来说,在评价指标体系中,可能会同时存在极大型指标、极小型指标、居中型指标和区间型指标,它们都具有不同的特点。若指标体系中存在不同类型的指标,常常在在综合评价之前将评价指标的类型做一致化处理。
例如,将各类指标都转化为极大型指标,或极小型指标。一般的做法是将非极大型指标转化为极大型指标。
对极小型指标$x_j$,将其转化为极大型指标时,可以对指标$x_j$取倒数:
$$ x_{j}^{\prime}=\frac{1}{x_{j}} $$或做平移变换:
$$ x_{j}^{\prime}=M_{j}-x_{j} $$其中,$M_{j}=\max _{1 \leq i \leq n}\left\{a_{i j}\right\}$,即$n$个评价对象第$j$项指标值$a_{ij}$最大者。
当然,其他能改变单调性的转换方法也是可行的。
对居中型指标$x_j$,令$M_{j}=\max _{1 \leq i \leq n}\left\{a_{i j}\right\}, \quad m_{j}=\min _{1 \leq i \leq n}\left\{a_{i j}\right\}$,取
$$ x_{j}^{\prime}=\left\{\begin{array}{ll} {\frac{2\left(x_{j}-m_{j}\right)}{M_{j}-m_{j}},} & {m_{j} \leq x_{j} \leq \frac{M_{j}+m_{j}}{2}} \\ {\frac{2\left(M_{j}-x_{j}\right)}{M_{j}-m_{j}},} & {\frac{M_{j}+m_{j}}{2} \leq x_{j} \leq M_{j}} \end{array}\right. $$就可以将$x_j$转化为极大型指标。
对区间型指标$x_j$, $x_j$是取值介于区间$\left[b_{j}^{(1)}, b_{j}^{(2)}\right]$,内时为最好,指标值离该区间越远就越差。令
$$ M_{j}=\max _{1 \leq i \leq n}\left\{a_{i j}\right\}, \quad m_{j}=\min _{\| \leq i \leq n}\left\{a_{i j}\right\}, \quad c_{j}=\max \left\{b_{j}^{(1)}-m_{j}, M_{j}-b_{j}^{(2)}\right\} $$就可以将区间型指标$x_j$转化为极大型指标。
$$ x_{j}'=\left\{\begin{array}{lll} {1-\dfrac{b_{j}^{(1)}-x_{j}}{c_{j}},} & {x_{j} < b_{j}^{(1)}} \\ {1,} & {b_{j}^{(1)} \leq x_{j} \leq b_{j}^{(2)}} \\ {1-\dfrac{x_{j}-b_{j}^{(2)}}{c_{j}},} & {x_{j} > b_{j}^{(2)}} \end{array}\right. $$参考文献
import skfuzzy as fuzz
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('seaborn')
x=np.arange(0,11)
plt.plot(x,fuzz.trapmf(x,[0,3,7,10]))
plt.savefig('images/mcdm0301.png')