Python用TOPSIS熵权法重构粮食系统及期刊指标权重多属性决策MCDM研究|附数据代码...

原文链接:https://tecdat.cn/?p=37724

在当今世界,粮食系统的稳定性至关重要。尽管现有的全球粮食系统在生产和分配方面表现出较高的效率,但仍存在大量人口遭受饥饿以及诸多粮食安全隐患。与此同时,在学术领域,准确评估情报学期刊的质量和影响力对于学术研究和信息传播意义重大点击文末“阅读原文”获取完整代码数据)。

本研究旨在通过TOPSIS熵权法、多属性决策(MCDM)方法对全球粮食系统进行重构,以优化其效率、盈利能力、可持续性和公平性。

同时,结合python的代码和数据运用熵权法对情报学期刊的各项指标进行权重计算,为期刊评价提供科学方法。通过对粮食系统的四个程序 —— 生产、分配、加工和销售进行全面评估,我们致力于构建一个更加稳定、可持续且公平的粮食系统。而对于情报学期刊的研究,则有助于提升学术评价的准确性和科学性。

对于粮食系统的重构,我们提出了一系列模型。首先,建立模型 I 说明食物系统的效率和利润;其次,模型 II 衡量粮食系统的可持续性;第三,构建模型 III 证明食品系统中的公平问题。此外,我们还利用熵 topsis 方法评估食物系统的稳定性。对于情报学期刊指标权重的计算,结合python的代码和数据我们采用熵权法,通过对数据的处理和分析,得到了期刊学术质量、期刊影响力和期刊显示度等一级指标的权重。

对于重构粮食系统的建议Re-optimizing Food System 

我们的全球粮食系统是不稳定的,即使是在世界上通常服务良好的地区。这些不稳定的部分原因是我们目前庞大的国家和国际粮食生产商和分销商的全球体系。这种粮食系统允许粮食以相对便宜和高效的方式生产和分配,因此表明当前的模式优先考虑效率和盈利能力。

尽管这个系统效率很高,但是全球依然大量人口遭受饥饿,同时存在很多粮食安全隐患

我们希望提出一个模型,重新构想和确定我们食品系统的优先级,以优化效率、盈利能力、可持续性和/或公平性。

 解决方案

任务/目标

根据公开数据建立影响产量的原因,粮食生产对环境的影响即可持续性,食品运输过程的损耗和经济消耗,提出对于地区食品分配合理性的指标

问题重述

全球粮食系统由四个程序组成:粮食生产、分配、加工还有销售。我们对食物系统的效率进行了定量和充分的评估以及盈利能力、公平性、可持续性和稳定性,相应的变量侧重于每一个步骤。

•衡量效率和盈利能力

•衡量可持续性

•衡量公平

•变量的比较静态分析

•通过示例测量可伸缩性

模型简述

首先,我们建立模型I来说明食物系统的效率和利润,同时生产、加工和分销,并在ISM模型下进行计算确认。

第二,模型II是用来衡量粮食系统的可持续性,重点是食品系统的环境成本。我们计算出在给定条件下的显式和隐式成本用线性回归分析污染指数。我们可以定量地测量环境质量由食物系统引起的。

第三,我们构建了模型III,以证明食品系统中的公平问题主要与一个国家的食品支出有关。

此外,我们利用熵topsis方法来评估食物系统,并讨论现有系统在应对某些紧急情况时的稳定性。

部分模型展示如下

853571034fafebc2aec570e8858da7a2.png

ccad03aff1bda322334fe6d45d16812a.png

b835e3ff41a969b635d2d3ffaabbdf0d.png

基本完成需要完成的任务,该系统可用于世界各地的许多国家,它还强调了利用宏观经济学研究粮食系统公平性和可持续性的意义。这些数据在大多数国家都很常见。如上所述,我们可以到达通过调整生产要素或政府政策进行优化。

提供了一种简化但仍然定量的方法来衡量权益通过收集一个国家内不同人群的数据来计算差异,我们成功地衡量了粮食系统内部的公平水平,并进行了比较静态分析。

但是也存在明显缺点,特别是对于运输方面,我们采用的ISM解释结构模型仅仅能够定性地分析主要影响原因而不能定量分析,而且由于数据的缺乏,仅仅对部分地区较为准确,整个模型比较粗糙。


点击标题查阅往期内容

437f9f77f0a15f874d2313b1117c1a27.jpeg

R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化

outside_default.png

左右滑动查看更多

outside_default.png

01

99c394500527c8c052630329cc6f9e86.png

02

e282c18eee6e8fbec616f5d2d7168b1a.png

