数学建模(基于Python实现)--灰色关联分析法讲解,含案例

前言

  • 这是去年底学数学建模老哥的建模课程笔记;

  • 未来本人将陆陆续续的更新数学建模相关的一些基础算法,大家可以持续关注一下,主要在于运用;

  • 提示:数学建模只有实战才能提升🔥​🔥​🔥​🔥​🔥​,光学算法没有啥意义,也很难学的很懂。

概念

灰色关联分析的基本思想:是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。

一般的抽象系统,如社会系统、经济系统、农业系统、生态系统、教育系统等都包含有许多种,多种因素共同作用的结果决定了该系统的发展态势,其中,哪些是主要因素,哪些是次要因素;哪些因素对系统发展影响大,哪些因素对系统发展影响小;哪些因素对系统发展起推动作用需强化发展,哪些因素对系统发展起阻碍作用需加以抑制,灰色关联分析中,对每个影响不同的因数进行不同权重的赋值,这也是主观性过强的原因。

灰色关联分析法则用于确定各因素对结果影响程度或随时间变化的综合评价类问题。

  • 优点
    • 灰色关联分析法弥补了采用数理统计方法作系统分析所导致的遗憾。它对样本量的多少和样本有无规律都同样适用,而且计算量小,十分方便,更不会出现量化结果与定性分析结果不符的情况。
  • 缺点
    • 要求需要对各项指标的最优值进行现行确定,主观性过强,同时部分指标最优值难以确定。

步骤

例题:
在这里插入图片描述

第一步、确定比较对象(评价对象)和参考数列(评价标准)

这一步就是选取评价对象,和评价对象有关系影响因素,本题中就是,通过这个地区水库含氧量、PH值、细菌总数、植物性营养物含量数据,评价那些因数对本地水质的关联大,那些小

代码:

import numpy as np# 原始数据
data = np.array([[8, 7.2, 500, 12],[6, 7.0, 600, 15],[9, 7.5, 400, 18],[7, 7.3, 450, 11],[10, 7.1, 550, 9]
])# 无量纲化处理
min_values = data.min(axis=0)
max_values = data.max(axis=0)
normalized_data = (data - min_values) / (max_values - min_values)
normalized_data
array([[0.5       , 0.4       , 0.5       , 0.33333333],[0.        , 0.        , 1.        , 0.66666667],[0.75      , 1.        , 0.        , 1.        ],[0.25      , 0.6       , 0.25      , 0.22222222],[1.        , 0.2       , 0.75      , 0.        ]])

第二步、确定各指标的权重

确定各指标对应的权重,如:专家打分法、层次分析法…………

#设置权重
w= np.array([0.1,0.2, 0.3,0.4])

第三步、计算灰色关联系数

rho = 0.5  # 分辨系数# 计算差值
differences = normalized_data[:-1, :] - normalized_data[-1, :]# 计算最小差值和最大差值
min_diff = np.min(differences, axis=0)
max_diff = np.max(differences, axis=0)# 计算灰色关联系数
relational_coefficients = (min_diff + rho * max_diff
) / (differences + rho * max_diff)relational_coefficients
array([[0.5       , 0.4       , 0.5       , 0.33333333],[0.        , 0.        , 1.        , 0.66666667],[0.75      , 1.        , 0.        , 1.        ],[0.25      , 0.6       , 0.25      , 0.22222222],[1.        , 0.2       , 0.75      , 0.        ]])
array([[ 1.8       ,  0.33333333,  5.        ,  0.86666667],[ 1.        ,  1.        , -1.66666667,  0.61904762],[ 3.        ,  0.16666667,  1.        ,  0.48148148],[ 1.28571429,  0.25      ,  1.66666667,  1.        ]])

第四步、计算灰色加权关联度

在这里插入图片描述

p,分辨率大小,一般取0.4,0.5,0.6,越大,更关注指标差异性,越小,更注重指标相关性

在这里插入图片描述

