数学建模-Topsis

本文最后更新于 2024年12月12日 晚上

TOPSIS优劣解距离法

正向化处理

将所有指标转换为极大型:转换公式\(max-x\)

标准化处理

目的:消除量纲影响 \(z_{ij}=\frac{x_{ij} }{\sqrt{ {\sum^n_{i=1}x_{ij}^2} } }\) 进行距离法打分,评分:\(\frac{x-\text{min} }{\text{max} -\text{min} }\),然后归一化

用优劣解打分

\[ Z=\begin{vmatrix}z_{11}&z_{12}&\dots&z_{1m}\\z_{21}&z_{22}&\dots&z_{2m}\\\vdots&\vdots&\ddots&\vdots\\z_{n1}&z_{n2}&\dots&z_{nm}\end{vmatrix}(n个评价对象,m个评价指标) \]

在每个指标里挑出最大值和最小值,构成最大向量\(Z^+\)和最小向量\(Z^-\)

\(Z^+=(Z_1^+,Z_2^+,\dots,Z^+_m)=(\max\{ z_{11},z_{21},\dots z_{n1} \},\dots)\)

\(Z^-=(Z_1^-,Z_2^-,\dots,Z^-_m)=(\min\{ z_{11},z_{21},\dots z_{n1} \},\dots)\)

对于第i个对象,计算它每个指标相对最大值的距离\(D^+=\sqrt{ \sum^m_{j=1}(Z_j^+-z_{ij})^2w_j },i=1,2,\dots,n\)

得分:\(S_i=\frac{D_i^-}{D_i^++D_i^-}\)(还没有归一化)

评价类模型分类

  • 主观赋值法
    • 层次分析法
    • 模糊综合评价
  • 客观赋值法
    • TOPSIS
    • 主成分分析法
    • 灰色综合评价
    • 聚类分析法
    • 神经网络评价法

MATLAB代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
%% TOPSIS优劣解-应用
%% 读取表格
opts = detectImportOptions('univ_data.xlsx');
opts.VariableTypes = {'double', 'double', 'double', 'double', 'double'};
opts.PreserveVariableNames = true;
data = readtable('univ_data.xlsx', opts);
data = data(:, 2:end);
data = table2array(data);

%% 正向化
%% 人均论文发表数量介于2~4最好
data(:,1) = int2max(data(:,1), 2, 4);

%% 师生比接近0.7越好
data(:, 2) = mid2max(data(:, 2), 0.7);

%% 科研经费越多越好
data(:, 3) = data(:, 3);

%% 逾期毕业率越小越好
data(:, 4) = min2max(data(:, 4));

%% 标准化
[n,m] = size(data);
s = repmat(sum(data,1), n, 1);
data = data ./ s;

%% 优劣解打分
% 由熵权法计算得到的权值w
w = [0.2241;0.2566;0.1891;0.3302];
Z_max = repmat(max(data), n, 1);
Z_min = repmat(min(data), n, 1);
D_max = sum(((data - Z_max) .^ 2) * w, 2).^0.5;
D_min = sum(((data - Z_min) .^ 2) * w, 2).^0.5;


S = D_min ./ (D_max + D_min);

res = S./sum(S)

数学建模-Topsis
https://meteor041.git.io/2024/11/28/数学建模-Topsis/
作者
meteor041
发布于
2024年11月28日
许可协议