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

news/2024/11/17 15:30:03/文章来源:https://www.cnblogs.com/UnderTurrets/p/18381516

@

目录
  • 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 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/787648.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s集群使用私有仓库通过containerd上传镜像(没解决...)

查阅资料 根据 containerd 中部分文档 https://github.com/containerd/containerd/blob/release/1.5/docs/cri/registry.mdhttps://github.com/containerd/containerd/blob/release/1.5/docs/hosts.mdhttps://blog.csdn.net/u010566813/article/details/125990298最终私有仓库…

OceanBase-OB备份异地恢复流程

OB备份异地恢复流程 ——2023年5月9日 一、【白屏操作】 1、确定当前备份的OB版本: 2、新建备份目录授权(备份到本地目录为例):mkdir /obbackup/ chown -R admin.admin /obbackup/保证能解析成功: 3、点击“备份”,查询操作系统的目录结构:4、拷贝租户层面数据文件…

软工homework1:自我介绍+5问

软工homework1:自我介绍+5问这个作业属于哪个课程 广工计院计科34班软工这个作业要求在哪里 作业要求这个作业的目标 学会创建并使用自己的博客和Github,熟悉其中的基本操作和功能,用Markdown编写完成自我介绍以及软工5问前言 亲爱的读者,正如你所见,这是我在博客园发布的…

Typora 上传到 Github 实现笔记同步管理

首先在 Github 上 new 一个 repository ,我建的名称是 md_notes 然后在本地 terminal 中启动以下命令新建一个 ssh key ssh-keygen -o生成的 public key 就是我们需要的东西,接着再输入 cat C:\Users\ASUS/.ssh/id_rsa.pub 就能获取到生成的密钥复制生成的密钥(两个 PS 中间…

使用 T5 Transformer 进行多任务处理的指南

T5 (Text-to-Text Transfer Transformer) 模型是为探索迁移学习的局限性而进行的一项大规模研究(论文)的产物。它建立在 GPT、BERT 和 RoBERTa(仅举几例)模型等流行的架构之上,这些模型利用迁移学习取得了令人难以置信的成功。虽然类似 BERT 的模型可以进行微调以执行各…

SQL备忘记(一)

一前言 环境:win10 mysql 5.7.32 记录一些sql中平时容易弄错的或不明白一些知识点 二 正文 1 select语句执行顺序 FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY --一个大概的执行顺序,具体执行顺序根据数据库管理系统S的不同而不同 如下成绩表score如上,可以看出,avg(…

Linux C++ 开发5 - 一文了解CMake构建

1. 什么是CMake?1.1. CMake的定义 1.2. CMake有哪些优势? 1.3. CMake 的特点 1.4. Cmake 、CMakeLists.txt 、Make 、Makefile 之间的关系2. 应用案例2.1. 项目概述 2.2. CMakeLists.txt2.2.1. 基本用法 2.2.2. 完整内容 2.2.3. 构建执行上一篇《Linux C++ 开发4 - 入门makef…

BLE 广播报文格式

广播报文结构 一个完整的BLE广播报文由四部分组成,分别是前导码、接入地址、协议数据单元和CRC校验码。Preamble 前导 Access address(接入设备) PDU CRC校验1 Bytes 4 Bytes 2-37 Bytes 3 Bytes前导码:用来同步时序,可以是0x55或者0xAA,由接入地址的第一个比特决定。如果接…

[JLOI2015] 骗我呢——一类经典反射容斥

加载解析界面 数字变化跳跃反射容斥 一层反射:有一条线 \(y=x+b\) 不能碰到。 从第一次碰到直线开始,将后面的部分沿直线翻折,最终一定会到达 \((n-b,n+b)\),因为 \(b\ne 0\),所以构成双射。答案即为 \(\binom{2n}{n}-\binom{2n}{n-b}\)。 注意,如果最终到达的位置是 \((…

南沙区信息学奥林匹克竞赛(信奥赛)介绍

​信息学奥林匹克竞赛(International Olympiad in Informatics,IOI)是一项旨在选拔和培养信息技术和计算机科学人才的国际性竞赛。该竞赛始于1989年,每年举办一次,由不同的国家轮流承办。参加比赛的选手来自全球各国,都是信息技术和计算机科学领域的尖子生。信息学奥林匹…

英文单词字母大小写在线转换工具html代码

这是一个简单而实用的在线大小写转换工具。它允许用户输入任意文本,并提供三种转换选项:转换为全大写、全小写或首字母大写。 使用这个工具非常简单快捷。用户只需要在输入框中输入想要转换的文本,选择合适的转换类型,然后点击"转换"按钮即可。转换结果会立即显示在输…