数学建模(灰色关联度 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++炸弹人游戏
参考书籍《啊哈,算法》,很有意思的一本算法书,小白也可以看懂,详细见书,这里只提供代码和运行结果。 这里用到的是枚举思想,还有更好地搜索做法。 如果大家有看不懂的地方或提出建议,欢迎评论区…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