03

e8200a45339ddbc998d6030b07664101.png

04

75bd27fb8551b9fbe9ff6f7404910638.png

TOPSIS 方法在多属性决策(MCDM)中的应用|附数据代码

逼近理想解排序法(Technique for Order Preference by Similarity to Ideal Solution,TOPSIS)在 20 世纪 80 年代作为一种多准则决策方法出现。TOPSIS 选择与理想解的欧氏距离最短且与负理想解的距离最大的方案。

假设你要购买一部手机,去商店后根据 RAM、内存、屏幕尺寸、电池和价格等因素对 5 部手机进行分析。在考虑众多因素后感到困惑,不知如何决定购买哪部手机。TOPSIS 就是一种根据给定因素的权重和影响来分配排名的方法。

  • 权重:表示给定因素应被考虑的程度(默认所有因素权重为 1)。例如,若希望 RAM 的权重高于其他因素,可以将 RAM 的权重设为 2,其他因素设为 1。

  • 影响:指给定因素具有正面或负面的影响。例如,希望电池容量尽可能大,而手机价格尽可能低,所以给电池分配“+”权重,给价格分配“-”权重。

此方法可用于根据各种因素(如相关性、决定系数 $R^2$、准确率、均方根误差等)对机器学习模型进行排名。现在我们已经了解了 TOPSIS 是什么以及可以在哪里应用它。下面来看在给定的由多行(如不同的手机)和多列(如各种因素)组成的数据集上实施 TOPSIS 的步骤。

数据集示例:

给定数据集中特定因素的值被视为标准单位。始终对任何非数字数据类型进行标签编码。

7d117fbe49f823f4516dddf0e68bdbbe.png

步骤:

步骤 1:计算归一化矩阵和加权归一化矩阵。通过以下方式对每个值进行归一化,其中 $m$ 是数据集中的行数,$n$ 是列数。$i$ 沿行变化,$j$ 沿列变化。

139cad2e7018baba35721e1bc4760846.png

对于上述给定的值,归一化矩阵将是:

0f2614ed271384e132e9779fd5e46f83.png

然后,将每列中的每个值与相应的给定权重相乘。

def Normaze(dataset, nCol, weights):for i in range(1, nCol):temp = 0for j in range(len(dataset)):temp = temp + dataset.iloc\[j, i\]\*\*2temp = temp\*\*0.5for j in range(len(dataset)):dataset.iat\[j, i\] = (dataset.iloc\[j, i\] / temp)*weights\[i-1\]print(dataset)

步骤 2:计算理想最优解和理想最劣解以及每行与理想最劣解和理想最优解的欧氏距离。首先,确定理想最优解和理想最劣解:这里需要考虑影响,即它是“+”影响还是“-”影响。如果是“+”影响,那么某一列的理想最优解是该列的最大值,理想最劣解是该列的最小值,反之对于“-”影响则相反。

现在需要计算所有行中的元素与理想最优解和理想最劣解的欧氏距离。这里 $diw$ 是第 $i$ 行的最劣距离计算值,其中 $ti,j$ 是元素值,$tw,j$ 是该列的理想最劣解。类似地,可以找到 $dib$,即第 $i$ 行的最佳距离计算值。

5a1f88625e03e8a6bc7ba0f10b2fefce.png

现在,数据集将包含正距离和负距离,如下所示:

005f52dc7224e6dd7c2e21747c81e13b.png

步骤 3:计算 TOPSIS 得分并进行排名。现在我们有了距离正和距离负,让我们根据它们为每行计算 TOPSIS 得分。

TOPSIS 得分 = $diw$ / ($dib$ + $diw$) 对于每一行

现在根据 TOPSIS 得分进行排名,即得分越高,排名越好。

我们的数据集将如下进行排名:36e4d2ca6195b32e81c793b7d7e469ad.png

基于熵权法的情报学期刊指标权重计算|附数据代码

本文旨在通过熵权法对情报学期刊的各项指标进行权重计算,以评估不同指标在期刊评价中的重要性。通过对数据的处理和分析,得到了期刊学术质量、期刊影响力和期刊显示度等一级指标的权重。

一、引言

在情报学领域,对期刊的评价是一个重要的研究课题。准确评估期刊的质量和影响力对于学术研究和信息传播具有重要意义。本文采用熵权法对情报学期刊的各项指标进行权重计算,为期刊评价提供一种科学的方法。

二、数据准备

首先,使用pandas库读取情报学期刊数据文件情报学期刊.xlsx

b714a5073c7388e1db324de4dcf3c623.png

