Topsis计算得分并归一化的公式
时间: 2023-10-25 07:56:31 浏览: 279
Topsis(Technique for Order Preference by Similarity to Ideal Solution)是一种多属性决策分析方法,用于评估多个候选方案的综合得分。以下是Topsis计算得分并归一化的公式:
1. 首先,需要确定评价指标的正向或负向性。正向指标是越大越好,负向指标是越小越好。
2. 对于每个候选方案和每个评价指标,计算其与理想解和负理想解之间的距离。距离可以使用欧氏距离、曼哈顿距离等方法计算。
3. 计算每个候选方案到理想解的距离和到负理想解的距离之比。可以使用以下公式计算得分:
Score = Distance to Negative Ideal Solution / (Distance to Ideal Solution + Distance to Negative Ideal Solution)
4. 对得分进行归一化处理,将其转化为0到1之间的范围。可以使用以下公式进行归一化:
Normalized Score = (Score - Min Score) / (Max Score - Min Score)
其中,Min Score是所有候选方案得分的最小值,Max Score是所有候选方案得分的最大值。
请注意,以上是Topsis方法计算得分并归一化的一般步骤和公式,具体的实现可能会根据具体情况而有所调整。
相关问题
topsis中算出未归一化数值后归一化怎么弄
TOPSIS(Technique for Order of Preference by Similarity to Ideal Solution)方法中,归一化是将原始的未归一化数值转换到相同的比例范围,通常0到1之间,以便于比较。归一化步骤通常是这样的:
1. **极小化(Min-Max法)**[^4]:
- 对每个评价指标\( X_{ij} \),计算其与最小值\( x_{min} \)之间的差分,得到\( d_{min,i} = X_{ij} - x_{min,i} \)。
- 然后除以该指标的最大值与最小值之差,即\( \frac{d_{min,i}}{x_{max,i} - x_{min,i}} \)。结果介于0和1之间。
2. **最大化(Z-Score标准化)**[^4]:
- 计算每个评价指标\( X_{ij} \)的标准分数\( Z_i \),公式为\( Z_i = \frac{(X_{ij} - \mu_i)}{\sigma_i} \),其中\( \mu_i \)是指标i的平均值,\( \sigma_i \)是指标i的标准偏差。
3. **组合归一化**[^4]:
- 如果有多个评价指标,可能需要对这些归一化的得分再次进行加权求和或平均,得到最终的归一化决策矩阵。
注意:在实际应用中,确保处理好缺失值或异常值,因为它们可能影响归一化过程。一旦完成归一化,就可以按照TOPSIS算法剩余的步骤来计算优势评分和理想解以及接近度得分。
用嵌套for循环解topsis法 计算有两个属性六个方案的例题Matlab语言
假设有两个属性 A 和 B,六个方案 S1-S6,它们的属性值如下:
| | A | B |
|----|----|----|
| S1 | 3 | 7 |
| S2 | 4 | 6 |
| S3 | 9 | 4 |
| S4 | 2 | 8 |
| S5 | 8 | 3 |
| S6 | 5 | 5 |
步骤1:标准化矩阵
首先需要对矩阵进行标准化处理,使得每个属性的权重为1,即每个属性的平均值为1。标准化后的矩阵如下:
```matlab
A = [3 4 9 2 8 5];
B = [7 6 4 8 3 5];
% 计算归一化矩阵
A_norm = A ./ sqrt(sum(A.^2));
B_norm = B ./ sqrt(sum(B.^2));
% 计算加权归一化矩阵
w1 = 0.6;
w2 = 0.4;
A_w = A_norm * w1;
B_w = B_norm * w2;
% 组合成加权归一化矩阵
X = [A_w; B_w];
```
步骤2:计算正向和负向理想解
接下来需要计算正向和负向理想解,可以用下面的代码实现:
```matlab
% 计算正向理想解
max_A_w = max(A_w);
max_B_w = max(B_w);
ideal_pos = [max_A_w; max_B_w];
% 计算负向理想解
min_A_w = min(A_w);
min_B_w = min(B_w);
ideal_neg = [min_A_w; min_B_w];
```
步骤3:计算每个方案到正向理想解和负向理想解的距离
通过欧几里得距离计算每个方案到正向理想解和负向理想解的距离:
```matlab
% 计算每个方案到正向和负向理想解的距离
pos_dist = sqrt(sum((X - ideal_pos).^2));
neg_dist = sqrt(sum((X - ideal_neg).^2));
```
步骤4:计算综合得分
最后需要计算每个方案的综合得分,综合得分越高,说明该方案越优。综合得分的计算公式为:
$$score_i=\frac{neg\_dist_i}{pos\_dist_i+neg\_dist_i}$$
```matlab
% 计算综合得分
score = neg_dist ./ (pos_dist + neg_dist);
```
完整代码如下:
```matlab
% 假设有两个属性A和B,六个方案S1-S6
A = [3 4 9 2 8 5];
B = [7 6 4 8 3 5];
% 计算归一化矩阵
A_norm = A ./ sqrt(sum(A.^2));
B_norm = B ./ sqrt(sum(B.^2));
% 计算加权归一化矩阵
w1 = 0.6;
w2 = 0.4;
A_w = A_norm * w1;
B_w = B_norm * w2;
% 组合成加权归一化矩阵
X = [A_w; B_w];
% 计算正向理想解
max_A_w = max(A_w);
max_B_w = max(B_w);
ideal_pos = [max_A_w; max_B_w];
% 计算负向理想解
min_A_w = min(A_w);
min_B_w = min(B_w);
ideal_neg = [min_A_w; min_B_w];
% 计算每个方案到正向和负向理想解的距离
pos_dist = sqrt(sum((X - ideal_pos).^2));
neg_dist = sqrt(sum((X - ideal_neg).^2));
% 计算综合得分
score = neg_dist ./ (pos_dist + neg_dist);
```
阅读全文