函数功能

熵值法计算各项目综合得分

函数调用

The_Entropy_method.get_weights(data, name_list=None)

输入参数

data:二维数组,指标数据
name_list:指标正负向,1-代表正向,0-代表负向,默认是None,全为正向。

输出

ws:所有指标权重,一维数组
score:所有项目综合得分,一维数组
index:所有项目的名次,一维数组

代码实现

import pandas as pd
from sklearn.preprocessing import MinMaxScaler
import numpy as np# 数据标准化
def get_stand(data, name_list):scaler = MinMaxScaler()if name_list == None:x_sta = scaler.fit_transform(data) + 1e-10else:index_1 = [i for i, w in enumerate(name_list) if w == 1]# print(index_1)index_0 = [i for i, w in enumerate(name_list) if w == 0]# print(index_0)x_1 = data[:, index_1]x_sta1 = scaler.fit_transform(x_1) + 1e-10g = data[:, index_0]x_sta2 = (g.max(axis=0) - g) / (g.max(axis=0) - g.min(axis=0)) + 1e-10x_sta = np.hstack((x_sta1, x_sta2))return x_stadef get_weights(data, name_list=None):"""输入数据data,标准化后采用熵值法计算权重,综合得分以及排序位置"""data = np.array(data)x_sta = get_stand(data, name_list)# 计算指标值占比w = x_sta/sum(x_sta)# 计算熵值k = 1/np.log(x_sta.shape[0])e = -k*(w*np.log(w)).sum(axis=0)print(e)d = 1 - ews = d/sum(d)print(ws)score = np.matmul(np.array(data), ws)print(score)index = sorted(score, reverse=True)print(index)# 输出名次结果sor = [index.index(score[l]) + 1 for l in range(len(index))]print(sor)results = {}results['weights'] = str(list(ws))results['score'] = str(list(score))results['pos'] = str(sor)print(results)return str(results)if __name__ == '__main__':data = pd.read_excel('./data/1234.xlsx', header=None)df = np.array(data)# print(df)get_weights(df)

Python实现熵值法相关推荐

  1. df满足条件的值修改_如何用python实现熵值法求指标权重(实例)

    权重是指某一因素或指标相对于某一事物的重要程度,其不同于一般的比重,体现的不仅仅是某一因素或指标所占的百分比,强调的是因素或指标的相对重要程度,倾向于贡献度或重要性.而在我们的数据分析过程中,倘若各个 ...

  2. 运用python进行熵值法综合评价

    运用python进行熵值法综合评价 第一步,读取数据: 第二步,数据标准化: 第三步,计算指标信息熵e和信息效用值d; 第四步,计算指标权重: 最后,计算样本评价值. 第一步,读取数据: import ...

  3. Python实现熵值法确定权重

    该文为转载文章,无排版,链接直达 Python实现熵值法确定权重 本文从以下四个方面,介绍用Python实现熵值法确定权重: 一. 熵值法介绍 二. 熵值法实现 三. Python实现熵值法示例1 四 ...

  4. python中是什么意思权重_如何用python实现熵值法求指标权重(实例)

    权重是指某一因素或指标相对于某一事物的重要程度,其不同于一般的比重,体现的不仅仅是某一因素或指标所占的百分比,强调的是因素或指标的相对重要程度,倾向于贡献度或重要性.而在我们的数据分析过程中,倘若各个 ...

  5. 利用熵值法确定指标权重---原理及Python实现

    背景 在进行一些综合评估类项目时,需要给一些指标确定一个合理的权重,用来计算综合得分,这种综合评估类项目在实际的业务中有很多应用,比如:学生奖学金评定方法.广告效果综合评估.电视节目满意度综合评估.用 ...

  6. 熵值法的Python实现

    本人因项目需要,在python中实现熵值法,花了一段时间倒腾出来,与老铁们分享. 一熵值法介绍 熵值法是计算指标权重的经典算法之一,它是指用来判断某个指标的离散程度的数学方法.离散程度越大,即信息量越 ...

  7. 建模笔记——熵值法熵权法(python)

    熵值法&熵权法-python实现 时隔老久,重新整理一下笔记.仅供个人自学使用,读者自行参考 Reference: 存了不知道多久的本地文件 司守奎,python数学实验与建模,2020 ht ...

  8. 评价模型中熵值法Excel和Python实现

      因为项目需要,要用分数的形式评价用户对某个产品的喜好程度,其中的指标权重确定用熵值法计算.在网上搜集了些资料,再自己捣腾了一下分别用Excel和Python的方法来实现. 目录 一.熵值法介绍 二 ...

  9. 熵值法原理及python实现 附指标编制案例

    文章目录 1.简单理解 信息熵 2.编制指标 (学术情景应用) 3.python实现 3.1 数据准备 3.2 数据预处理 3.3 熵值.权重计算 3.4 编制综合评价指标 熵值法也称熵权法,是学术研 ...

  10. Python:多指标权重确定方法—熵值法

    Python:多指标权重确定方法-熵值法 一.需准备的资料 1.一份excel的数据表格,列为指标(评价指标),行为城市(研究对象,也可以是年份,) city GDP:亿元x.1 人口(万)x.2 城 ...

最新文章

  1. svn服务器如何导入导出文件,如何导入svn dump备份文件或源代码文件?
  2. 为维护视图创建事物码
  3. CVPR 2019 | 小样本域适应的目标检测
  4. OpenCV检测拐角detecting corners的实例(附完整代码)
  5. 手把手教你在windows10下进行openFoam调试
  6. vfprintf()函数
  7. 详解道路标记数据集 CeyMo: See More on Roads -- A Novel Benchmark Dataset for Road Marking Detection
  8. 各大主流.Net的IOC框架性能测试比较
  9. Linux学习笔记-Makefile中的变量及函数
  10. 小米手机调用系统截图挂掉问题
  11. string与wstring互转
  12. How to install and configure vsftpd
  13. opencv 2 归一化函数normalize详解
  14. 自己做的商城系统流程图,分享给大家.
  15. android 版本权限差别,安卓手机root前后有什么区别 root后哪些高权限操作
  16. linux系统出现BUG:softlockup- CPU#0 STUCK FOR 23s 或 rcu_sched self-detected stall on cpu 等字样的解决办法
  17. 泰勒展开:一阶,二阶
  18. 数据挖掘实战(2)——糖尿病数据集(回归问题)
  19. ubuntu1804安装mysql5.7教程
  20. 下载并编译Android模拟器Linux内核goldfish教程

热门文章

  1. 推荐一款低代码报表开发工具,操作类似Excel
  2. golang学习(二)—— 变量
  3. 医院管理源码 排队叫号管理源码
  4. 洛谷 T2691 桶哥的问题——送桶
  5. JVM垃圾收集器详解之Parallel Scavenge
  6. 微信小程序实现腾讯地图定位功能-demo
  7. QT实现TCP断点传输文件
  8. python 今日头条 控制手机_Python脚本下载今日头条视频(附加Android版本辅助下载器)...
  9. 计算ndvi值需要的数据_利用TM计算NDVI问题
  10. Mac在线看视频卡顿