TOPSIS优劣解距离算法
TOPSIS模型引入
举例
topsis是一种综合评价类算法,主要思路还是通过实现对一些选取后的指标所得到的结果,对指标的结果进行的一种综合评价。其中指标有多个,比较的对象也远远大于两个。有些指标也不存在最大值和最小值。
指标分为两种,极大型和极小型,即极大型的指标越大越好,极小型的指标数值越小越好。
例如,如果要评价一个人的综测,那么可以把指标分为几大类,这里举例成考试成绩,参加竞赛获得的奖项,参加社团活动,出观众次数,实践学时,旷课次数。那么这些指标中,前面四项都是极大型指标,即越多越好;最后一项是极小型指标,即越少越好。因此,若班级里有30名学生,对他们30人的综测进行评价,则需要把每个指标的得分进行加和,得到的最终结果才能起到一个正确评价的作用。
评分的计算和统一指标类型
构造评分公式: x − m i n m a x − m i n \frac{x-min}{max-min} max−minx−min
统一指标类型:因为上述例子里有一个是极小型指标,即旷课次数,则需要经过一个指标正向化,才能把指标的类型都统一为极大型指标,这样在最后归一化的时候才能一致。(到时候要写论文里面)
极小型->极大型的公式:max-x
标准化处理
还是上面那个例子,如果上述的旷课次数进行正向化后,想要进一步进行评判,那么此时并不能直接将所有的指标进行一个加和,因为他们的量纲不同,即有些是成绩,有些是次数,因此需要将指标进行标准化,都变成一个百分比的形式,这样才差不多。现在假设四个指标,若有四个评价对象,那么标准化应该如下处理。
构造正向化矩阵
X=
[
x
1
x
2
x
3
x
4
y
1
y
2
y
3
y
4
⋮
⋮
⋮
⋮
z
1
z
2
z
3
z
4
]
\left[ \begin{matrix} x1&x2&x3&x4\\ y1&y2&y3&y4\\\vdots &\vdots&\vdots&\vdots\\ z1&z2&z3&z4 \end{matrix} \right]
⎣⎢⎢⎢⎡x1y1⋮z1x2y2⋮z2x3y3⋮z3x4y4⋮z4⎦⎥⎥⎥⎤
其中x1-z1是四名同学,x1-x4是四个指标的得分。
进行标准化
将上述矩阵通过该公式进行标准化,所得结果即为标准化矩阵。
计算得分时,可用公式
其中的Di+是欧氏距离,通过计算每个指标和最大最小值做差的平方作和再开根号得到z与最小值距离和z与最大值距离,之后套用上述公式即可得到评价的评分。
评分归一化
将上述套用公式后的得分进行整理,即每个人的每个指标都会对应一个评分,那么因此结果就是未进行归一化的得分。再通过归一化,得到归一化的得分。
不同指标的正向化
指标大致分为四大类,即极大型指标,极小型指标,中间型指标(数值越靠近某个值越好),区间型指标(数值越靠近某个区间越好)其中中间型和区间型转化为极大型的指标过程如下:
基础拓展
上述计算结果均是在每个指标所获得的权重相同的情况下进行的,因此不具有一致性,故可以考虑用层次分析法(最好还是别考虑了)来通过自己假设的方式定下每个指标的权重,那么新增加的权重矩阵如下:
其中wj就是每个指标的权重向量。
代码部分
等一段时间再写。