一、TOPSIS法简介
TOPSIS法,即技术相对偏差排序法,是一种常用的多属性决策分析方法。它可以用于评价多个方案,找出最优的方案。TOPSIS法首先将各指标标准化,然后根据各指标与最好和最差方案的距离,计算各方案的综合指标,最终选择综合指标最大的方案作为最优解。TOPSIS法适用于各项指标之间既有正相关,又有负相关的综合评价问题,并且比较成对方案间的优劣关系。
二、TOPSIS法的优点
1. 相对其他方法更加灵活
TOPSIS法的灵活性表现在它可以使用任何指标、任何决策者意见以及适用于各种领域的问题中。在该方法的框架下,可以使用任何形式的输入数据,包括标称尺度、顺序尺度和度量尺度。因此,使用可以定制的决策模型,TOPSIS法对决策者输入的和所选指标的响应进行了灵活的处理。
2. 异常值不会对结果产生影响
TOPSIS法使用指标标准归一化处理,使所有指标处于相似的尺度。这意味着任何指标上的异常值都不会对结果产生任何影响。其原因在于归一化后的数据将在使各指标的权重被反映在计算综合指数期间,从而减少了考虑异常值的干扰。
3. 能够考虑指标间的相互依赖性
TOPSIS法在计算综合指数时,考虑了指标间的相互依赖性。其使用正负理想解的概念来反映指标之间的依赖性。因此,在综合考虑各指标的权重时,更准确地反映了指标间相互关系的影响。这使得该方法能够在多指标决策中更好地实现多指标的权衡。
三、TOPSIS法的缺点
1. 对标准化方法敏感
TOPSIS法使用标准化方法将各指标归一化,在实际应用中选择标准化方法较为困难。不同的标准化方法可能会导致不同的综合指数,因此,选择合适的标准化方法十分重要。如果使用不适当的标准化方法,将可能导致最优解不是最佳的结果。
2. 权重难以确定
TOPSIS法在综合指数中考虑不同指标的权重。这些权重越接近真实情况,评估结果就越准确。但是,选择适当的权重往往是一个难以解决的问题。不同的决策者可能赋予不同的权重,而相同的决策者在不同情况下可能会赋予不同的权重。因此,确定权重是TOPSIS法中最大的缺点之一。
3. 不适用于复杂的模糊多目标决策问题
TOPSIS法是一种理想的评估方法,适用于使用数量可测量且权重可确定的指标的静态参考点。然而,在复杂的多目标决策问题中,指标信息尤其是权重和静态参考点都是模糊的。在这种情况下,TOPSIS法的灵活性不足以应对复杂的情况,可能需要使用更为复杂的决策方法。
四、代码实现
def topsis(data, weight, impact):
# 数据标准化
data_norm = data / np.linalg.norm(data, axis=0)
# 根据效益矩阵计算加权标准化数据
data_weight = data_norm * weight
# 确认正负理想解
ideal_best = np.max(data_norm, axis=0)
ideal_worst = np.min(data_norm, axis=0)
# 计算距离
s_best = np.sqrt(np.sum((data_weight - ideal_best) ** 2, axis=1))
s_worst = np.sqrt(np.sum((data_weight - ideal_worst) ** 2, axis=1))
# 计算综合指数
performance_score = s_worst / (s_best + s_worst)
# 返回最大的综合指数对应的索引
return np.argmax(performance_score)