TOPSIS法

1什么是TOPSIS法?(也是用于评价类问题求解)

因为层次分析法的局限所以说,当给了具体数据评分时,就不能再用层次分析方法了。

2  上一节讲到层次分析方法,那层次分析法有什么局限性呢?

 

3引例:

那么就不能具体反映出分数的差距。

注意上图的归一化处理,理解一下  为什么加起来就是1.

原因分析:

所以经过以上分析要记住一个构造计算评分的公式:(上面说了这么多就是为了得到这个公式)

拓展问题:

注意:知道什么是极大型指标?什么是极小型指标?

为了解决上面极大性指标和极小型指标的差异,我们可以把两种指标统一指标类型。下面是方法(一般来说所有指标转化为极大型)

指标正向化之后还要进行标准化处理(消除单位或消除量纲):

注意标准化公式是什么?标准化不同于归一化

计算得分你可能想到很简单呀,上面矩阵按行相加然后归一化就行了呀,这样也是一种方法,但是这样你并没有掌握这个公式的精华

上面是一个引例:能体现出topsis方法的思想,而下面这个是topsis方法总结:

注意上面例子是为了引出topsis方法下面才是最重要的步骤:

 

4   topsis方法步骤:

下面讲解怎么将其他三种类型指标转化为极大型指标。

 

加权重的计算得分

5  练习题

注:mat文件就是矩阵文件就是matlab软件创建的文件后缀名,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<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 =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值