当前位置: 首页 > news >正文

数学建模(灰色关联度 python代码 案例)

目录

介绍:

模板:

案例:哪些原因影响结婚率

 数据标准化:

灰色关联度系数:

完整代码:

结果: 

介绍:

灰色关联度是一种多指标综合评价方法,用于分析和评价不同指标之间的关联程度。它可以用于确定多个因素之间的相关性,以及它们对某个问题或现象的影响程度。

灰色关联度根据数据的相对大小和发展趋势,将指标划分为灰色数列,然后通过计算各指标之间的相对关联度来确定其关联程度。

灰色关联度的计算过程包括以下几个步骤:
1. 数据标准化:将各指标的原始数据进行标准化处理,将其转化为无量纲的数据。
2. 累积生成:将各指标数据按照一定顺序进行累积生成,得到灰色数列。
3. 关联系数计算:计算各指标与问题或现象之间的关联度,得到关联系数。
4. 排序和评价:根据关联系数对指标进行排序,评价其对问题或现象的影响程度。

通过灰色关联度分析,可以帮助人们理解指标之间的关系,并进一步确定影响问题或现象的主要因素。这种方法常用于战略决策、经济发展、工程管理等领域,具有较高的应用价值。

模板:

import numpy as npdef gray_relation_coefficient(x, y):'''计算两个序列的灰色关联度参数:x: 序列x(一维数组)y: 序列y(一维数组)返回值:关联度值(float)'''n = len(x)# 数据标准化x_mean = np.mean(x)y_mean = np.mean(y)x_std = np.std(x)y_std = np.std(y)x_normalized = (x - x_mean) / x_stdy_normalized = (y - y_mean) / y_std# 构造灰色数列x_cumulative = np.cumsum(x_normalized)y_cumulative = np.cumsum(y_normalized)# 计算关联系数d = np.abs(x_cumulative - y_cumulative)delta = np.max(d)rho = 0.5relation_coefficient = (rho * delta + 1) / (d + rho * delta + 1)return relation_coefficient# 测试示例
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 5, 7, 9, 11])relation_coefficient = gray_relation_coefficient(x, y)
print("关联度值:", relation_coefficient)

案例:哪些原因影响结婚率

 数据标准化:

def normalization(data1):[m, n] = data1.shape  # 得到行数和列数data2 = data1.astype('float')data3 = data2ymin = 0.001ymax = 1for j in range(0, n):d_max = max(data2[:, j])d_min = min(data2[:, j])data3[:, j] = (ymax - ymin) * (data2[:, j] - d_min) / (d_max - d_min) + ymin#print(data3)return data3

灰色关联度系数:

 

 

def Score(data):# 得到其他列和参考列相等的绝对值data3=data[n, m] = data3.shape#print(n)for i in range(1, m):data3[:, i] = np.abs(data3[:, i] - data3[:, 0])# 得到绝对值矩阵的全局最大值和最小值data4 = data3[:, 1:m]d_max = np.max(data4)d_min = np.min(data4)a = 0.5  # 定义分辨系数# 计算灰色关联矩阵data4 = (d_min + a * d_max) / (data4 + a * d_max)score = np.mean(data4, axis=0)return score

 完整代码:

# coding=gbk
import pandas as pd
import numpy as np
def normalization(data1):[m, n] = data1.shape  # 得到行数和列数data2 = data1.astype('float')data3 = data2ymin = 0ymax = 1for j in range(0, n):d_max = max(data2[:, j])d_min = min(data2[:, j])data3[:, j] = (ymax - ymin) * (data2[:, j] - d_min) / (d_max - d_min) + ymin#print(data3)return data3def Score(data):# 得到其他列和参考列相等的绝对值data3=data[n, m] = data3.shape#print(n)for i in range(1, m):data3[:, i] = np.abs(data3[:, i] - data3[:, 0])# 得到绝对值矩阵的全局最大值和最小值data4 = data3[:, 1:m]d_max = np.max(data4)d_min = np.min(data4)a = 0.5  # 定义分辨系数# 计算灰色关联矩阵data4 = (d_min + a * d_max) / (data4 + a * d_max)print("灰色关联矩阵:")print(data4)score = np.mean(data4, axis=0)return scoreif __name__ == '__main__':# 导入数据data = pd.read_excel('D:\\桌面\\建模\\6\\代码\\marry.xlsx')# print(data)# 提取变量名label_need = data.keys()[1:]# print(label_need)# 提取上面变量名下的数据data1 = data[label_need].values#print(data1)data3=normalization(data1)#标准化scores=Score(data3)#算灰色关联度[m, n] = data1.shape  # 得到行数和列数#print(data)print()for i in range(1, n):print(label_need[0], "与", label_need[i], "的灰色关联度", scores[i - 1])

结果: 

相关文章:

数学建模(灰色关联度 python代码 案例)

目录 介绍: 模板: 案例:哪些原因影响结婚率 数据标准化: 灰色关联度系数: 完整代码: 结果: 介绍: 灰色关联度是一种多指标综合评价方法,用于分析和评价不同指标之…...

【DP】第十四届蓝桥杯省赛C++ B组《接龙数列》(C++)

【题目描述】 对于一个长度为 K 的整数数列:A1,A2,...,AK,我们称之为接龙数列当且仅当 的首位数字恰好等于 的末位数字 (2≤i≤K)。 例如 12,23,35,56,61,11 是接龙数列;12,23,34,56 不是接龙数列,因为 56 的首位数字不等于 3…...

文件包含漏洞(input、filter、zip)

一、PHP://INPUT php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码…...

