广州seo技术优化网站seo,男女在床上做暖暖插孔视频网站,电子商务网页制作素材,建设网站广州目录 理想解法原理简介算法步骤属性值规范化方法代码示例 理想解法
原理简介 TOPSIS(Technique for Order Preference by Simi larity to IdealSolution)法是一种逼近理想解的排序方法。其基本的处理思路是#xff1a;首先建立初始化决策矩阵#xff0c;而后基于规范化后的初… 目录 理想解法原理简介算法步骤属性值规范化方法代码示例 理想解法
原理简介 TOPSIS(Technique for Order Preference by Simi larity to IdealSolution)法是一种逼近理想解的排序方法。其基本的处理思路是首先建立初始化决策矩阵而后基于规范化后的初始矩阵找出有限方案中的最优方案和最劣方案(也就是正、负理想解)然后分别计算各个评价对象与最优方案和最劣方案的距离获得各评价方案与最优方案的相对接近程度最后进行排序并以此作为评价方案优劣的依据。 设多属性决策方案集为 D { d 1 , d 2 , . . . , d m } D\left \{ d_1,d_2,...,d_m \right \} D{d1,d2,...,dm}衡量方案优劣的属性变量为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn。这时方案集 D D D中的每个方案 d i ( i 1 2 ⋯ m ) d_i(i12⋯m) di(i12⋯m)的 n n n个属性值构成的向量是 [ a i 1 , a i 2 , . . . , a i n ] \left [ a_{i1},a_{i2},...,a_{in} \right ] [ai1,ai2,...,ain]它作为 n n n维空间中的一个点能唯一地表征方案 d i d_i di。正理想解 C ∗ C^* C∗是一个方案集 D D D中并不存在的虚拟的最佳方案它的每个属性值都是决策矩阵中该属性的最优值;而负理想解 C 0 C^0 C0则是虚拟的最差方案它的每个属性值都是决策矩阵中该属性的最差值。在 n n n维空间中将方案集 D D D中的各备选方案 d i d_i di.与正理想解 C ∗ C^* C∗和负理想解 C 0 C^0 C0的距离进行比较既靠近正理想解又远离负理想解的方案就是方案集D中的最优方案,并可以据此排定方案集D中各备选方案的优先序。对比备选方案和理想解需要定义适合的距离测度TOPSIS所用的是欧几里得距离。
算法步骤
假设初始的决策矩阵 A A A为 A [ a 11 … a 1 j … a 1 n ⋮ ⋮ ⋮ ⋮ ⋮ a i 1 … a i j … a i n ⋮ ⋮ ⋮ ⋮ ⋮ a m 1 … a m j … a m n ] A\begin{bmatrix} a_{11} \dots a_{1j} \dots a_{1n} \\ \vdots \vdots \vdots \vdots\vdots\\ a_{i1} \dots a_{ij} \dots a_{in}\\ \vdots \vdots \vdots \vdots\vdots\\ a_{m1} \dots a_{mj} \dots a_{mn}\\ \end{bmatrix} A⎣⎢⎢⎢⎢⎢⎢⎡a11⋮ai1⋮am1…⋮…⋮…a1j⋮aij⋮amj…⋮…⋮…a1n⋮ain⋮amn⎦⎥⎥⎥⎥⎥⎥⎤ 1对初始决策矩阵 A A A的所有备选方案的每一个属性进行规范化处理即对 A A A的每一个列向量 [ a 1 j , a 2 j , . . . , a m j ] T , j ∈ 1 , . . . , n \left [ a_{1j},a_{2j},...,a_{mj} \right ]^T,j\in 1,...,n [a1j,a2j,...,amj]T,j∈1,...,n规范化处理得到规范化的决策矩阵 B ( b i j ) m × n B\left ( b_{ij} \right )_{m\times n} B(bij)m×n. b i j a i j ∑ i 1 m a i j 2 , i 1 , . . . , m , j 1 , . . . , n b_{ij}\frac{a_{ij}}{\sqrt{\sum_{i1}^{m}a_{ij}^2}},i1,...,m,j1,...,n bij∑i1maij2 aij,i1,...,m,j1,...,n (2)构造加权规范阵假设 n n n个属性的权重构成的权重向量为 ω [ ω 1 , ω 2 , . . . , ω n ] ⊤ \omega\left [ \omega_1,\omega_2,...,\omega_n \right ]^\top ω[ω1,ω2,...,ωn]⊤将规范化的决策矩阵 B ( b i j ) m × n B\left ( b_{ij} \right )_{m\times n} B(bij)m×n的每一行与权重向量对应相乘即得到加权规范阵 C ( c i j ) m × n C\left ( c_{ij} \right )_{m\times n} C(cij)m×n。 c i j b i j ∗ ω j , j 1 , . . . , n , i 1 , . . . , m c_{ij}b_{ij}\ast \omega_j,j1,...,n,i1,...,m cijbij∗ωj,j1,...,n,i1,...,m 3确定正理想解 C ∗ C^* C∗和负理想解 C 0 C^0 C0对于成本型属性选择最小值对于效益型属性选择最大值。遍历 C C C的每一列 C j ( j 1 , . . . , n ) C_j(j1,...,n) Cj(j1,...,n)根据指标类型选择每一列的最大值或最小值。 c j ∗ { max { C j } , j 为 效 益 型 指 标 min { C j } , j 为 成 本 型 指 标 c_{j}^*\begin{cases} \max\left \{ C_{j} \right \},j为效益型指标 \\ \min\left \{ C_{j} \right \},j为成本型指标 \end{cases} cj∗{max{Cj},j为效益型指标min{Cj},j为成本型指标 c j 0 { min { C j } , j 为 效 益 型 指 标 max { C j } , j 为 成 本 型 指 标 c_{j}^0\begin{cases} \min\left \{ C_{j} \right \},j为效益型指标 \\ \max\left \{ C_{j} \right \},j为成本型指标 \end{cases} cj0{min{Cj},j为效益型指标max{Cj},j为成本型指标
其中 c j ∗ , c j 0 c_j^*,c_j^0 cj∗,cj0分别表示正、负理想解的第 j j j个元素取值。
4计算各方案到两个理想解的距离即计算加权规范阵 C C C的每一行 C i ( i 1 , . . . , m ) C_i(i1,...,m) Ci(i1,...,m)与理想解 C ∗ , C 0 C^*,C^0 C∗,C0的距离。 距离正理想解的距离 s i ∗ s_i^* si∗ s i ∗ ∑ j 1 n ( c i j − c j ∗ ) 2 s_i^*\sqrt{\sum_{j1}^{n}\left ( c_{ij}-c_j^* \right )^2 } si∗j1∑n(cij−cj∗)2 距离负理想解的距离 s i 0 s_i^0 si0 s i 0 ∑ j 1 n ( c i j − c j 0 ) 2 s_i^0\sqrt{\sum_{j1}^{n}\left ( c_{ij}-c_j^0 \right )^2 } si0j1∑n(cij−cj0)2
5计算各方案的排序指标值按照指标值大小确定方案排序 f i ∗ s i 0 s i 0 s i ∗ , i 1 , . . . , m f_i^*\frac{s_i^0}{s_i^0s_i^*},i1,...,m fi∗si0si∗si0,i1,...,m
属性值规范化方法
数据的预处理又称属性值的规范化。
作用
在综合评价之前将属性的类型作一致化处理使得表中任-属性下性能越优的方案变换后的属性值越大在用各种多属性决策方法进行分析评价时需要排除量纲的选用对决策或评估结果的影响为了便于采用各种多属性决策与评估方法进行评价’需要把属性值表中的数值归一化即把表中数值均变换到 [ 0 , 1 ] \left [ 0,1 \right ] [0,1]区间上。
常见方法
设原始的决策矩阵为 A ( a i j ) m × n A\left ( a_{ij} \right )_{m\times n} A(aij)m×n变化后的决策矩阵为 B ( b i j ) m × n B\left ( b_{ij} \right )_{m\times n} B(bij)m×n。 标准化处理 在实际问题中不同变量的测量单位往往不同为了消除量纲效应使每个变量都具有同等的表现力数据分析中常对数据进行标准化处理即 b i j a i j − μ j s j , i 1 , . . . , m , j 1 , . . . , n b_{ij}\frac{a_{ij}-\mu_{j}}{s_j},i1,...,m,j1,...,n bijsjaij−μj,i1,...,m,j1,...,n 其中 μ j 1 m ∑ i 1 m a i j \mu_{j}\frac{1}{m}\sum_{i1}^{m}a_{ij} μjm1∑i1maij表示第 j j j列均值 s j 1 m − 1 ∑ i 1 m ( a i j − u j ) 2 s_j\sqrt{\frac{1}{m-1}\sum_{i1}^{m}\left ( a_{ij}-u_j \right )^2} sjm−11∑i1m(aij−uj)2 表示第 j j j列方差 j 1 , . . . , n j1,...,n j1,...,n。 线性变换 效益型属性 b i j a i j a j m a x , j 1 , . . . , n b_{ij}\frac{a_{ij}}{a_j^{max}},j1,...,n bijajmaxaij,j1,...,n 其中 a j m a x a_j^{max} ajmax表示决策矩阵 A A A第 j j j列的最大值。 成本型属性 b i j 1 − a i j a j m a x , j 1 , . . . , n b_{ij}1-\frac{a_{ij}}{a_j^{max}},j1,...,n bij1−ajmaxaij,j1,...,n 标准0-1变换 效益型属性 b i j a i j − a j m i n a j m a x − a j m i n , j 1 , . . . , n b_{ij}\frac{a_{ij}-a_j^{min}}{a_j^{max}-a_j^{min}},j1,...,n bijajmax−ajminaij−ajmin,j1,...,n 其中 a j m a x , a j m i n a_j^{max},a_j^{min} ajmax,ajmin分别表示初始的决策矩阵 A A A第 j j j列的最大值、最小值。 成本型属性 b i j a j m a x − a i j a j m a x − a j m i n , j 1 , . . . , n b_{ij}\frac{a_j^{max}-a_{ij}}{a_j^{max}-a_j^{min}},j1,...,n bijajmax−ajminajmax−aij,j1,...,n 区间属性变换 对于区间属性设第 j j j个属性最优属性区间为 [ a j 0 , a j ∗ ] \left [ a_j^0,a_j^* \right ] [aj0,aj∗]无法容忍下限为 a j l b a_j^{lb} ajlb无法容忍上限为 a j u b a_j^{ub} ajub则 b i j { 1 − ( a j 0 − a i j ) ( a j 0 − a j l b ) , a j l b ≤ a i j a j 0 1 , a j 0 ≤ a i j ≤ a j ∗ 1 − ( a i j − a j ∗ ) ( a j u b − a j ∗ ) , a j ∗ a i j ≤ a j u b 0 , o t h e r b_{ij}\begin{cases} 1-\frac{\left ( a_j^0-a_{ij} \right ) }{\left ( a_j^0-a_j^{lb} \right )} \text{ , } a_j^{lb}\le a_{ij} a_j^0 \\ 1 \text{ , } a_j^{0}\le a_{ij}\le a_j^* \\ 1-\frac{\left ( a_{ij}-a_{j}^* \right ) }{\left ( a_j^{ub}-a_j^{*} \right )} \text{ , } a_j^* a_{ij}\le a_j^{ub} \\ 0 \text{ , } other \end{cases} bij⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧1−(aj0−ajlb)(aj0−aij)11−(ajub−aj∗)(aij−aj∗)0 , ajlb≤aijaj0 , aj0≤aij≤aj∗ , aj∗aij≤ajub , other 向量规范化 b i j a i j ∑ i 1 m a i j 2 , j 1 , . . . , n b_{ij}\frac{a_{ij}}{\sqrt{\sum_{i1}^{m}a_{ij}^2} },j1,...,n bij∑i1maij2 aij,j1,...,n 规范化后各方案同一属性值的平方和为1。
代码示例
假设现有5个高校的数据需要根据这些数据对高校进行评估。
人均专著/(本/人)生师比科研经费/(万元每年)逾期毕业率/%10.1550004.720.2660005.630.4770006.740.910100002.351.224001.8
对上面的4个指标进行分析人均专著、科研经费属于效益型指标逾期毕业率属于成本型指标而生师比属于区间型指标假设生师比最优区间为 [ 5 6 ] \left [ 56 \right ] [56]无法容忍下限为2无法容忍上限为12需要对其中一些指标进行转换。给出python代码如下
import numpy as npA np.array([[0.1, 5, 5000, 4.7],[0.2, 6, 6000, 5.6],[0.4, 7, 7000, 6.7],[0.9, 10, 10000, 2.3],[1.2, 2, 400, 1.8]])# 师生比的最优区间
opt_range [5, 6]
# 师生比的容忍上下限
to_lb 2
to_ub 12# 属性的权向量
omega np.array([0.2, 0.3, 0.4, 0.1])# 对师生比进行区间属性进行规范化处理
def range_trans(param, opt_range, lb, ub)::param param: 待转换的元素值:param opt_range: 最优区间:param lb: 无法容忍下限:param ub: 无法容忍上限:return:if lb param opt_range[0]:return 1 - (opt_range[0] - param)/(opt_range[0] - lb)elif param opt_range[1]:return 1elif param ub:return 1 - (param - opt_range[1])/(ub - opt_range[1])else:return 0# Press the green button in the gutter to run the script.
if __name__ __main__:# 方案数m,属性数nm, n np.shape(A)# 对师生比作区间变换for i in range(m):A[i, 1] range_trans(A[i, 1], opt_range, to_lb, to_ub)# 对逾期毕业率做标准0-1变换a4_max max(A[:, 3])a4_min min(A[:, 3])for i in range(m):A[i, 3] (a4_max - A[i, 3])/(a4_max - a4_min)# 属性进行向量规范化B np.zeros([m, n])for i in range(m):for j in range(n):B[i, j] A[i, j] / np.linalg.norm(A[:, j])# 构建加权规范阵omega_mat np.tile(omega, (m, 1))C B * omega_mat# 求正、负理想解。前两个属性以及第三个max_vec np.amax(C, axis0)min_vec np.amin(C, axis0)# 计算各方案与正、负理想解之间的距离res_array np.zeros([m])for i in range(m):d0 np.linalg.norm(max_vec - C[i, :])d1 np.linalg.norm(min_vec - C[i, :])res_array[i] d1/(d0 d1)print(res_array.tolist())运行结果如下
[0.5240156414355697, 0.5725615802335773, 0.61086314578445, 0.7027067250301631, 0.32916727350419983]从运行结果上来看数值越大说明对该高校的评估结果越好具体的排名为 [ 4 , 3 , 2 , 1 , 5 ] \left [ 4,3,2,1,5 \right ] [4,3,2,1,5]因此第4所高校总体来说评价最好。