import pandas as pd# 加载Excel文件file\_path = '/mnt/data/核心期刊数据.xlsx'df = pd.read\_excel(file\_path)# 显示数据的前几行以了解其结构df.head()import matplotlib.pyplot as pltimport seaborn as sns# 设置中文字体,以便在图表中显示中文plt.rcParams\['font.sans-serif'\] = \['SimHei'\]plt.rcParams\['axes.unicode\_minus'\] = False# 创建一个画布,包含多个子图fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(15, 15))# 1. 条形图:展示各期刊的“出版文献量”sns.barplot(x='出版文献量', y='期刊名', data=df, ax=axes\[0, 0\])axes\[0, 0\].set\_title('各期刊的出版文献量')# 2. 饼图:展示不同“基金论文比”的分布df\['基金论文比分类'\] = pd.cut(df\['基金论文比'\], bins=\[0, 0.3, 0.6, 1\], labels=\['低', '中', '高'\])fund\_paper\_ratio\_distribution = df\['基金论文比分类'\].value\_counts()axes\[0, 1\].pie(fund\_paper\_ratio\_distribution, labels=fund\_paper\_ratio\_distribution.index, autopct='%1.1f%%')axes\[0, 1\].set\_title('基金论文比分布')# 3. 折线图:展示“综合影响因子”和“复合影响因子”的关系sns.lineplot(x='综合影响因子', y='复合影响因子', data=df, marker='o', ax=axes\[1, 0\])axes\[1, 0\].set\_title('综合影响因子与复合影响因子的关系')# 4. 箱线图:展示“篇均被引”的分布情况sns.boxplot(x=df\['篇均被引'\], ax=axes\[1, 1\])axes\[1, 1\].set\_title('篇均被引的分布情况')# 5. 散点图:展示“出版文献量”与“总被引频次”的关系sns.scatterplot(x='出版文献量', y='总被引频次', data=df, ax=axes\[2, 0\])axes\[2, 0\].set\_title('出版文献量与总被引频次的关系')# 调整布局plt.tight\_layout()plt.show()

fd6c14d5dd5821e16bf753e19710dff9.png

三、指标处理

  1. 获取正向指标列表:

    # 在没有去掉网络指标的前提下
    zhengxiang = data_qingbaoxue.columns.values.tolist()
    del zhengxiang\[0:2\]
    del zhengxiang\[1\]
    zhengxiang  # 获得正向指标的列表
  2. 获取负向指标列表:

    index = data_qingbaoxue.columns.values.tolist()
    del index\[0:2\]
    fuxiang = \['零引论文率'\]  # 获得负向指标列表
    journal\_name = data\_qingbaoxue\['图书馆学、情报学类期刊18'\]  # 包含了所有需要测量的期刊
    indexs = data_qingbaoxue\[index\]  # 包含了需要测量的指标的所有数据
  3. 进行数据归一化等操作:

    em = EntropyMethod(indexs, fuxiang, zhengxiang, journal_name)
    em.uniform()  # 归一化后的数据

    e0d373f1c737a1ef05cca343423192cd.png

    em.calc_probability()
    em.calc_entropy()
    em.calc\_entropy\_redundancy()  # 尝试计算信息效用值
    ``````
    em.calc_Weight()  # 计算得单项指标最终权重
    ``````
    weight = em.calc_Weight().tolist()
    yijizhibiao = \[\]
    yijizhibiao.append(sum(weight\[0:5\]))  # 按照分类将单项指标权重相加得一级指标权重
    yijizhibiao.append(sum(weight\[5:10\]))
    yijizhibiao.append(sum(weight\[10:\]))
    yijizhibiao = pd.Series(yijizhibiao, index=\['期刊学术质量', '期刊影响力', '期刊显示度'\], name='一级指标权重')
    yijizhibiao  # 计算一级指标权重
  4. 去除网络指标后再次计算:

    # 在删除网络指标的前提下
    zhengxiang.pop()
    zhengxiang.pop()  # 删除位于尾部的两个网络指标
    positive = zhengxiang
    ``````
    negative = fuxiang
    index.pop()
    index.pop()  # 同样是删除位于尾部的两个网络指标
    indexs = data_qingbaoxue\[index\]
    em = EntropyMethod(indexs, positive, negative, journal_name)
    ``````
    em.uniform()

    6ab462f20f638381e859dd15697c4541.png

    em.calc_probability()
    em.calc_entropy()
    em.calc\_entropy\_redundancy()  # 尝试计算信息效用值
    ``````
    em.calc_Weight()  # 计算得单项指标最终权重
    ``````
    weight = em.calc_Weight().tolist()
    yijizhibiao = \[\]
    yijizhibiao.append(sum(weight\[0:5\]))
    yijizhibiao.append(sum(weight\[5:10\]))
    yijizhibiao.append(sum(weight\[10:\]))
    yijizhibiao = pd.Series(yijizhibiao, index=\['期刊学术质量', '期刊影响力', '期刊显示度'\], name='一级指标权重')
    yijizhibiao  # 计算一级指标权重

