做网站page,厦门小微企业网站建设补贴,厦门广告公司排行榜,杭州网站 建设熵权法 一种计算评价指标之间权重的方法。熵权法是一种客观的方法#xff0c;没有主观性#xff0c;比较可靠。 具体定义 熵权法的核心在于计算信息熵#xff0c;信息熵反映了一个信息的紊乱程度#xff0c;体现了信息的可靠性 具体步骤
Step1正向化处理 将所以评价指标转…熵权法 一种计算评价指标之间权重的方法。熵权法是一种客观的方法没有主观性比较可靠。 具体定义 熵权法的核心在于计算信息熵信息熵反映了一个信息的紊乱程度体现了信息的可靠性 具体步骤
Step1正向化处理 将所以评价指标转换为极大型目的是将数据进一步转变为概率 将极小型转换为极大型 极小型是指评价指标越小越好 代码如下注意矩阵X可以是列向量
function[res]Min2Max(X)resmax(X)-X;
end将中间型转换为极大型 中间型是指评价指标越接近最佳值越好其中最佳值是给出的 代码如下
function[res]Mid2Max(X,best)Mmax(abs(X-best));res1-abs(X-best)/M;
end将区间型转换为极大型 区间型是指评价指标在区间内最好在区间外欠佳 代码如下
function[res]interval2Max(X,a,b)Mmax(a-min(X),max(X)-b);for i1:size(X)if X(i)aX(i)bX(i)1;elseif X(i)aX(i)1-(a-X(i))/M;elseX(i)1-(X(i)-b)/M;endendresX;
endStep2标准化 标准化是将每一列的每一个元素除以每一列的元素平方的求和 标准化的意义消除计量单位不同造成的影响 概率矩阵 如果说正向化使每个数据是是不是好事的程度这时候归一化就可以得到好事放生的概率 Step3利用信息熵计算权重集 注意信息熵的计算公式里有对数所以应该适当修改概率矩阵值为0的项 这个公式本质上也是对每一列中所有元素按照公式求和最后除以ln n归一化处理 主体代码
%% 读取数据
Xxlsread(blind date.xlsx);
disp(成功读取)
%% 正向化
disp(现在进行正向化操作请按照提示操作)
vec_colinput(请输入需要正向化的列数以数组的形式输入\n);
for i1:size(vec_col,2)%1是行数2是列数
flag input([第 num2str(vec_col(i)) 列是哪类数据(【1】:极小型 【2】中间型 【3】区间型)请输入序号\n]);if flag1X(:,vec_col(i))Min2Max(X(:,vec_col(i)));elseif flag2bestinput(请你传入最佳值\n);X(:,vec_col(i))Mid2Max(X(:,vec_col(i)),best);elsearrinput(请你输入区间的左右端点以数组的形式\n);X(:,vec_col(i))Interval2Max(X(:,vec_col(i)),arr(1),arr(2));end
end
disp(正向化完成);%% 标准化
[n,m]size(X);
Square_XX.*X;
Sum_Xsum(Square_X).^0.5;
Stand_XX./repmat(Sum_X,n,1);
disp(标准化完成)
%% 概率矩阵P
PStand_X./repmat(sum(Stand_X),n,1);
for i1:nfor j1:mif P(i,j)0P(i,j)0.000001endend
end
Hsum(-P.*log(P));
eH./log(n);
d1-e;
dd./sum(d);
disp(计算完成,下面是正向矩阵、标准矩阵和计算得出的权重矩阵);
disp(X);
disp(Stand_X);
disp(d);