目录

1.简介

2.算法原理

2.1 指标正向化

2.2 数据标准化

2.3 计算主观权重

2.4 计算客观权重

2.5 计算组合权重

2.6 计算的得分

3.实例分析

3.1 读取数据

3.2 指标正向化

3.3 数据范围标准化

3.4 计算主观权重

3.5 计算客观权重

3.6 计算组合权重

3.7 计算得分

完整代码


1.简介

主观赋权法(AHP)在根据决策者意图确定权重方面比客观赋权法(熵权法)具有更大的优势,但客观性相对较差,主观性相对较强;

而采用客观赋权法有着客观优势,但不能反映出参与决策者对不同指标重视程度,并且会有一定的权重和与实际指标相反的程度。

针对主客观赋权方法的优缺点,我们还力求将主观随机性控制在一定范围内,实现主客观赋权中的中正。客观方面。指标赋权公正,实现了主客观内在统一,评价结果真实、科学、可信。

因此,在对指标进行权重分配时,应考虑指标数据之间的内在统计规律和权威值。给出了合理的决策指标赋权方法,即采用主观赋权法(AHP)和客观赋权法(熵权法)相结合的组合赋权方法,以弥补单一赋权带来的不足。将两种赋权方法相结合的加权方法称为组合赋权法。

注意:本文所介绍的组合权重法请大家结合实际情况慎重使用,因为这个方法不太好

2.算法原理

2.1 指标正向化

这个步骤视情况自己决定把。。。。

不同的指标代表含义不一样,有的指标越大越好,称为越大越优型指标。有的指标越小越好,称为越小越优型指标,而有些指标在某个点是最好的,称为某点最优型指标。为方便评价,应把所有指标转化成越大越优型指标。

设有m个待评对象,n个评价指标,可以构成数据矩阵

设数据矩阵内元素,经过指标正向化处理过后的元素为  (Xij)'

  • 越小越优型指标:C,D属于此类指标

其他处理方法也可,只要指标性质不变即可

  • 某点最优型指标:E属于此类指标

设最优点为a, 当a=90时E最优。

其他处理方法也可,只要指标性质不变即可

  • 越大越优型指标:其余所有指标属于此类指标

此类指标可以不用处理,想要处理也可,只要指标性质不变

2.2 数据标准化

因为每个指标的数量级不一样,需要把它们化到同一个范围内再比较。标准化的方法比较多,这里仅用最大最小值标准化方法。

设标准化后的数据矩阵元素为rij,由上可得指标正向化后数据矩阵元素为 (Xij)'

2.3 计算主观权重

  • 得到最大特征值对应特征向量

  • 得到权重向量

2.4 计算客观权重

  • 计算信息熵

  • 得到权重

2.5 计算组合权重

主客观组合权重是:指标的综合权数 Wj :

αj​——层次分析法计算所得的权重
βj ​——熵值法计算所得权重

层次分析法
熵值法

2.6 计算的得分

3.实例分析

3.1 读取数据

data=xlsread('D:\桌面\zuhefuquan.xlsx')

返回:

3.2 指标正向化

本实例中P1、P3属于此类指标

因此负向指标正向化

data1=data;
%%越小越优型处理
index=[1,3];%越小越优指标位置
for i=1:length(index)data1(:,index(i))=max(data(:,index(i)))-data(:,index(i));
end
data1

返回:

在对剩余正向指标数据可以不做处理

3.3 数据范围标准化

为什么不做0,1的标准化呢,因为一标准化有不少数据变成了0,对结果起到副作用

