一文速学-熵权法实战确定评价指标权重

简介: 一文速学-熵权法实战确定评价指标权重

前言


博主参与八次数学建模大赛,其实数学建模和大数据分析有很多相似之处,可以说差不多是共通的。经历了这么多次比赛个人总结一些建模必备的数据分析方法是必须要完全掌握。本篇博客的愿景是希望我或者读者通过阅读这篇博客能够学会熵权法方法并能实际运用,而且能够记录到你的思想之中。当然个人不是数学专业对一些专业性的知识可能不是很了解,希望读者看完能够提出错误或者看法,博主会长期维护博客做及时更新。纯分享,希望大家喜欢。


一、熵权法介绍



在确定各项评价指标权重的算法中,熵权法在很多评价法作为计算指标权重的一只核心基础算法,如秩和比综合评价法RSR或是优劣解距离法TOPSIS。易于理解的话来讲,熵权法就是看该指标数据是否相对集中或是相对离散,要是基本上都差不多的数据,那么这些数据熵就很小,比较集中。说明在这个指标上面体现不出样本的差异性,导致这个指标并不是那么重要。所以该指标权重就小,相反数据差距很大,权重就大。


熵值法根据信息熵的定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大, 该指标对综合评价的影响(即权重)就越大,如果某项指标的值全部相等,则该指标在综合评价中不起作用。因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。


二、使用步骤


1.数据预处理


拿到第一手数据后肯定不能直接使用的,需要进行数据预处理才能更好建模。

想对数据预处理方法了解更清楚的可以去看这篇:数据预处理归一化详细解释

这里我们使用数据处理方法之一的min-max标准化:

gif.gif


对于指标来说,一般分有正向指标和负向指标之分:

正向指标:指标值越大评价越好的指标,如脱单率,脱贫率。

ce5b47c9ea6e45d4a032f0ad99bde6b1.png


负向指标:指标值越大评价越差的指标,如死亡率,失业率。


16498b71981e4d51b1680b9a9006e4ab.png


2.计算指标信息熵


(1)计算第j项指标下第i个样本值占比重:


1db0d179a90c46b1a02ae952640f0a3a.png


(2) 计算各指标的信息熵:


41be58b8c0374d85915dfe47179e6af2.png

第j项指标的数据差异越大,熵值越小;反之,熵值越大。

(3)计算信息效用值d


ffb7f11438704901888b3b75056e63bd.png


(4)计算j指标权重

1d229b1318ee4db4ac86eb9aff039f46.png

3.相关代码

import numpy as np
import pandas as pd
data = pd.read_csv(r"C:\Users\指标.csv",sep=',')
data.info()
data
#标准化数据
data_test1=data.iloc[:,1:5] 
data_test1
data_test2 = (data_test1 - data_test1.min())/(data_test1.max() -data_test1.min())
data_test2
m,n=data_test2.shape
#将dataframe格式转化为matrix格式
data_test3=data_test2.values
data_test3
k=1/np.log(m)
yij=data.sum(axis=0)
pij=data/yij
#第二步,计算pij
test=pij*np.log(pij)
test=np.nan_to_num(test)
#计算每种指标的信息熵
ej=-k*(test.sum(axis=0))
#计算每种指标的权重
wi=(1-ej)/np.sum(1-ej)


三、实例运用


这里我们选择27个公司的数据开发投资数据:

49ac1f72c9704b329e73124fac4677a6.png

04af70ffeab046ea953ae86a55ef18d5.png

熵权法实战代码,根据港口研发投入数据进行熵值法确定权重。


四、总结


优点


  • 能深刻反映出指标的区分能力,进而确定权重
  • 是一种客观赋权法,相对主管赋权具有较高的可信度和精确度
  • 算法简单


缺点


  • 不够智能,没有考虑指标与指标之间的影响,如:相关性、层级关系等
  • 若无业务经验指导,权重可能失真
  • 对样本的依赖性较大,随着建模样本不断变化,权重会发生一定波动


适用范围


当业务经验不会使得权重发生失真,则比较适用于熵权法;反之,若经常发生权重失真的情况,则需要结合专家打分或评判才能较好的发挥熵权法的优势。同时,确定权重前需要确定指标对目标得分的影响方向,对非线性的指标要进行预处理或者剔除。

目录
相关文章
|
机器学习/深度学习 数据挖掘
R实战|从文献入手谈谈logistic回归、Cox回归以及Lasso分析(一)
R实战|从文献入手谈谈logistic回归、Cox回归以及Lasso分析(一)
732 0
|
7月前
|
定位技术
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-3
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
7月前
|
机器学习/深度学习 缓存 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-2
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
7月前
|
机器学习/深度学习 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-1
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
7月前
|
机器学习/深度学习
R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数
R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数
|
7月前
|
算法 vr&ar Python
R语言用极大似然和梯度下降算法估计GARCH(p)过程
R语言用极大似然和梯度下降算法估计GARCH(p)过程
|
7月前
|
算法 C++ Python
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
|
机器学习/深度学习 算法 Python
机器学习 - 决策树中,信息增益、信息增益率计算以及最佳特征挑选的Python实现
本文介绍决策树中,信息增益、信息增益率计算以及最佳特征挑选的Python实现
519 0
|
机器学习/深度学习 人工智能 算法
回归算法|学习笔记
快速学习回归算法
169 0
回归算法|学习笔记
|
机器学习/深度学习 算法 开发者
回归模型参数估计-5| 学习笔记
快速学习回归模型参数估计-5。
回归模型参数估计-5| 学习笔记