使用iconv解决Linux/Ubuntu/Debian中gb2312中文文档乱码问题

你可以使用 iconv 命令行工具将文件中的文本从 GB2312 转换为 UTF-8。 你可以这样做: iconv -f GB2312 -t UTF-8 input.txt > output.txt将 input.txt 替换为以 GB2312 编码的输入文件的名称,将 output.txt 替换为你想要的 UTF-8 格式转换文件的名称。…...

图论中的最小生成树:Kruskal与Prim算法深入解析

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:アンビバレント—Uru 0:24━━━━━━️💟──────── 4:02 🔄 ◀️ ⏸ ▶️ ☰ …...

uniapp 之 实现商品详情的锚点跳转(类似京东商品详情-点击顶部按钮跳转的对应的页面的内容区域)

类似京东商品详情-点击顶部详情跳转到页面对应的详情区域,点击评价跳转到页面对应的评价区域等。 照例,先封装方法: 封装方法 util.js /*** 锚点跳转(如:商品详情页面跳转)* param {string} targetId 目…...

PPT好看配色

放几个链接!画图时候可以参考!转自知乎 Color Hunt ColorDrop 中国色 Flat UI Colors Coolors...

微信小程序执行环境(微信端)与浏览器环境有何不同

微信小程序执行环境与浏览器环境有很多不同之处,以下是一些例子: 全局对象: 浏览器环境中的 JavaScript 有一个全局对象 window,而微信小程序中的 JavaScript 没有 window 对象,取而代之的是 wx 对象,wx …...

Java小项目--满汉楼

Java小项目–满汉楼 项目需求 项目实现 1.实现对工具包的编写 先创建libs包完成对jar包的拷贝和添加入库 德鲁伊工具包 package com.wantian.mhl.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.io.FileInputStream…...

微信怎样群发更高效?

群发是指通过微信平台对特定受众进行大规模信息发布的过程,如节日祝福、活动促销等。随着科技的不断发展,群发的定义已不再仅限于手机信息群发或短信群发。如今,微信内置的群发功能也被广泛应用。 一、微信群发的操作步骤 1. 进入微信&…...

javaSwing愤怒的小鸟

一、简介 游戏名称是“愤怒的小鸟”,英文称为“AngryBird”。 “愤怒的小鸟”是著名游戏公司Rovio偶然间开发出来的益智游戏,从2009年12月上市到iOS。,讲述了鸟类和猪因为猪偷鸟蛋反生的一系列故事。游戏的类型版本是横向版本的水平视角&…...

10 开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分)

开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分) 作者将狼才鲸日期2024-03-20 开源鸿蒙通过芯片仓存放指定芯片和指定开发板的代码,硬件相关的代码和纯逻辑代码是分开存放的 源码模块的组织结构在manifest这个Git仓库,这也是拉…...

qt5-入门-标签页部件QTabWidget-1

参考: C GUI Programming with Qt 4, Second Edition 本地环境: win10专业版,64位,Qt5.12 目录 效果实现Qt Designer操作代码addStretch()解释 效果 首页有三个按钮和最近文件列表。 拖动窗口,按钮和文件列表仍然处…...

GOPS全球运维大会2024深圳站亮点抢先看!

2024年4月25-26日,博睿数据将受邀出席第二十二届 GOPS 全球运维大会深圳站。本次大会上,博睿数据AIOps首席专家兼产品总监贺安辉将亮相AIOps最佳实践及解决方案专场,分享《一体化智能可观测平台的两翼:数据模型AI算法》的主题演讲…...

给wordpress添加自定义字段的分类筛选功能

要为WordPress添加自定义字段的筛选功能,你需要使用WordPress的查询参数(query parameters)和WP_Query类来构建自定义查询。以下是一个详细的示例代码,展示了如何添加自定义字段的筛选功能。 首先,你需要在你的主题或插件的functions.php文件…...

Android 系统的启动过程

Android 系统的启动流程: RomBoot(只读存储器引导程序):这是设备上电时运行的初始软件。RomBoot执行基本的硬件初始化,确保硬件处于可以运行后续启动阶段的状态。这一阶段非常重要,因为它为整个启动过程奠定…...

jenkins配置源码管理的git地址时,怎么使用不了 credential凭证信息

前提 Jenkins使用docker部署 问题 (在jenlins中设置凭证的方式)在Jenkins的任务重配置Git地址,并且设置了git凭证,但是验证不通过,报错; 无法连接仓库:Command "git ls-remote -h -- http://192.1XX.0.98:X02/…...

Emotion Prompt-LLM能够理解并能通过情感刺激得以增强

Large Language Models Understand and Can be Enhanced by Emotional Stimuli 情感智能对我们的日常行为和互动产生了显著的影响。尽管大型语言模型(LLMs)被视为向人工通用智能迈进的一大步,在许多任务中表现出色,但目前尚不清楚…...

流畅的 Python 第二版(GPT 重译)(十三)

第二十四章:类元编程 每个人都知道调试比一开始编写程序要困难两倍。所以如果你在编写时尽可能聪明,那么你将如何调试呢? Brian W. Kernighan 和 P. J. Plauger,《编程风格的要素》 类元编程是在运行时创建或自定义类的艺术。在 P…...

C/C++炸弹人游戏

参考书籍《啊哈,算法》,很有意思的一本算法书,小白也可以看懂,详细见书,这里只提供代码和运行结果。 这里用到的是枚举思想,还有更好地搜索做法。 如果大家有看不懂的地方或提出建议,欢迎评论区…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

Java编程之桥接模式

定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...

2025.6.9总结(利与弊)

凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...