【综合评价方法】常见综合评价方法及其实现

@TOC


1.数据预处理

1.1 区分指标的属性

  1. 正向指标

  2. 负向指标

  3. 中间型指标

  4. 区间型指标

1.2 指标正向化

1.2.1 负向指标

负向指标的正向化方法,又称为指标反转方法,是指将原本反映负面情况的指标转换为反映正面情况的指标,以便于比较及分析。该方法广泛应用于评估指标、市场研究、数据分析等领域。

具体来说,负向指标的正向化方法可以分为以下几个步骤:

  1. 确定要进行正向化的指标

  2. 确定负向指标需要进行什么样的正向化,常见的方法包括倒数、对数、绝对值等

  3. 进行指标正向化的计算公式,根据不同的正向化方法而定

  4. 对正向化后的指标进行归一化处理,使其可比较性更强

下面介绍一种负向指标的正向化方法。

对于一组负向指标数据:

取出最大值:

然后利用这个值逐个更新$y_{i}$ :

1.2.2 中间指标

中间型指标是指指标的值不要太小也不要太大,取某个特定值最好,如水体的ph值最好为7。下面介绍一种中间型指标的正向化方法:

对于一组中间型指标数据:

先拟定一个最优值:

然后计算这组数据中每个数据到这个最优值的距离,取出最大的那个:

然后利用这个值逐个更新$y_{i}$:

1.2.3 区间指标

区间型指标是指,指标值落在某个区间最好,例如,人的体温在$36^{\circ}C$到$37^{\circ}C$最好。下面介绍一种区间型指标的正向化方法:

对于一组区间型指标数据:

先拟定一个最优区间:

取出这组数据的最大值和最小值:

然后计算一个值$M$:

然后用如下公式逐个更新$y_{i}$:

1.3 标准化

1.3.1 Z-score 标准化

对于样本 $X$ 中的每个特征:

其中,$\mu$ 是该特征的平均值,$\sigma$ 是该特征的标准差。

1.3.2 Min-max 标准化

对于样本 $X$ 中的每个特征:

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

1.3.3 Robust 标准化

对于样本 $X$ 中的每个特征:

其中,median 是该特征的中位数,IQR 是四分位数范围(即上四分位数和下四分位数之差)。

1.3.4 归一化

对于样本 $X$ 中的每个特征:

其中,$n$ 是该样本的特征数量。

  • 适用于未给出指标的评价问题

  • 适用于未给出指标的评价问题

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

主成分分析法是一种常用的无监督降维技术,它将原始数据投影到一个新的低维度空间中,以便保留数据的最大方差。通过选择适当数量的主成分,我们可以捕捉到数据中最重要的信息,并且减少原始数据的维度。

4.1 步骤

  1. 数据正向化、标准化:假设我们有$p$维度的样本数据$\boldsymbol{X}=(\boldsymbol{x}_1, \boldsymbol{x}_2, ..., \boldsymbol{x}_n)$,每一维度的数据均值为0,标准差为1。这一步的目的是为了除去维度间的量纲影响。

其中,$\bar{\boldsymbol{x}}$是所有样本数据的均值,$\sigma_j$是第$j$维度的标准差。

  1. 计算协方差矩阵:计算标准化后数据的协方差矩阵。协方差矩阵描述了不同特征之间的相关性。

    公式:

    其中,$\Sigma$ 是协方差矩阵,$X$ 是标准化后的数据矩阵,$\bar{X}$ 是每个特征的均值,$n$ 是样本数量。

  2. 计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征向量表示了数据在新的特征空间中的方向。

  3. 选择主成分:按照特征值的大小对特征向量进行排序,选择前k个特征向量作为主成分。这些主成分对应的特征值较大,包含了较多的原始数据信息。

  4. 计算投影:将原始数据投影到选定的主成分上,得到降维后的数据。

    公式:

    其中,$Y$ 是降维后的数据矩阵,$X_{\text{std}}$ 是标准化后的数据矩阵,$W$ 是前k个特征向量组成的投影矩阵。

  5. 可选:重构数据:根据降维后的数据和投影矩阵,可以通过逆变换将数据重新映射到原始空间中。

    公式:

    其中,$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):