a44a05cc37b44e5e7a4f57ab14d55a64.png 

16ae01508b8f259cea3cd6be605a97ab.png 

a83558d9e2681b81d5dc802bbcfded78.png

四、结论

通过熵权法对情报学期刊数据进行处理和分析,成功计算出了不同指标下期刊学术质量、期刊影响力和期刊显示度等一级指标的权重,为情报学期刊的评价提供了一种有效的方法。

关于分析师 

edd9143afb3a4aae5f351359e68e5f4b.png

在此对 Sikun Chen 对本文所作的贡献表示诚挚感谢,他在复旦大学完成了数学与应用数学专业的学业,专注数理金融、数据采集等领域。擅长 Matlab。

ae5ba57fdfe77f4dad62fdb7ae0cced5.jpeg

本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群! 

2816b5d5b027c37c05fbbb2e6b78f463.png

资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

f1da2dcc8da78a3a5a2b569a6640eae1.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python用TOPSIS熵权法重构粮食系统及期刊指标权重多属性决策MCDM研究》。

点击标题查阅往期内容

MATLAB改进模糊C均值聚类FCM在电子商务信用评价应用:分析淘宝网店铺数据|数据分享

R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享

数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC

R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据

逻辑回归Logistic模型原理R语言分类预测冠心病风险实例

数据分享|用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化

R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据(含练习题)

Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例

R语言Bootstrap的岭回归和自适应LASSO回归可视化

R语言Lasso回归模型变量选择和糖尿病发展预测模型

R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析

基于R语言实现LASSO回归分析

R语言用LASSO,adaptive LASSO预测通货膨胀时间序列

R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析

R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例

Python中的Lasso回归之最小角算法LARS

r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现

r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

R语言实现LASSO回归——自己编写LASSO回归算法

R使用LASSO回归预测股票收益

python使用LASSO回归预测股票收益

07b827c0c590b2b32717d041dd2ec1e2.jpeg

b838f276397132a81d83ddd4084a44ad.png

b7f50a65fe7af925e532771ac1ecf053.png

1c2db10e212d4fdcb4526493a68e0e71.jpeg

f6cf57e2a382500305ba0ec44f64ec99.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/882497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第430题扁平化多级双向链表

