【綜合評價方法】常見綜合評價方法及其實現

UnderTurrets發表於2024-08-26

@

目錄
  • 1.資料預處理
    • 1.1 區分指標的屬性
    • 1.2 指標正向化
      • 1.2.1 負向指標
      • 1.2.2 中間指標
      • 1.2.3 區間指標
    • 1.3 標準化
    • 1.3.1 Z-score 標準化
    • 1.3.2 Min-max 標準化
    • 1.3.3 Robust 標準化
    • 1.3.4 歸一化
  • 2.模糊評價法(主觀)(not recommended)
  • 3.層次分析法(主觀)(not recommended)
  • 4.PCA主成分分析法(客觀)
    • 4.1 步驟
    • 4.2 實現
  • 5.Topsis方法(客觀)
    • 5.1 正向化
    • 5.2 標準化
    • 5.3 計算正負理想解
    • 5.4 計算每個方案與正負理想解的距離
    • 5.5 計算綜合得分
  • 6.灰色關聯分析法(客觀)
    • 6.1 收集資料
    • 6.2 正向化和標準化並建立參考物件
    • 6.3 確定權重
    • 6.4 計算灰色關聯絡數
    • 6.5 計算灰色加權關聯度並排序


1.資料預處理

1.1 區分指標的屬性

  1. 正向指標
  2. 負向指標
  3. 中間型指標
  4. 區間型指標

1.2 指標正向化

1.2.1 負向指標

負向指標的正向化方法,又稱為指標反轉方法,是指將原本反映負面情況的指標轉換為反映正面情況的指標,以便於比較及分析。該方法廣泛應用於評估指標、市場研究、資料分析等領域。

具體來說,負向指標的正向化方法可以分為以下幾個步驟:

  1. 確定要進行正向化的指標
  2. 確定負向指標需要進行什麼樣的正向化,常見的方法包括倒數、對數、絕對值等
  3. 進行指標正向化的計算公式,根據不同的正向化方法而定
  4. 對正向化後的指標進行歸一化處理,使其可比較性更強

下面介紹一種負向指標的正向化方法。

對於一組負向指標資料:

$$
y_{1},y_{2},...,y_{n}
$$

取出最大值:

$$
y_{max}=\max\left { y_{1},y_{2},...,y_{n} \right }
$$

然後利用這個值逐個更新$y_{i}$ :

$$
y_{i}:=y_{max}-y_{i}
$$

1.2.2 中間指標

中間型指標是指指標的值不要太小也不要太大,取某個特定值最好,如水體的ph值最好為7。下面介紹一種中間型指標的正向化方法:

對於一組中間型指標資料:

$$
y_{1},y_{2},...,y_{n}
$$

先擬定一個最優值:

$$
y_{best}
$$

然後計算這組資料中每個資料到這個最優值的距離,取出最大的那個:

$$
M=\max\left { \left | y_{1} -y_{best}\right |, \left | y_{2} -y_{best}\right | , ... , \left | y_{n} -y_{best}\right | \right }
$$

然後利用這個值逐個更新$y_{i}$:

$$
y_{i}:=1-\frac{ \left | y_{i} -y_{best}\right | }{ M }
$$

1.2.3 區間指標

區間型指標是指,指標值落在某個區間最好,例如,人的體溫在$36{\circ}C$到$37C$最好。下面介紹一種區間型指標的正向化方法:

對於一組區間型指標資料:

$$
y_{1},y_{2},...,y_{n}
$$

先擬定一個最優區間:

$$
\left( a,b \right)
$$

取出這組資料的最大值和最小值:

$$
y_{max}=\max\left { y_{1},y_{2},...,y_{n} \right } ,
y_{min}=\min\left { y_{1},y_{2},...,y_{n} \right }
$$

然後計算一個值$M$:

$$
M=\max\left { a-y_{min},y_{max}-b \right }
$$

然後用如下公式逐個更新$y_{i}$:

$$
y_{i}:=
\left{\begin{matrix}
1-\frac{a-y_{i}}{a-y_{min}},y_{min} \le y_{i} < a \
1,a \le y_{i} \le b \
1-\frac{y_{i}-b}{y_{max}-b},b < y_{i} \le y_{max}
\end{matrix}\right.
$$

用如下這個梯形圖表示更為直觀:
在這裡插入圖片描述

1.3 標準化

1.3.1 Z-score 標準化

對於樣本 $X$ 中的每個特徵:

$$
X_{normalized} = \frac{(X - \mu)}{\sigma}
$$

其中,$\mu$ 是該特徵的平均值,$\sigma$ 是該特徵的標準差。

1.3.2 Min-max 標準化

對於樣本 $X$ 中的每個特徵:

$$
X_{normalized} = \frac{(X - X_{min})}{(X_{max} - X_{min})}
$$

其中,$X_{min}$ 是該特徵的最小值,$X_{max}$ 是該特徵的最大值。

1.3.3 Robust 標準化

對於樣本 $X$ 中的每個特徵:

$$
X_{normalized} = \frac{(X - median)}{IQR/2}
$$

其中,median 是該特徵的中位數,IQR 是四分位數範圍(即上四分位數和下四分位數之差)。

1.3.4 歸一化

對於樣本 $X$ 中的每個特徵:

$$
X_{normalized} = \frac{X}{\sqrt{\sum_{i=1}{n}x_i2}}
$$

其中,$n$ 是該樣本的特徵數量。

2.模糊評價法(主觀)(not recommended)

  • 適用於未給出指標的評價問題

3.層次分析法(主觀)(not recommended)

  • 適用於未給出指標的評價問題

4.PCA主成分分析法(客觀)

主成分分析法是一種常用的無監督降維技術,它將原始資料投影到一個新的低維度空間中,以便保留資料的最大方差。透過選擇適當數量的主成分,我們可以捕捉到資料中最重要的資訊,並且減少原始資料的維度。

4.1 步驟

  1. 資料正向化、標準化:假設我們有$p$維度的樣本資料$\boldsymbol{X}=(\boldsymbol{x}_1, \boldsymbol{x}_2, ..., \boldsymbol{x}_n)$,每一維度的資料均值為0,標準差為1。這一步的目的是為了除去維度間的量綱影響。

$$
\boldsymbol{x}_j' = \frac{\boldsymbol{x}_j-\bar{\boldsymbol{x}}}{\sigma_j} (j=1,2,...,p)
$$

其中,$\bar{\boldsymbol{x}}$是所有樣本資料的均值,$\sigma_j$是第$j$維度的標準差。

  1. 計算協方差矩陣:計算標準化後資料的協方差矩陣。協方差矩陣描述了不同特徵之間的相關性。

    公式:

    $$
    \Sigma = \frac{1}{n-1}(X-\bar{X})^T(X-\bar{X})
    $$

    其中,$\Sigma$ 是協方差矩陣,$X$ 是標準化後的資料矩陣,$\bar{X}$ 是每個特徵的均值,$n$ 是樣本數量。

  2. 計算特徵值和特徵向量:對協方差矩陣進行特徵值分解,得到特徵值和對應的特徵向量。特徵向量表示了資料在新的特徵空間中的方向。

  3. 選擇主成分:按照特徵值的大小對特徵向量進行排序,選擇前k個特徵向量作為主成分。這些主成分對應的特徵值較大,包含了較多的原始資料資訊。

  4. 計算投影:將原始資料投影到選定的主成分上,得到降維後的資料。

    公式:

    $$
    Y = X_{\text{std}}W
    $$

    其中,$Y$ 是降維後的資料矩陣,$X_{\text{std}}$ 是標準化後的資料矩陣,$W$ 是前k個特徵向量組成的投影矩陣。

  5. 可選:重構資料:根據降維後的資料和投影矩陣,可以透過逆變換將資料重新對映到原始空間中。

    公式:

    $$
    X_{\text{reconstructed}} = YW^T
    $$

    其中,$X_{\text{reconstructed}}$ 是重構後的資料矩陣。

4.2 實現

>>> import numpy as np
>>> from sklearn.decomposition import PCA

# 輸入待降維資料 (5 * 6) 矩陣,6個維度,5個樣本值
>>> A = np.array([[84,65,61,72,79,81],[64,77,77,76,55,70],[65,67,63,49,57,67],[74,80,69,75,63,74],[84,74,70,80,74,82]])
>>> print(A)
[[84 65 61 72 79 81]
 [64 77 77 76 55 70]
 [65 67 63 49 57 67]
 [74 80 69 75 63 74]
 [84 74 70 80 74 82]]
 
# 直接使用PCA進行降維
>>> pca = PCA(n_components=2) #降到 2 維
>>> pca.fit(A)
PCA(n_components=2)
>>> pca.transform(A) # 降維後的結果
array([[-16.14860528, -12.48396235],
       [ 10.61676743,  15.67317428],
       [ 23.40212697, -13.607117  ],
       [ -0.43966353,   7.77054621],
       [-17.43062559,   2.64735885]])
>>> pca.explained_variance_ratio_ # 降維後的各主成分的方差值佔總方差值的比例,即方差貢獻率
array([0.63506778, 0.339022  ])
>>> pca.explained_variance_ # 降維後的各主成分的方差值
array([306.29319053, 163.51030959])

5.Topsis方法(客觀)

Topsis綜合評價方法是一種多維決策分析方法,適用於多種複雜的評估和決策場景中。為了更清楚地解釋,我將對每個步驟進行更詳細的說明。

首先,評估方案需要同時考慮多個評價指標,這些指標可能相互矛盾或者有不同的權重,需要透過一定的數學模型將其標準化處理,並根據相對重要性進行加權計算。Topsis方法正是基於這個框架,採用了以下的計算方法來求出每個方案在各個指標上的綜合得分。

5.1 正向化

詳見1.2

5.2 標準化

一般使用1.3.4的歸一方法。

假設有n個方案(或實體),每個方案有m個不同的評價指標,在不同的評價指標間進行綜合評估。對於每一個方案i的j指標可以透過以下的計算得到其標準化後的數值v(i,j):

$$
v_{ij} = \frac{x_{ij}}{\sqrt{\sum_{i=1}n{x2_{ij}}}}
$$

其中 $x_{ij}$ 表示第i個方案的第j項指標原始資料。標準化處理將不同維度的資料範圍統一到0-1之間,並且會消除資料量級之間的影響。

5.3 計算正負理想解

  • 如果沒有進行正向化:

對於利益類指標,如價格、收益等,需要最大化;而對於成本類指標,如成本、負債等,需要最小化。可以分別計算出每一個指標在給定n個方案中的最大值和最小值。設 第j項指標的正理想解為$v^{+}{j}$, 負理想解為$v^{-}$。具體的計算方式如下所示:

對於利益類指標:

$$
v^{+}{j} = \max{{v| i = 1, 2, \cdots, n}}
$$

$$
v^{-}{j} = \min{{v| i = 1, 2, \cdots, n}}
$$

對於成本類指標:

$$
v^{+}{j} = \min{{v| i = 1, 2, \cdots, n}}
$$

$$
v^{-}{j} = \max{{v| i = 1, 2, \cdots, n}}
$$

  • 如果進行了正向化:

取每個列向量的最大值即可。

5.4 計算每個方案與正負理想解的距離

在標準化之後,可以對每一個方案與正負理想解之間的距離進行計算。設第i個方案到正理想解的距離為$S_{i}^{+}$, 到負理想解的距離為$S_{i}^{-}$。

$$
S^{+}{i} = \sqrt{\summ{(v_{ij}-v_{j})}^{2}}
$$

$$
S^{-}{i} = \sqrt{\summ{(v_{ij}-v_{j})}^{2}}
$$

其中,$m$為指標維度的數量。 $S{+}_{i}$表示方案$i$與正理想解之間的距離,$S_{i}$表示方案$i$與負理想解之間的距離,值越小越接近理想解,因此可以把正負理想解的範圍展開到$[0, 1]$之間作為檢驗指標的依據.

5.5 計算綜合得分

最終的綜合得分$s_i$可以透過權衡每個指標從而得到,如下所示:

$$
s_{i} = \frac{S{-}_{i}}{S_{i}+S_{i}^{-}}
$$

其中,$S_{i}{+}$表示第$i$個方案與正理想解的距離,$S_{i}$表示第$i$個方案與負理想解的距離。綜合得分$s_i$可以看作是評價指標的加權平均值。當綜合得分越高時,則表示第$i$個方案越更優。

下面舉一個例子來說明如何使用這種方法進行決策。例如,一家公司想在考慮多個指標情況下選擇最適合的機器學習平臺。他們的評價指標包括特性得分(例如各種模型型別的大小、精度等),服務質量得分(包括易用性、響應時間、資料隱私度,等等),價格得分等。我們假設有三個候選機器學習平臺,評價指標如下表所示:

候選平臺 特性得分(0 - 1) 服務質量得分(0 - 1) 價格得分(0 - 1)
平臺 A 0.8 0.6 0.7
平臺 B 0.6 0.8 0.6
平臺 C 0.7 0.5 0.8

使用 Topsis 方法來計算得到每個平臺的得分:

對每個評價指標進行標準化,計算符合每個標準化指標的正負理想解,計算每個平臺到理想解的距離:

候選平臺 特性得分 服務質量得分 價格得分 正理想解 負理想解 到正理想解的距離 到負理想解的距離 綜合得分
平臺 A 0.8 0.6 0.7 0.8 0.5 0.2236 0.3606 0.3825
平臺 B 0.6 0.8 0.6 0.8 0.5 0.2828 0.2828 0.5000
平臺 C 0.7 0.5 0.8 0.8 0.5 0.2449 0.3317 0.4255

透過計算得出, 平臺 B 的綜合得分最高,因此可以推薦該平臺作為其機器學習的首選選項。

6.灰色關聯分析法(客觀)

灰色關聯度分析是一種比較常用的多因素綜合評價方法,它可以用於確定不同的物件與某一參考物件之間關聯度。如果我們把這個參考物件設定為理想中的完美物件,那麼灰色關聯分析法就可以分析出不同的物件的優劣。

具體實施步驟如下:

6.1 收集資料

建立評價指標矩陣,其中每行對應一個因素(評價物件),每列對應一個評價指標。評價指標可以是數量指標,也可以是質量(定性)指標,但是指標之間的具體意義必須相同。設評價指標矩陣為 $X$,其中 $x_{ij}$ 表示第 $i$ 個因素對第 $j$ 個指標的值。

我們先給出一個例子,某核心企業待選供應商的指標評價有關資料:

評價指標 物件1 物件2 物件3 物件4 物件5 物件6
產品質量 0.83 0.90 0.99 0.92 0.87 0.95
產品價格(元) 326 295 340 287 310 303
地理位置(千米) 21 38 25 19 27 10
售後服務(小時) 3.2 2.4 2.2 2.0 0.9 1.7
技術水平 0.20 0.25 0.12 0.33 0.20 0.09
經濟效益 0.15 0.20 0.14 0.09 0.15 0.17
供應能力(件) 250 180 300 200 150 175
市場影響度 0.23 0.15 0.27 0.30 0.18 0.26
交貨情況 0.87 0.95 0.99 0.89 0.82 0.95

6.2 正向化和標準化並建立參考物件

對評價指標矩陣進行正向化和標準化,將各項指標轉化為同一量綱下的評價指標值。其中標準化方法一般採用Min-max標準化。詳見1.2與1.3。

在上面這個例子中,產品價格、地理位置、售後服務是負向指標,其他都是正向指標。預處理後的資料如下:

評價指標 物件1 物件2 物件3 物件4 物件5 物件6
指標1 0 0.4375 1 0.5625 0.25 0.75
指標2 0.2642 0.8491 0 1 0.566 0.6981
指標3 0.6071 0 0.4643 0.6786 0.3929 1
指標4 0 0.3478 0.4348 0.5217 1 0.6522
指標5 0.4583 0.6667 0.125 1 0.4583 0
指標6 0.5455 1 0.4545 0 0.5455 0.7273
指標7 0.6667 0.2 1 0.3333 0 0.1667
指標8 0.5333 0 0.8 1 0.2 0.7333
指標9 0.2941 0.7647 1 0.4118 0 0.7059

建立參考物件,如下:

評價指標 物件1 物件2 物件3 物件4 物件5 物件6 參考物件
指標1 0 0.4375 1 0.5625 0.25 0.75 1
指標2 0.2642 0.8491 0 1 0.566 0.6981 1
指標3 0.6071 0 0.4643 0.6786 0.3929 1 1
指標4 0 0.3478 0.4348 0.5217 1 0.6522 1
指標5 0.4583 0.6667 0.125 1 0.4583 0 1
指標6 0.5455 1 0.4545 0 0.5455 0.7273 1
指標7 0.6667 0.2 1 0.3333 0 0.1667 1
指標8 0.5333 0 0.8 1 0.2 0.7333 1
指標9 0.2941 0.7647 1 0.4118 0 0.7059 1

由於此處進行了正向化處理和Min-max標準化,因此,此處的參考物件的各項指標只要對每一行都取最大值即可。

6.3 確定權重

確定各個指標對應的權重。但暫時不對指標矩陣的每一行進行加權處理。可用層次分析法確定這些權值。

$$
\omega =\left [ \omega _{1} ,\omega _{2} ,...,\omega {n}\right ] ,\sum^{n} \omega _{i}=1
$$

這些權值將在計算灰色關聯度的時候用到。

6.4 計算灰色關聯絡數

我們記$x_{i}$為物件$i$,參考物件為$x_{0}$。$x_{i}$與$x_{0}$都有m個指標,我們需要求出它們在第k個指標上的關聯絡數。關聯絡數越大,代表這個實際物件越貼近於參考物件。對於n個實際物件,m個指標,$x_{i}(j)$表示實際物件i的第j個指標的值,那麼,$x_{i}$與$x_{0}$在第k個指標上的關聯絡數的計算公式如下:

$$
\xi {i}(k)=\frac{
\min
\min_{1\le t \le m} \left | x_{0}(t)-x_{s}(t) \right | \
+\rho \max_{1\le s \le n} \max_{1\le t \le m} \left | x_{0}(t)-x_{s}(t) \right |
}{
\left | x_{0}(k)-x_{i}(k) \right | \
+\rho \max_{1\le s \le n} \max_{1\le t \le m} \left | x_{0}(t)-x_{s}(t) \right |
}
$$

其中,$\min_{1\le s \le n} \min_{1\le t \le m} \left | x_{0}(t)-x_{s}(t) \right |$稱為兩極最小差,$\max_{1\le s \le n} \max_{1\le t \le m} \left | x_{0}(t)-x_{s}(t) \right |$稱為兩級最大差,$\rho$稱為分辨係數

兩級最小差和兩級最大差的計算過程,就是把指標矩陣的各個值與參考物件進行比較的過程。分辨係數$\rho$越大,解析度就越大;$\rho$越小,解析度就越小

在上面的例子中,我們可以算出兩級最小差為0,兩級最大差為1。這是由於使用了Min-max標準化方法而導致的。

6.5 計算灰色加權關聯度並排序

灰色加權關聯度就是每個物件的最終得分,它採用如下公式計算:

$$
r_{i}=\sum_{k=1}^{n}w_{i}\xi _{i}(k)
$$

其中,$r_{i}$ 表示待評價物件的得分,$w_{i}$是6.3中確定的權值。

最終按照各個評價物件的得分進行排序,得分高表示與各項指標的關係越密切,也就越好。

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章