其中 $x_{ij}$ 表示第i个方案的第j项指标原始数据。标准化处理将不同维度的数据范围统一到0-1之间,并且会消除数据量级之间的影响。

5.3 计算正负理想解

  • 如果没有进行正向化:

对于利益类指标,如价格、收益等,需要最大化;而对于成本类指标,如成本、负债等,需要最小化。可以分别计算出每一个指标在给定n个方案中的最大值和最小值。设 第j项指标的正理想解为$v^{+}{j}$, 负理想解为$v^{-}{j}$。具体的计算方式如下所示:

对于利益类指标:

对于成本类指标:

  • 如果进行了正向化:

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

5.4 计算每个方案与正负理想解的距离

在标准化之后,可以对每一个方案与正负理想解之间的距离进行计算。设第i个方案到正理想解的距离为$S_{i}^{+}$, 到负理想解的距离为$S_{i}^{-}$。

其中,$m$为指标维度的数量。 $S^{+}{i}$表示方案$i$与正理想解之间的距离,$S^{-}{i}$表示方案$i$与负理想解之间的距离,值越小越接近理想解,因此可以把正负理想解的范围展开到$[0, 1]$之间作为检验指标的依据.

5.5 计算综合得分

最终的综合得分$s_i$可以通过权衡每个指标从而得到,如下所示:

其中,$S_{i}^{+}$表示第$i$个方案与正理想解的距离,$S_{i}^{-}$表示第$i$个方案与负理想解的距离。综合得分$s_i$可以看作是评价指标的加权平均值。当综合得分越高时,则表示第$i$个方案越更优。

下面举一个例子来说明如何使用这种方法进行决策。例如,一家公司想在考虑多个指标情况下选择最适合的机器学习平台。他们的评价指标包括特性得分(例如各种模型类型的大小、精度等),服务质量得分(包括易用性、响应时间、数据隐私度,等等),价格得分等。我们假设有三个候选机器学习平台,评价指标如下表所示:

使用 Topsis 方法来计算得到每个平台的得分:

对每个评价指标进行标准化,计算符合每个标准化指标的正负理想解,计算每个平台到理想解的距离:

通过计算得出, 平台 B 的综合得分最高,因此可以推荐该平台作为其机器学习的首选选项。

6.灰色关联分析法(客观)

灰色关联度分析是一种比较常用的多因素综合评价方法,它可以用于确定不同的对象与某一参考对象之间关联度。如果我们把这个参考对象设置为理想中的完美对象,那么灰色关联分析法就可以分析出不同的对象的优劣。

具体实施步骤如下:

6.1 收集数据

建立评价指标矩阵,其中每行对应一个因素(评价对象),每列对应一个评价指标。评价指标可以是数量指标,也可以是质量(定性)指标,但是指标之间的具体意义必须相同。设评价指标矩阵为 $X$,其中 $x_{ij}$ 表示第 $i$ 个因素对第 $j$ 个指标的值。

我们先给出一个例子,某核心企业待选供应商的指标评价有关数据:

6.2 正向化和标准化并建立参考对象

对评价指标矩阵进行正向化和标准化,将各项指标转化为同一量纲下的评价指标值。其中标准化方法一般采用Min-max标准化。详见1.2与1.3。

在上面这个例子中,产品价格、地理位置、售后服务是负向指标,其他都是正向指标。预处理后的数据如下:

建立参考对象,如下:

由于此处进行了正向化处理和Min-max标准化,因此,此处的参考对象的各项指标只要对每一行都取最大值即可。

6.3 确定权重

确定各个指标对应的权重。但暂时不对指标矩阵的每一行进行加权处理。可用层次分析法确定这些权值。

这些权值将在计算灰色关联度的时候用到。

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个指标上的关联系数的计算公式如下:

其中,$\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}$ 表示待评价对象的得分,$w_{i}$是6.3中确定的权值。

最终按照各个评价对象的得分进行排序,得分高表示与各项指标的关系越密切,也就越好。

Last updated