首页 > 其他分享 >Topsis评价法

Topsis评价法

时间:2024-10-11 19:48:54浏览次数:8  
标签:end Topsis min %% max vec 评价 正向

步骤:

第一步:统一指标类型

将所有的指标转化为极大型称为指标正向化(最常用).

第二步:标准化处理

为了消去不同指标量纲的影响,需要对已经正向化的矩阵进行标准化处理。

第三步找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。

Matlab代码

%% 区间型转极大型,传入参数为待正向化的向量,返回为正向化后的结果
function [res] = Int2Max(X, a, b)  
   M =  max(a - min(X), max(X) - b);
   for i = 1 : size(X)
       if(X(i) < a)
           X(i) = 1 - (a - X(i))/M;
       elseif (X(i) >= a && X(i) <= b)
           X(i) = 1;
       elseif (X(i) > b)
           X(i) = 1 - (X(i) - b)/M;
       end
   end
   res = X;
end
%% 中间型转极大型,传入参数为待正向化的向量,返回为正向化后的结果
function [res] = Mid2Max(X, best)
   M =  max(abs(X - best));
   res = 1 - abs(X - best)/M;
end
%% 极小型转极大型,传入参数为待正向化的向量,返回为正向化后的结果
function [res] = Min2Max(X)
   res = max(X) - X;
end
%% 画图
x = rand(100,1);
y = x .* log(x);
plot(x,y);
X=xlsread()%里面加文件名
%% 正向化
disp('***************正在进行正向化...***************');
vec = input('请输入要正向化的向量组,请以数组的形式输入,如[1 2 3]表示1,2,3列需要正向化,不需要正向化请输入-1\n') %注意输入函数这里是单引号
if (vec ~= -1)
    for i = 1 : size(vec,2)
        flag = input(['第' num2str(vec(i)) '列是哪类数据(【1】:极小型 【2】:中间型 【3】:区间型),请输入序号:\n']);
        if(flag == 1)%极小型
           X(:,vec(i)) = Min2Max(X(:,vec(i)));
        elseif (flag == 2) % 注意这里的else和if是连在一起的
            best = input('请输入中间型的最好值:\n');
            temp = X(:,vec(i));
            X(:,vec(i)) = Mid2Max(X(:,vec(i)), best);
        elseif (flag == 3)
            arr = input('请输入最佳区间,按照“[a,b]”的形式输入:\n');
            X(:,vec(i)) = Int2Max(X(:,vec(i)), arr(1), arr(2));
        end
    end
    disp('所有的数据均已完成正向化!')
end
%% 标准化
disp('***************正在进行标准化...***************');
[n,m] = size(X);
% 先检查有没有负数元素
isNeg = 0;
for i = 1 : n
    for j = 1 : m
        if(X(i,j) < 0)
            isNeg = 1;
            break;
        end
    end
end
if (isNeg == 0)
    squere_X = (X.*X);
    sum_X = sum(squere_X,1).^0.5; %按列求和,再开方
    stand_X = X./repmat(sum_X, n, 1);
else
    max_X = max(X,[],1); %按照列找出最大元素
    min_X = min(X,[],1); %按照列找出最小元素
    stand_X = X - repmat(min_X,n,1) ./ (repmat(max_X,n,1) - repmat(min_X,n,1));
end
disp('标准化完成!')
%%  (法1:用距离法打分)
disp("**********正在用距离法打分*************")
max_x = max(stand_X,[],1)%按列找最大值
min_x = min(stand_X,[],1)

(stand_X - repmat(min_x,n,1)) ./ (max_x-min_X)%repmat()拼接矩阵n行1列

%%  (法2:用优劣解打分)
disp("**************正在用优劣解打分******************")
tmp=one(m);
w_j=tmp(:,1)%默认权值为1
is_need_w=input("是否需要指定权值,需要输入1,否则输入0")
if(is_need_w==1)
    w_j = input("输入各指标权值:");
end
z_plus = repmat(max_x,n,1);
z_sub = repmat(min_x,n,1);
d_plus = sum(((stand_X-z_plus).^2) * w_j,2).^0.5;
d_sub = sum(((stand_X-z_sub).^2) * w_j,2).^0.5;
s=d_sub ./ (d_sub + d_plus)