data1=mapminmax(data1',0.02,1) %标准化到0.002-1区间

返回:

3.4 计算主观权重

%求特征值特征向量,找到最大特征值对应的特征向量
[V,D]=eig(data1);
tzz=max(max(D));     %找到最大的特征值
c1=find(D(1,:)==tzz);%找到最大的特征值位置
tzx=V(:,c1) %最大特征值对应的特征向量
%赋权重
[n,m]=size(data); %查看数据行数和列数
quan=zeros(n,1);
for i=1:n
quan(i,1)=tzx(i,1)/sum(tzx);
end
a=quan'

返回:

3.5 计算客观权重

data3 = data1;
%得到信息熵
[m,n]=size(data3);
p=zeros(m,n);
for j=1:np(:,j)=data3(:,j)/sum(data3(:,j));
end
for j=1:nE(j)=-1/log(m)*sum(p(:,j).*log(p(:,j)));
end
%计算权重
b=(1-E)/sum(1-E)

返回:

3.6 计算组合权重

w=b;
sum = 0;
for i=1:n
sum=sum+sqrt(a(i)*b(i));
end
for i=1:n
w(i)=sqrt(a(i)*b(i))/sum;
end
w

返回:

3.7 计算得分

%计算得分
s=data1*w';
Score=100*s/max(s);
for i=1:length(Score)fprintf('方案%d百分制评分为:%4.2f\n',i,Score(i));
end

返回:

完整代码

%组合赋权法
clc;clear;
data=xlsread('D:\桌面\zuhefuquan.xlsx');
data1=data;
%%越小越优型处理
index=[1,3];%第一三个指标为负向指标,
for i=1:length(index)data1(:,index(i))=max(data(:,index(i)))-data(:,index(i));
end
data1;
data1=mapminmax(data1',0.02,1); %标准化到0.002-1区间data2 = data1;
%求特征值特征向量,找到最大特征值对应的特征向量
[V,D]=eig(data2);
tzz=max(max(D));     %找到最大的特征值
c1=find(D(1,:)==tzz);%找到最大的特征值位置
tzx=V(:,c1); %最大特征值对应的特征向量
%赋权重
[n,m]=size(data); %查看数据行数和列数
quan=zeros(n,1);
for i=1:n
quan(i,1)=tzx(i,1)/sum(tzx);
end
a=quan';data3 = data1;
%得到信息熵
[m,n]=size(data3);
p=zeros(m,n);
for j=1:np(:,j)=data3(:,j)/sum(data3(:,j));
end
for j=1:nE(j)=-1/log(m)*sum(p(:,j).*log(p(:,j)));
end
%计算权重
b=(1-E)/sum(1-E);
w=b;
sum = 0;
for i=1:n
sum=sum+sqrt(a(i)*b(i));
end
for i=1:n
w(i)=sqrt(a(i)*b(i))/sum;
end
w;
%计算得分
s=data1*w';
Score=100*s/max(s);
for i=1:length(Score)fprintf('方案%d百分制评分为:%4.2f\n',i,Score(i));
end

组合赋权法之matlab相关推荐

  1. 从零开始的数模(十九)组合赋权法

    目录 一.概念 1.1相关概念 1.2原理 二.基于python的组合赋权法 2.1 读取数据 完整代码 三.基于MATLAB的组合赋权法 完整代码 一.概念 1.1相关概念 主观赋权法(AHP)在根 ...

  2. 组合赋权法之python

    目录 1.简介 2.算法原理 2.1 指标正向化 2.2 数据标准化 2.3 计算主观权重 2.4 计算客观权重 2.5 计算组合权重 2.6 计算的得分 3.实例分析 3.1 读取数据 3.2 指标 ...

  3. matlab 赋权法,基于MATLAB的非线性曲线拟合赋权法

    成都航空职业技术学院学报 Journal of Chengdu Aeronautic Polytechnic 2018 年 12 月第 4 期(总第 117 期) Vol.34 No.4(Serial ...

  4. 基于层次分析法与熵权法的主客观组合赋权模型(原创:小青龙)

    基于层次分析法与熵权法的主客观组合赋权模型 组合赋权大家可以尝试进行改变,一个主观一个客观.(原创:小青龙) 简介 ​ 权重是用来衡量总体中各单位标志值在总体中作用大小的数值, 用来描述单因子在因子集 ...

  5. LL1分析构造法_数学建模算法--最优赋权法(含代码)

    数学建模算法--最优赋权法(含代码) 作者:郑铿城 本次介绍数学建模和科研写作的方法--最优赋权法最优赋权法经常用于分析评价类问题,从该算法的名称就可以看到,该算法首先要体现"最优" ...

  6. 权重设计:客观赋权法的说明(熵权法/变异系数法/CRCIII法/TOPSIS法)

    在数据分析中,我们经常会遇到多个特征对于结果造成不同影响的情况,如何识别这些特征各自的权重,对我们的后续结果评估,打分矩阵构建都具有重要意义.我们所说的赋权法是用于解决多指标综合评价问题中的各指标权重 ...

  7. 坎蒂雷赋权法 matlab,综合评价系统中客观赋权方法.doc

    综合评价系统中客观赋权方法 综合评价系统中客观赋权方法 提要客观赋权方法是从原始数据出发,从样本中提取信息,相较于主观赋权方法得到的权数的偏差更小一些,更能反映众多评价指标真实的重要程度.本文通过比较 ...

  8. 基于AHP与CRITIC的组合赋权方法

    1.程序名称 基于AHP与CRITIC的组合赋权方法 2.程序功能(对象) 适用于对两个及以上的对象进行综合评估: 主观赋权法:AHP(输入专家对指标排序及相邻指标相对重要程度) 客观赋权法:CRIT ...

  9. 客观赋权法的python实现

    这两天实现了一些客观赋权法,这里做一个整理.在进行赋权前,先导入数据(列:各维属性:行:各样本),并自行进行去空值.归一化等操作. import pandas as pd import numpy a ...

最新文章

  1. 告诉我们您对 Office 2010 的看法
  2. 2Python全栈之路系列之基于socket实现聊天机器人
  3. 年薪50W+!懂这个的程序员就这么豪横!
  4. Oracle树形结构查询之prior的理解
  5. POJ2653 Pick-up sticks
  6. winrar解压器_与WinRAR齐名的经典解压缩软件——WinZip,不仅仅是情怀
  7. html chm如何打开方式,解答chm文件如何打开
  8. 手持式信号综合分析仪 天馈+频谱多功能测试
  9. 代码原理 webkit WebKit-利用百度siteapp开发网站App-(IOS和Android版本)
  10. PMP-我是如何两周拿下5A的
  11. Hifn容量优化卡成功支持Bull公司备份方案
  12. 新站如何使用好百度站长平台工具
  13. nmap命令检查在线IP与在线IP的开放端口情况
  14. windows 介绍
  15. JAVA面试题(转自https://blog.csdn.net/weixin_38399962/article/details/80358168)
  16. iOS开发者账号Agent更换
  17. 深入理解立即数与直接寻址
  18. python元组_Python 元组和分片
  19. android 文字滚动组件,Android textview 跑马灯文字滚动效果
  20. 海量数据处理常用思路和方法

热门文章

  1. 手机优酷怎么删除自己发的弹幕
  2. 方法区元空间实现之jdk7和8字符串常量池、运行时常量池、静态变量到底在哪?
  3. Navicat Premium 12连接SQLServer[ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序
  4. Java EE 企业网站_基于jsp的企业网站系统-JavaEE实现企业网站系统 - java项目源码...
  5. 二年级计算机认识键盘教案,关于《认识键盘》的教学反思
  6. linux能记录日志的终端,Linux上的日志系统
  7. go 修改结构体方法_Go36-13-结构体及其方法
  8. kali2.0安装mysql,Ubuntu/kali上安装MySQL,设置远程访问详细教程
  9. 发生在“注解”@的那些事儿
  10. java编译器代码检查_Java编译器可以优化此代码吗?