matlab—熵权法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab—熵权法相关的知识,希望对你有一定的参考价值。

参考技术A %输入

x=[

3.69 3.71 3.65 3.87

3.71 4.07 3.87 4.42

4.30 3.75 3.63 4.43

4.08 3.78 3.65 4.49

3.93 3.87 4.37 4.47

4.18 3.96 3.72 4.46

];

% 函数shang.m, 实现用熵值法求各指标(列)的权重及各数据行的得分

% x为原始数据矩阵, 一行代表一个组, 每列对应一个成分指标

% s返回各行得分, w返回各列权重

[n,m]=size(x); % n=响应面/实验组数, m=成分指标

%% 数据的归一化处理

[X,ps]=mapminmax(x',0,1);

ps.ymin=0.002; % 归一化后的最小值

ps.ymax=0.996; % 归一化后的最大值

ps.yrange=ps.ymax-ps.ymin; % 归一化后的极差,若不调整该值, 则逆运算会出错

X=mapminmax(x',ps);

% mapminmax('reverse',xx,ps); % 反归一化, 回到原数据

X=X';  % X为归一化后的数据

%% 计算第j个指标下,第i个记录占该指标的比重p(i,j)

for i=1:n

    for j=1:m

        p(i,j)=X(i,j)/sum(X(:,j));

    end

end

%% 计算第j个指标的熵值e(j)

k=1/log(n);

for j=1:m

    e(j)=-k*sum(p(:,j).*log(p(:,j)));

end

d=ones(1,m)-e;  % 计算信息熵冗余度

w=d./sum(d)    % 求权值w

y(:,1)=x(:,1)*w(1)+x(:,2)*w(2);%输出

y

以上是关于matlab—熵权法的主要内容,如果未能解决你的问题,请参考以下文章

熵权法求权重原理详细步骤附matlab代码

数学建模MATLAB应用实战系列(九十一)-熵权法应用案例(附MATLAB和Python代码)

数学建模之熵权法(EWM)matlab实例实现

数学建模暑期集训8:熵权法

学习随笔 --python实现熵权法

吴裕雄 python 熵权法确定特征权重