Matlab计算熵权法
如需轉(zhuǎn)載,請(qǐng)注明來源,謝謝合作。
若本文對(duì)您有一點(diǎn)點(diǎn)的幫助,歡迎點(diǎn)贊、評(píng)論和關(guān)注。您的鼓勵(lì)和支持是我繼續(xù)學(xué)習(xí)和分享的動(dòng)力。
**熵權(quán)法是一種根據(jù)包含各個(gè)變量的變異程度進(jìn)行賦權(quán)的方法,是一種客觀賦權(quán)法。**而直接給定變量權(quán)重或者專家打分給出權(quán)重則屬于主觀賦權(quán)法。熵權(quán)法的思想是:變量數(shù)值變化越大,變異程度越大,則其權(quán)重應(yīng)該更大;反之權(quán)重則越小。這是較為合理的。
熵權(quán)法計(jì)算過程不難,運(yùn)用excel也可計(jì)算。但其本身較為繁雜,需要做多個(gè)變量甚至多個(gè)個(gè)體時(shí),matlab就顯示了矩陣運(yùn)算快速、準(zhǔn)確和方便的特點(diǎn)。作者也提供了利用excel和matlab計(jì)算的對(duì)比案例數(shù)據(jù),供大家參考、理解和交流。
鏈接:https://pan.baidu.com/s/1WZTX_zkmsbY274cF_Uz7GA 密碼:ukg7。已共享鏈接和密碼,不用再留郵箱了。
熵權(quán)法的計(jì)算公式:
熵權(quán)法matlab程序:
%{選擇下面一行,F9運(yùn)行。新建空矩陣R,將51年*6個(gè)變量(x1到x6)的數(shù)據(jù)粘貼入矩陣R R=[] %}clear %1 [rows,cols]=size(R); % 輸入矩陣的大小,rows為對(duì)象個(gè)數(shù),cols為指標(biāo)個(gè)數(shù) k=1/log(rows); % 求k Rmin = min(R); Rmax = max(R); A = max(R) - min(R); y = R - repmat(Rmin,51,1); %y(i,j) = (R - repmat(Rmin,51,1))/(repmat(A,51,1)); for j = 1 : size(y,2)y(:,j) = y(:,j)/A(j) end %2 求Y(i,j) S = sum(y,1) Y = zeros(rows,cols); for i = 1 : size(Y,2)Y(:,i) = y(:,i)/S(i) end %3 lnYij=zeros(rows,cols); % 初始化lnYij % 計(jì)算lnYij for i=1:rowsfor j=1:colsif Y(i,j)==0lnYij(i,j)=0;elselnYij(i,j)=log(Y(i,j));endend end ej=-k*(sum(Y.*lnYij,1)); % 計(jì)算熵值Hj %4 weights=(1-ej)/(cols-sum(ej)); %5 F = zeros(rows,cols); for k = 1 : size(R,2)F(:,k) = weights(k)*y(:,k) end format long F = sum(F,2) %F即為對(duì)6個(gè)變量進(jìn)行熵權(quán)法客觀賦權(quán)后,計(jì)算獲得的51年來的綜合評(píng)分對(duì)比提供的excel后發(fā)現(xiàn),matlab極為快速、準(zhǔn)確、方便對(duì)繁雜的熵權(quán)法進(jìn)行了運(yùn)算。
總結(jié)
以上是生活随笔為你收集整理的Matlab计算熵权法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAPL可以读写的几种文件
- 下一篇: CAPL编程概述