TOPSIS法

TOPSIS法

TOPSIS法(Technique for Order Preference by Similarity to ldeal Solution)

可翻译为逼近理想解排序法,国内常简称为优劣解距离法

TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,

其结果能精确地反映各评价方案之间的差距。

在层次分析法的学习中,我们认识到了一些层次分析法的局限性,比如 n过大或者我们知道决策层中的指标数据,这种情况下层次分析法便不再适用,这种情况下我们应该在这么做呢

以下已知四个同学的成绩:

0

但是这种排名的方法仍然有不足的方法

0

这显然是不合理的

0

通过构造计算评分的方式,评分与成绩的关系更加密切了,因此评分相比上一种方法更加贴切这个例子

那为什么不直接用100分和0分作为上限和下限呢?

0

有以下几个点:

(1) 比较的对象一般要远大于两个。 (例如比较一个班级的成绩)

(2)比较的指标也往往不只是一-个方面的,例如成绩、工时数、课

外竞赛得分等。

(3)有很多指标不存在理论上的最大值和最小值,例如衡量经济增

长水平的指标: GDP增速。

0

但是在现实生活中,很多情况下指标的数量不止一个,在指标大于一个时我们该怎么样呢?

0

但是不同指标的类型也存在不同的地方,比如说有的指标越大越好,有的指标越小越好,在这里我们将其称作 极大型,极小型,不同类型的指标在计算中不能直接进行计算,这里一般通过将极小型转化为极大型的方法使其能够同时运算

但是转换之后,虽然他们都是极大型指标,但是他们的量纲不同,(即每个单位指标对结果的影响不同),所以这时我们应该对他们进行标准化处理

比如这里,成绩的1分以及争吵次数的一次,显然对结果的影响不同,这样就会对结果的准确性带来不小的影响

用以上方法将例子中的两个指标标准化后我们得到:

计算得分

对两个指标进行综合考虑后,我们得到得分如下

TOPSIS法的使用方法

一.正向化

以上我们介绍了极大型和极小型指标,还有中间性指标和区间型指标总共四种常见指标:

不同类型指标之间的转化方式:

1.极小型→极大型

2.中间型→极大型

3.区间型→极大型

二.标准化

标准化的作用是消除量纲的影响

三.计算得分并归一化

计算得分

在这里,我们默认不同指标之间的权重相同,但是实际情况中,不同的指标的影响程度大部分情况下都是不一样的,故有需要我们需要根据不同指标的重要程度对他们选择使用不同的权重

练习:

在此题目中,含氧量是极大型指标,ph是中间型指标,细菌总数是极小型指标,营养物质为去践行指标

基于熵权法对TOPSIS模型的修正

熵权法是一种了客观赋权的方法

这里的变异程度指方差,即对结果的影响程度,根据影响程度的大小对指标进行赋权

阅读以下案例

我们得到结果: 越有可能发生的事情信息量越少,越不可能发生的事情信息量越多。

我们可以将这种思路使用函数拟合出来,并可以得到如下关系

这件事情发生的概率设作p(x)

所以信息熵我们可以设作I(x) = -ln(p(x))

信息熵越大,则他的值能给你补充的信息量越大,而知道这个值前你已有的信息总量越小。

熵权法的计算步骤

指标的变异程度,也就是标准差,我们根据这个特征对指标进行连接