# 沿着axis=1(即列)求和,得到每行的和  
row_sums = np.sum(relational_coefficients, axis=1)  # 确保w的形状与row_sums的形状相匹配  
assert w.shape == (relational_coefficients.shape[0],), "w的长度必须与relational_coefficients的行数相同"  # 计算每行的和乘以w中对应元素的值  
relational_degrees = row_sums * w  print("每行的和:", row_sums)  
print("权重w:", w)  
print("每行的和乘以对应权重w的值(即relational_degrees):", relational_degrees)
每行的和: [8.         0.95238095 4.64814815 4.20238095]
权重w: [0.1 0.2 0.3 0.4]
每行的和乘以对应权重w的值(即relational_degrees): [0.8        0.19047619 1.39444444 1.68095238]

第五步、评价分析

根据加权关联度大小,对各评价对象进行排序,可建立评价对象的关联序,关联度越大,评价结果越好

# 对关联度进行降序排序并获取排序索引
sorted_indices = np.argsort(-relational_degrees)# 打印排序结果
print("关联度排序索引: ", sorted_indices)
关联度排序索引:  [3 2 0 1]

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【go从零单排】error错误处理及封装

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,error 是一个内置的接口类型,用于表示错误情…

论文阅读笔记:Depth Pro: Sharp Monocular Metric Depth in Less Than a Second

论文阅读笔记:Depth Pro: Sharp Monocular Metric Depth in Less Than a Second 1 背景1.1 动机1.2 提出的方法 2 创新点3 方法4 模块4.1 训练目标4.2 课程训练 4.3 边缘评价指标4.4 焦距估计 5 效果5.1 和SOTA方法的对比 论文:https://arxiv.org/abs/24…

flutter 项目初建碰到的控制台报错无法启动问题

在第一次运行flutter时,会碰见一直卡在Runing Gradle task assembleDebug的问题。其实出现这个问题的原因有两个。 一:如果你flutter -doctor 检测都很ok,而且环境配置都很正确,那么大概率就是需要多等一会,少则几十分…

跨子网的WinCC客户机/服务器如何实现通讯?

为了更有效地利用有限的IP地址,为了减少广播对网络带宽的占用从而提高带宽,为了实现在不同子网中应用不同的安全策略从而提高网络安全性,现场通常要求划分子网,将安全等级要求不同的计算机安置在不同的子网中,分开管理…

SpringClud一站式学习之Eureka服务治理(二)

SpringClud一站式学习之Eureka服务治理 引言1. 搭建Eureka Server1.1. 添加Eureka Server依赖1.2. 添加 Eureka Server注解1.3. 配置Eureka Server1.4. 运行Eureka Server 2. 搭建Eureka Client 服务提供者2.1. 添加依赖2.2. 添加注解2.3. 配置Eureka Client2.4. 启动服务 3. 搭…

实战攻略 | ClickHouse优化之FINAL查询加速

【本文作者:擎创科技资深研发 禹鼎侯】 查询时为什么要加FINAL 我们在使用ClickHouse存储数据时,通常会有一些去重的需求,这时候我们可以使用ReplacingMergeTree引擎。这个引擎允许你存储重复数据,但是在merge的时候会根据order …

加入GitHub Spark需要申请

目录 加入GitHub Spark需要申请 GitHub Spark 一、产品定位与特点 二、核心组件与功能 三、支持的AI模型 四、应用场景与示例 五、未来展望 六、申请体验 加入GitHub Spark需要申请 GitHub Spark 是微软旗下GitHub在2024年10月30日的GitHub Universe大会上推出的一款革…

鸿蒙与团结引擎c#与ts简单交互

目录 团结中调用ts代码 鸿蒙中调用团结代码 首先在团结创建代码,需要将代码添加到场景物体中 devecoStudio端编写ts代码 在index页面添加一个测试按钮 团结中调用ts代码 团结引擎 - 手册: Call TypeScript plug-in code from C# scripts 注册函数要跟文件名一致 在u…

Qt QCustomplot 在采集信号领域的应用

