@
- 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 指標正向化
1.2.1 負向指標
負向指標的正向化方法,又稱為指標反轉方法,是指將原本反映負面情況的指標轉換為反映正面情況的指標,以便於比較及分析。該方法廣泛應用於評估指標、市場研究、資料分析等領域。
具體來說,負向指標的正向化方法可以分為以下幾個步驟:
- 確定要進行正向化的指標
- 確定負向指標需要進行什麼樣的正向化,常見的方法包括倒數、對數、絕對值等
- 進行指標正向化的計算公式,根據不同的正向化方法而定
- 對正向化後的指標進行歸一化處理,使其可比較性更強
下面介紹一種負向指標的正向化方法。
對於一組負向指標資料:
$$
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 步驟
- 資料正向化、標準化:假設我們有$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$維度的標準差。
-
計算協方差矩陣:計算標準化後資料的協方差矩陣。協方差矩陣描述了不同特徵之間的相關性。
公式:
$$
\Sigma = \frac{1}{n-1}(X-\bar{X})^T(X-\bar{X})
$$其中,$\Sigma$ 是協方差矩陣,$X$ 是標準化後的資料矩陣,$\bar{X}$ 是每個特徵的均值,$n$ 是樣本數量。
-
計算特徵值和特徵向量:對協方差矩陣進行特徵值分解,得到特徵值和對應的特徵向量。特徵向量表示了資料在新的特徵空間中的方向。
-
選擇主成分:按照特徵值的大小對特徵向量進行排序,選擇前k個特徵向量作為主成分。這些主成分對應的特徵值較大,包含了較多的原始資料資訊。
-
計算投影:將原始資料投影到選定的主成分上,得到降維後的資料。
公式:
$$
Y = X_{\text{std}}W
$$其中,$Y$ 是降維後的資料矩陣,$X_{\text{std}}$ 是標準化後的資料矩陣,$W$ 是前k個特徵向量組成的投影矩陣。
-
可選:重構資料:根據降維後的資料和投影矩陣,可以透過逆變換將資料重新對映到原始空間中。
公式:
$$
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 釋出!