<think>好的,我需要帮用户了解TOPSIS的改进方和实现。首先,我得回顾一下TOPSIS的基本原理,这样才能更好地理解其改进方向。TOPSIS主要是通过计算各方案与正理想解和负理想解的距离来进行排序,对吧?用户提到的引用里提到正负理想解的概念,比如引用[2]和[3],所以可能需要先确认这点。 接下来,用户问的是改进方和实现。根据提供的引用,引用[2]提到了改进的TOPSIS多属性决策方,可能涉及到权重计算或者距离度量的调整。另外,引用[4]中的Inter2Max.m函数是处理区间型数据的正向化,这可能属于数据预处理阶段的改进。此外,引用[3]提到了Python库如TOPSIS-Python和scikit-criteria,这说明实现时可以使用现有的工具包,但用户可能想知道如何自己实现改进的方。 可能的改进方向包括:权重确定方的优化,比如使用熵权(引用[1]和[2]中提到),或者结合其他方如AHP;数据预处理的改进,如处理混合属性类型(区间型、效益型、成本型);距离计算方的改进,比如用马氏距离代替欧氏距离;以及动态或模糊环境下的TOPSIS扩展。 在实现方面,需要处理不同类型的数据,引用[4]中的Inter2Max函数展示了如何处理区间型数据,用户可能需要类似的代码示例。此外,动态权重的实现可能涉及到实时更新权重的方,比如时间序列加权。 然后,我需要确保回答的结构符合用户的要求,使用中文,正确应用LaTeX格式,生成相关问题,并在适当的位置添加引用。同时,要避免使用Markdown,保持自然的分段。 现在,我需要整理这些思路,分点说明改进方,并给出实现的步骤或代码示例。例如,在数据预处理部分,可以展示如何调用Inter2Max函数;在权重计算部分,可以提到熵权的应用,并引用相关文献。同时,实现部分可能需要用Python代码示例,结合现有的库或自定义函数。 最后,生成相关问题,这些问题应该围绕改进方、实现细节、应用场景等展开,确保覆盖用户可能感兴趣的方面。</think>### TOPSIS的改进方与实现 TOPSIS的改进主要围绕**权重计算、数据预处理、距离公式优化**等方面展开,以下是具体方及实现思路: --- #### 一、改进方 1. **权重优化** - **熵权结合TOPSIS**:通过熵值计算客观权重,减少主观偏差。公式为: $$ w_j = \frac{1 - e_j}{\sum_{k=1}^n (1 - e_k)} $$ 其中$e_j$为第$j$项指标的熵值[^1][^2]。 - **组合赋权**:结合主观权重(如AHP)与客观权重(如熵权),提升评价的全面性。 2. **数据预处理改进** - **混合属性处理**:对区间型、效益型、成本型数据分别正向化。例如,区间型指标的正向化公式为: $$ \text{posit\_x}(i) = \begin{cases} 1 - \frac{a - x(i)}{M}, & x(i) < a \\ 1, & a \leq x(i) \leq b \\ 1 - \frac{x(i) - b}{M}, & x(i) > b \end{cases} $$ 其中$M = \max(a - \min(x), \max(x) - b)$[^4]。 - **动态数据调整**:引入时间权重,适用于多周期评价场景。 3. **距离公式优化** - **马氏距离替代欧氏距离**:解决指标间的相关性干扰,公式为: $$ D_i^+ = \sqrt{(X_i - X^+)^T \Sigma^{-1} (X_i - X^+)} $$ 其中$\Sigma$为协方差矩阵。 - **模糊TOPSIS**:用三角模糊数表示不确定数据,扩展经典模型。 --- #### 二、实现步骤(Python示例) 1. **数据正向化处理** ```python def Inter2Max(x, a, b): M = max(a - np.min(x), np.max(x) - b) posit_x = np.zeros_like(x) for i in range(len(x)): if x[i] < a: posit_x[i] = 1 - (a - x[i])/M elif x[i] > b: posit_x[i] = 1 - (x[i] - b)/M else: posit_x[i] = 1 return posit_x ``` 2. **熵权计算权重** ```python def entropy_weight(data): data_norm = data / np.sum(data, axis=0) k = 1 / np.log(data.shape[0]) e = -k * np.sum(data_norm * np.log(data_norm + 1e-10), axis=0) return (1 - e) / np.sum(1 - e) ``` 3. **TOPSIS核心计算** ```python def topsis(matrix, weights): norm_matrix = matrix / np.linalg.norm(matrix, axis=0) weighted_matrix = norm_matrix * weights ideal_best = np.max(weighted_matrix, axis=0) ideal_worst = np.min(weighted_matrix, axis=0) dist_best =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值