%结果归一化
res_topsis = s ./ sum(s)

标签:end,Topsis,min,%%,max,vec,评价,正向
From: https://www.cnblogs.com/cxy1114blog/p/18459128

相关文章

  • 流域生态系统服务评价、水文水生态分析、碳收支、气候变化影响、制图等领域中的应用
    流域生态系统服务评价、水文水生态分析、碳收支、气候变化影响、制图等领域中的应用专题一、生态系统服务评价技术框架1.1生态系统服务概述1.2流域生态系统服务的分类与作用1.3生态系统服务评估方法专题二、AI大模型与生态系统服务评价2.1目前常用大模型介绍2.2......
  • AI+多技术融合在流域生态系统服务评价、水文水生态分析、碳收支、气候变化影响、制图
    流域生态系统服务在环境保护与资源管理中具有不可替代的重要性。随着全球气候变化和人类活动对自然环境的压力日益增大,流域生态系统的稳定性和健康状况面临严峻挑战。水资源短缺、洪水频发、水质污染、生物多样性减少等问题,正在威胁流域内及其下游区域的人类社会福祉。因此,对流......
  • 评价模型TOPSIS与熵权法MATLAB代码
    函数代码functiontopsis_example(data,data_types,up_OK,down_OK,upper_bounds,lower_bounds,middle)%数据预处理[num_objects,num_attributes]=size(data);normalized_data=zeros(num_objects,num_attributes);%1.根据数据类型进行正向化......
  • 基于django+vue+Vue的高校教师多维考核评价系统设计开发与实现【开题报告+程序+论文】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的快速发展,高校教师的工作内容与职责日益复杂多样,传统的单一维度评价体系已难以满足当前对高校教师全面、公正评价的需求。近......
  • SSM电子市场计算机配件报价系统7m4f0 购物评价
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,商家,商品信息,类型,反馈信息开题报告内容一、项目背景随着信息技术的迅猛发展,电子市场在计算机配件交易中的重要性日益凸显。然而,消费者在购买......
  • 淘宝商品评论API:商品评价中的用户晒单与图片分析
    淘宝商品评论API在商品评价中,对于用户晒单与图片分析扮演着重要角色。这些API接口允许开发者或商家访问并获取商品评价中的用户晒单图片,进而进行深入的分析和利用。以下是对淘宝商品评论API中用户晒单与图片分析的详细探讨:一、淘宝商品评论API概述淘宝作为全球最大的在线零售平台之......
  • 华汇数据项目后评价系统:提升项目管理效率与决策质量
     一、项目后评价系统的定义与功能    项目后评价系统是一种针对项目实施后进行综合评估的工具。其核心功能包括数据收集、数据分析、评估结果展示及反馈建议等。通过收集项目实施过程中的各类数据,如项目进度、成本、质量等,系统能够对这些数据进行深入分析,评估项目是否成功......
  • 华为 WATCH GT 5 评价
    华为WATCHGT5系列新品手表于9月24日发布,以下是对该系列手表的一些看法以及是否值得购买的分析:1.优势方面:    外观设计出色:        材质与工艺:采用全新的几何锋芒美学设计,46mm大表款配备蓝宝石玻璃表镜和航天级钛合金表体,坚固耐用且质感高级;42mm小白......
  • 科技成果评价全解析:评什么、谁来评、怎么评及价值何在
    科技成果评价是衡量科研成果质量和价值的重要手段,它对于推动科技创新、促进科技成果转化具有不可替代的作用。通过科学、公正、客观的评价,可以为政府决策提供依据,为企业创新指明方向,为科研人员提供激励。本文将全面解析科技成果评价评什么、科技成果评价怎么评、科技成果评价怎......
  • 高校高校教师教学质量评价系统 毕业设计-附源码88214
    摘要本研究旨在探讨基于SSM框架的高校教师教学质量评价系统的设计与实现。教师教学质量评价是高校教育质量保障的重要组成部分,而借助SSM框架的优势,可以快速构建一个全面、高效的评价系统,有助于提升教学质量管理水平。本系统将涵盖教师评价指标设定、评价数据管理、评价结......