评价模型
评价类问题:对于同一个目标不同方案或者因素之间的比较问题
熵权法
在进行评价之前,我们需要量化用于评价的指标
量化的指标必须满足以下的条件:
- 指标类型必须相同
- 指标量纲必须相同
量化过程称为赋权,即重新给每个指标生成一个权值
为了客观的给指标赋权,可以利用熵权法
熵权法的过程
Step 1: 正向化,归一化指标 |
---|
Step 2: 计算指标熵值 |
Step 3: 计算指标权重系数 |
指标类型与正向化
一般指标分为四类:
极大型指标:越大越好的指标,不用转化
极小型指标:越小越好的指标。正向化时可以取相反数,若全部为正数则也可以取倒数
区间型指标:在某个区间内是最好的。正向化遵循如下规则:
$$
x_{new}=\begin{cases}
1-\fracNaN&x < a\\
1&a \le x \le b\\
1-\fracNaN & x > b
\end{cases}
$$
中值型指标:越接近某个值 $m$ 越好,正向化时遵循如下规则:
$$
x_{new}=1-\frac{|x-m|}{max(|x-m|)}
$$
其中 $x_{max}$ 表示数据集中指标的最大值
越远离某个值越好时,$x_{new}=\frac{|x-m|}{max(|x-m|)}$
在正向化完成时,为了消除量纲的影响,要对所有的指标进行归一化,一般有三种方法:
$min-max$法:遵循 $x_{new}=\frac{x-x_{min}}{x_{max}-x_{min}}$ 规约;保留了数据原本的分布特征
$sum$ 法:遵循 $x_{new}=\frac{x}{sum(X)}$ 规约;保留了数据原本的分布特征
$Z-score$法:遵循 $Z=\frac{X-u}{\sigma}$ 规约,其中 $u$ 为均值,$\sigma$ 为方差;将数据转变成正态分布
写作
简介:
熵权法(Entropy Weight Method, EWM)是一种基于客观原则的权重赋值方法,其核心理念源自信息论。该方法通过评估各指标数据的分散程度,计算并修正各指标的熵权。通常情况下,某一指标的信息熵值较低,表明该指标的数值变异程度较大,能够提供更丰富的信息,因此在综合评价中发挥的作用更为显著,其权重相应增大;反之,若某一指标的信息熵值较高,则说明该指标的数值变异程度较小,信息贡献有限,从而在综合评价中的影响力减弱,其权重亦随之降低。
熵权法算法过程(latex):
\nonl \textbf{Step 1:} 对所有指标进行正向化和标准化\\
\nonl \textbf{Step 2:} 根据熵值计算公式计算信息熵\\
\nonl \textbf{Step 3:} 利用信息熵计算每个指标的权重系数
熵权法代码(Python):
# data为矩阵,每一列代表一个指标所有的数据
def entropyWeight(data):
data = np.array(data)
# 归一化
P = data / data.sum(axis=0)
# 计算熵值
E = np.nansum(-P * np.log(P+1e-10) / np.log(len(data)), axis=0)
# 计算权系数
return (1 - E) / (1 - E).sum()
Topsis 分析法
Topsis分析法用于科学计算每个决策的优劣程度
Topsis算法的过程
Step 1: 计算正负理想解 |
---|
Step 2: 计算每个解到正负理想解的距离 |
Step 3: 计算每个解的相似度并排序 |
正负理想解
正负理想解计算:
$$
Z^+=max(z_j)\
Z^-=min(z_j)
$$
即取出每个指标的最大值构成正理想解,每个指标的最小值构成负理想解
距离
距离的计算有以下几种:
- 余弦距离:
$$
cos(x,y)=\frac{x^Ty}{|x||y|}
$$
- 欧几里得距离:
$$
Euclidean (x,y) =\sqrt{\sum_{i=1}^{n}(x_i-y_i)^2}
$$
- 曼哈顿距离:
$$
Manhaton(x,y)=\sum_{i=1}^{n}|x_i-y_i|
$$
计算到正负理想解的距离:
$$
D^+i=\sqrt{\sum{j=1}^{n}w_i(z_{ij}-Z^+j)}\
D^-i=\sqrt{\sum{j=1}^{n}w_i(z{ij}-Z^-_j)}\
$$
相似度
与正理想解的相似度
$$
W_i=\frac{D^-_i}{D^-_i+D^+_i}
$$
与负理想解的相似度
$$
W_i=\frac{D^+_i}{D^-_i+D^+_i}
$$
写作
Topsis简介:
TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)分析法是一种广泛应用的多属性决策支持工具,旨在充分挖掘原始数据所蕴含的信息,以全面反映各评价方案之间的相对差异。其基本流程包括计算每个方案与理想解和负理想解之间的距离,以此评估方案的优劣。理想解代表了各项指标的最优表现,而负理想解则对应于各项指标的最劣表现。在此框架下,距离理想解越近的方案被视为表现越优,而距离负理想解越远的方案则被认为表现越差,以此作为评价优劣的标准。
Topsis伪代码:
\nonl \textbf{Step 1:} 导入所有指标对应的数据,构造初始矩阵\\
\nonl \textbf{Step 2:} 计算最优和最劣方案\\
\nonl \textbf{Step 3:} 计算各评价方案的最优方案和最劣方案的相似程度\\
\nonl \textbf{Step 4:} 计算各评价方案的最优方案的贴近度\\
\nonl \textbf{Step 5:} 根据贴近度大小进行排序
Topsis代码(Python):
# A1为正向化与归一化后的数据矩阵
# w为对应列数据的权重
# TOPSIS方法函数
def TOPSIS(A1,w):
Z=np.array(A1)
#计算正、负理想解
Zmax=np.ones([1,A1.shape[1]],float)
Zmin=np.ones([1,A1.shape[1]],float)
for j in range(A1.shape[1]):
if j==1:
Zmax[0,j]=min(Z[:,j])
Zmin[0,j]=max(Z[:,j])
else:
Zmax[0,j]=max(Z[:,j])
Zmin[0,j]=min(Z[:,j])
#计算各个方案的相对贴近度C
C=[]
for i in range(A1.shape[0]):
Smax=np.sqrt(np.sum(w*np.square(Z[i,:]-Zmax[0,:])))
Smin=np.sqrt(np.sum(w*np.square(Z[i,:]-Zmin[0,:])))
C.append(Smin/(Smax+Smin))
C=pd.DataFrame(C)
return C