数学建模:熵权法

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛

熵权法

  1. 构建原始矩阵 D a t a Data Data 形状为 m ∗ n m *n m∗n ,其中 m m m 为评价对象, n n n 为评价指标。
  2. 对 D a t a Data Data矩阵的指标进行正向化处理 ,得到矩阵 X X X.
  3. 计算每一个指标在每一个对象下的所占该指标的比重,然后我们便得到了变异值矩阵: P P P

p i j = Y y ¨ ∑ i = 1 m Y i j , i = 1 , ⋯   , m , j = 1 , ⋯   , n \begin{aligned}p_{ij}=\frac{Y_{\ddot{y}}}{\sum_{i=1}^m Y_{ij}},i=1,\cdots,m,j=1,\cdots,n\end{aligned} pij=∑i=1mYijYy¨,i=1,⋯,m,j=1,⋯,n

  1. 求各指标的信息熵 E E E:

E j = − ln ⁡ ( m ) − 1 ∑ i = 1 m p i j ln ⁡ p i j E_j=-\ln(m)^{-1}\sum_{i=1}^mp_{ij}\ln p_{ij} Ej=−ln(m)−1i=1∑mpijlnpij

  1. 通过信息熵计算各个指标的权重 W W W :其中 k k k 是指标的个数,即 k = n k = n k=n

w j = 1 − E j k − Σ E j ( j = 1 , 2 , ... , n ) w_j=\dfrac{1-E_j}{k-\Sigma E_j}(j=1,2,\ldots,n) wj=k−ΣEj1−Ej(j=1,2,...,n)

  1. 也可以通过计算信息冗余度来计算权重 W W W(本代码采取这种方法):

D j = 1 − E j w j = D j ∑ j = 1 m D j \begin{aligned}D_j&=1-E_j\\\\w_j&=\frac{D_j}{\sum_{j=1}^mD_j}\end{aligned} Djwj=1−Ej=∑j=1mDjDj

  1. 计算每一个对象的最终得分

Z i = ∑ j = 1 n X i j W j , i ∈ ( 1 , 2 , 3 , . . . m ) Z_{i}\mathrm{=}\sum_{j=1}^{n}X_{ij}W_{j},i\in(1,2,3, ... m) Zi=j=1∑nXijWj,i∈(1,2,3,...m)

代码实现

matlab 复制代码
function [Score,W]=mfunc_entropyMethod(data)
    % 熵权法:求解每个指标的权重
    % paramts: 
    %      data: 原始数据矩阵,(m,n) m为评价对象,n为评价指标
    % returns:
    %      Score:每个评价对象的综合得分
    %      W: 所有指标的权重

    %数据标准化到0.002-1区间
    data2=mapminmax(data',0.002,1);
    data2=data2';
    %得到信息熵
    [m,n]=size(data2); % m个对象,n个指标
    p=zeros(m,n);
    for j=1:n
        % 计算第j列的每一列指标在该指标中所占的比例
        p(:,j)=data2(:,j)/sum(data2(:,j));
    end 
    for j=1:n
       % 计算每个指标的信息熵
       E(j)=-1/log(m)*sum(p(:,j).*log(p(:,j)));
    end
    %计算权重
    W=(1-E)/sum(1-E); % 通过信息冗余度计算
    %计算得分
    s=data2*W';
    Score=100*s/max(s); 
end

相关推荐
疯狂小猫咪2 小时前
排课算法初探:教培场景下的资源约束问题如何解
数学建模
kyle~15 小时前
滤波---指数移动平均法(Exponential Moving Average, EMA)
数学建模·信号处理
民乐团扒谱机2 天前
【微科普】压缩感知(CS):违反了奈奎斯特采样定理?不先采集也能还原信号?大白话讲透稀疏采样、L1重建与OMP,一文吃透附代码
python·神经网络·线性代数·算法·数学建模·压缩感知·奈奎斯特
88号技师2 天前
2026年SCI-分数牛顿衍生优化算法Fractional Newton-derived optimizer-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
majorArcs5 天前
数学建模第一课:从鸡兔同笼问题谈数学建模的基本流程
数学建模
数模竞赛Paid answer5 天前
2025年中青杯数学建模A题康养城市建设求解全过程论文及程序
算法·数学建模·数据分析·中青杯
数模竞赛Paid answer8 天前
2026年中青杯数学建模C题情绪维度耦合约束的脑电信号情绪识别求解全过程论文及程序
数学建模·数据分析·中青杯
民乐团扒谱机9 天前
【微实验】组合优化matlab实战(马科维茨投资模型):在收益与风险之间,寻找最优的人生配比
大数据·人工智能·算法·机器学习·数学建模·matlab·组合优化
数模竞赛Paid answer10 天前
2026年中青杯数学建模A题数学建模论文智能评估系统与多智能体优化方法求解全过程论文及程序
算法·数学建模·中青杯
数模竞赛Paid answer10 天前
2026年电工杯数学建模B题嵌入式社区养老服务站的建设与优化问题求解全过程论文及程序
数学建模·数据分析·电工杯