文章目录 一、常用的几种开源库:1、QCustomPlot:2、QChart:3、Qwt:QCustomplot 在采集信号领域的应用1、应用实例时域分析频谱分析2.数据筛选和处理其他参考自然界中的物理过程、传感器和传感器网络、电路和电子设备、通信系统等都是模拟信号的来源。通过可视化模拟信号,可以…

世优科技携手人民中科打造AI数字人智能体助力智慧校园

近日,世优科技与人民中科携手,为中国劳动关系学院开发了一款AI数字人助手,不仅在校园内部承担日常问询、交互工作,还在学校的展厅中担任讲解员的角色,为师生们提供生动详尽的导览服务。 中国劳动关系学院作为中华全国总…

7.2、实验二:被动接口和单播更新

源文件链接: 7.2、实验二:被动接口和单播更新: https://url02.ctfile.com/d/61945102-63671890-6af6ec?p2707 (访问密码: 2707) 一、被动接口 1.介绍 定义: 在路由协议的配置中,一个被动接口指的是一个接口不发送路由更新包的配置方式&a…

达梦8-达梦数据实时同步软件(DMHS)配置-Oracle-DM8

1、安装环境 源端目的端IP地址192.168.6.111192.168.6.110系统版本Red Hat 6.4Kylin v10数据库版本Oracle11g达梦 v8系统用户Oracledmdba字符集MERICAN_AMERICA.AL32UTF8UTF-8端口15215236实例名PRODDMSERVER数据库软件目录/u01/app/oracle/opt/dmdbmsDMHS安装目录/u01/dmhs/o…

多个NVR同时管理EasyNVR多品牌NVR管理工具/设备:IP常见问题解决方案

随着视频监控技术的不断发展,NVR(网络视频录像机)已经成为现代安防系统的重要组成部分。而为了更高效地管理多个品牌的NVR设备,EasyNVR这一多品牌NVR管理工具应运而生。然而,在实际使用过程中,尤其是在多个…

新160个crackme - 094-TheBigMan-crackme6

运行分析 需破解Name和Serial PE分析 LCC win32程序,32位,无壳 静态分析&动态调试 ida搜索字符串,进入关键函数 ida动调,发现关键判断函数func_1 进入后,发现Name长度需满足一定要求,且func_2返回值不能…

软考系统分析师知识点三七:今日考试

前言 今年报考了11月份的软考高级:系统分析师。 考试时间:11月9日。 今日考试。 今日考试 上午:选择题、案例题,注意记一下选择题和案例题中出现的知识点。 中午:再次整理强记一下论文框架、论文知识点 下午&…

u8g2操作流程和相关问题总结

1、下载官方源码实例 GitHub - olikraus/u8g2: U8glib library for monochrome displays, version 2 2、将目录中的csrc拷贝到工程文件夹里 3、裁剪代码 将u8x8_d_XXX.c 的文件,是自己硬件的保留,其他的都可以删掉。 4、裁剪文件的代码

Github 2024-11-05 Python开源项目日报Top10

根据Github Trendings的统计,今日(2024-11-05统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10HTML项目1TypeScript项目1系统设计指南 创建周期:2507 天开发语言:Python协议类型:OtherStar数量:241693 个Fork数量:42010 次…

Oracle视频基础1.4.4练习

1.4.4 [dbs] 删干净上次创建的bbk ll rm -f *dbf ll rm -f spfilebbk.ora clear ll创建bbk的pfile,准备对应的目录 ll strings spfilewilson.ora | more strings spfilewilson.ora > initbbk.ora :%s/wilson/bbk :%s/*\.//g :wq ll vi initbbk.ora####### 创…

跨境电商独立站怎么建?如何收款?

独立站是相对于平台电商以及近年迅猛发展的社交电商而言的。 平台站就是在亚马逊、Lazada、速卖通、Temu等电商平台上开设店铺的站点,社交电商则是依托社交媒体的流量衍生的电商平台,TikTok Shop便是典型代表。 一、什么是独立站 独立站,简…

毕设 深度学习遮挡下的人脸识别(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要4 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…