题目: 题解: func dfs(node *Node) (last *Node) {cur : nodefor cur ! nil {next : cur.Next// 如果有子节点,那么首先处理子节点if cur.Child ! nil {childLast : dfs(cur.Child)next cur.Next// 将 node 与 child 相连cur.Next cur.Chi…

汉王手写签批控件如何在谷歌、火狐、Edge等浏览器使用

背景 近日,有网友咨询汉王手写签批控件是否可以通过allWebPlugin中间件技术加载到谷歌、火狐、Edge等浏览器?为此,笔者详细了解了一下汉王手写签批控件,它是一个标准的ActiveX控件,曾经主要在IE浏览器使用,…

【计算机基础】用bat命令将Unity导出PC包转成单个exe可执行文件

Unity打包成exe可执行文件 上边连接是很久以前用过的方法,发现操作有些不一样了,并且如果按上述操作比较麻烦,所以写了个bat命令。 图1、导出的pc程序 如图1是导出的pc程序,点击exe文件可运行该程序。 添加pack_project.bat文件 …

大数据Flink(一百二十二):阿里云Flink MySQL连接器介绍

文章目录 阿里云Flink MySQL连接器介绍 一、特色功能 二、​​​​​​​语法结构 三、​​​​​​​​​​​​​​WITH参数 阿里云Flink MySQL连接器介绍 阿里云提供了MySQL连接器,其作为源表时,扮演的就是flink cdc的角色。 一、特色功能 MySQ…

操作系统 | 学习笔记 | | 王道 | 5.3 磁盘和固态硬盘

5.3 磁盘和固态硬盘 5.3.1 磁盘 磁盘结构 磁盘:磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据 磁道:磁盘的盘面被划分成一个个磁道。这样的一个“圈”就是一个磁道 扇区:一个磁道又被划分成一个个扇区&am…

大数据毕业设计选题推荐-网络电视剧收视率分析系统-Hive-Hadoop-Spark

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

通信工程学习:什么是NFVO网络功能虚拟化编排器

NFVO:网络功能虚拟化编排器 NFVO(Network Functions Virtualization Orchestrator),即网络功能虚拟化编排器,是网络功能虚拟化(NFV)架构中的核心组件之一。NFV是一种将传统电信网络中的网络节点…

从零开始学习Python

目录 从零开始学习Python 引言 环境搭建 安装Python解释器 选择IDE 基础语法 注释 变量和数据类型 变量命名规则 数据类型 运算符 算术运算符 比较运算符 逻辑运算符 输入和输出 控制流 条件语句 循环语句 for循环 while循环 循环控制语句 函数和模块 定…

黑马智数Day3

渲染基础Table列表 封装接口: export function getCardListAPI(params) {return request({url: /parking/card/list,params}) } 具体实现: import { getCardListAPI } from /apis/cardexport default {data() {return {// 请求参数params: {page: 1,pa…

乌克兰因安全风险首次禁用Telegram

据BleepingComputer消息,乌克兰国家网络安全协调中心 (NCCC) 以国家安全为由,已下令限制在政府机构、军事单位和关键基础设施内使用 Telegram 消息应用程序。 这一消息通过NCCC的官方 Facebook 账号对外发布,在公告中乌…

【小程序】uniapp自定义图标组件可动态更换svg颜色

组件描述 通过图标名称加载对应svg,size参数调整图标大小,color参数调整图标颜色 解决思路: 存svg获svg,对象方式正则替换svg的fill值,不改变源文件,通过base64直接加载缓存svg源文件,避免重…

上传富文本插入文件时报错:JSON parse error: Unexpected character解决办法

方式一(加密解密): 1.前端 (1)安装 crypto-js npm install crypto-js(2)util下创建asc.js asc.js import CryptoJS from crypto-js// 需要和后端一致 const KEY CryptoJS.enc.Utf8.parse(…

爬虫逆向学习(七):补环境动态生成某数四代后缀MmEwMD

声明:本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录 前言 这篇文章主要是研究如何动态生成后缀参数MmEwMD的,它是在文章爬虫逆向学习(六):补环境过某数四代的基础上进行研究的,代码也是在它基础上增…

C++之初识STL(概念)

STL(标准模板库) STL广义分类为:容器,算法,迭代器 * **容器**和**算法**之间通过**迭代器**进行无缝连接 意义:C的**面向对象**和**泛型编程**思想,目的就是**复用性的提升** STL六大组件 1. 容…

论文阅读:Omni-Kernel Network for Image Restoration

论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/27907 项目地址:https://github.com/c-yn/OKNet 发表时间:2024 图像恢复的目的是从一个退化的低质量的观测中重建一个高质量的图像。最近,Transformer模型由于其强大…

JavaScript 安装库npm报错

今天在编写JavaScript代码时,缺少了包express。 const express require(express); const app express();app.get(/, (req, res) > {res.send(Hello, world!); });app.listen(3000, () > {console.log(Server is running on port 3000); });npm install exp…

【Redis技能熟练掌握之十年内功】

Redis技能熟练掌握之十年内功 1.redis是什么?为什么要使用redis?2.redis一般应用于什么场景(四个场景)?3. Redis持久化机制是什么?各自的优缺点?一般咋么用?4. redis五个基础类型支持…

速通汇编(七)BX、SI、DI寄存器,BP寄存器,直接寻址和间接寻址

下文中出现的"idata",指的都是任意常量 一,基于BX、SI、DI等寄存器的寻址形式 在第五篇中曾介绍过DS寄存器的作用,简要复习一下->速通汇编(五)认识段地址与偏移地址,CS、IP寄存器和jmp指令&a…

百度飞浆Paddle OCR检测和识别【OCR数据收集、标注、数据集划分、检测识别模型训练、导出模型】

文章目录 前言一、OCR数据集采集二、OCR数据标注三、划分数据集四、数据训练五、导出模型 前言 1、我的电脑没有GPU,如果不使用AI Studio训练的话,第一遍我是按照CPU进行环境配置和训练的,可以参考这篇文章,我按着弄了一遍&#…

Kafka技术详解[1]:简介与基础概念

目录 1. Kafka入门 1.1 概述 1.1.1 初识Kafka 1.1.2 消息队列 1.1.3 生产者-消费者模式 1.1.4 消息中间件对比 1.1.5 ZooKeeper 1. Kafka入门 1.1 概述 1.1.1 初识Kafka Kafka是由Scala和Java语言开发的高吞吐量分布式消息发布和订阅系统,也是大数据技术领…