灰色关联分析

【数学模型】灰色关联分析 数学模型-灰色关联分析 阅读详情

关联步骤分析

![[关键步骤.png]]

![[步骤分析2.png]]

  • 母序列
    (即因变量:每个子序列的变化引起母序列变化)
    评价决策问题没有具体母序列的话
    用每个对象所有指标中的最大值代替 (正向化且预处理过的)
  • 子序列
    每一列代表每个不同指标
    每一行代表不同参评对象
  • 数据预处理 (和归一化不同)
    预处理时:用指标元素除以均值(去除量纲的影响)
  • 计算灰色关联系数
    a 两级最小差 b 两级最大差
    a 每一列子序列的与母序列的差值绝对值的最小值
    b 每一列子序列的与母序列的差值绝对值的最大值
    构造得每个指标与母序列的关联系数
    ξi(k)=y(x0(k),xi(k))=a+ρb∣x0(k)−xi(k)∣+ρb\xi_i{(k)} = y(x_0(k), x_i(k)) = \frac{a + \rho_b}{|x_0(k) - x_i(k)| + \rho_b}ξi​(k)=y(x0​(k),xi​(k))=∣x0​(k)−xi​(k)∣+ρb​a+ρb​​
  • 计算关联度
    每一列关联度求平均值

典例

数据的正向化处理看 [[TOPSIS法]]一节

![[1.png]]

![[2.png]]

![[数模学习(常用模型学习)/评价决策类/灰色关联分析/3.png]]

![[4.png]]

权重就是每个指标的关联度所占总关联度的和的比例
![[5.png]]

灰色关联综合评价代码如下

import numpy as np  
  
# 输入参评数目 和 参评指标数目 字符串转化为数值  
print('请输入参评数目:')  
n = eval(input())  
print('请输入参评指标数目:')  
m = eval(input())  
  
# 输入类型矩阵  
print('请输入类型矩阵:1:极大型 2:极小型 3:中间型 4:区间型')  
kind = input().split(" ") # 输入的字符用空格分割 形成列表  
  
# 接受输入的矩阵转换为numpy数组  
print('请输入参评矩阵:')  
A = np.zeros((n, m))  # n行m列的零矩阵 (全是0的numpy数组 )  
for i in range(n):  
    A[i] = input().split(" ") # 接收每行输入的数据空格分割 形成列表  
    A[i] = list(map(float, A[i])) # 接受到的字符串列表转换为浮点数列表  
print('输入的矩阵为:\n{}'.format(A))  
  
# 都转化为极大型  
# 极小型转化为极大型  
def minTomax(maxx, x):  
    x = list(x)  # 输入的指标转化为列表  
    ans = [[(maxx - e)] for e in x]  
    return np.array(ans)  # 列表转化为numpy数组并返回  
  
  
# 中间型指标转化为极大型指标  
def midTomax(bestx, x):  
    x = list(x)  # 输入的指标转化为列表  
    h = [abs(e - bestx) for e in x]  # 计算每个指标值与最优值之间的标准差  
    M = max(h)  
    if M == 0:  
        M = 1  #防止最大差值为0 的情况  
    ans = [[1 - e / M] for e in h]  
    return np.array(ans)  
  
  
# 区间型指标转化为极大型指标  
def regTomax(lowx, highx, x):  
    x = list(x)  # 输入的指标转化为列表  
    M = max(lowx - min(x), max(x) - highx)  
    if M == 0:  
        M = 1  
    ans = []  # 初始化为空 每个向里面添加  
    for i in range(len(x)):  
        if x[i] < lowx:  
            ans.append([1 - (lowx - x[i]) / M])  
        elif x[i] > highx:  
            ans.append([1 - (x[i] - highx) / M])  
        else:  
            ans.append([1])  
    return np.array(ans)  
  
# 统一指标类型  
X = np.zeros(shape=(n, 1))  
for i in range(m):  
    if kind[i] == '1':  
        v = np.array([A[:, i]])  
    elif kind[i] == '2':  
        maxA = max(A[:, i])  
        v = minTomax(maxA, A[:, i])  
    elif kind[i] == '3':  
        print("类型三 请输入最优值")  
        bestA = eval(input())  
        v = midTomax(bestA, A[:, i])  
    elif kind[i] == '4':  
        print("类型四 输入区间[a,b]的值a:")  
        lowA = eval(input())  
        print("类型四 输入区间[a,b]的值b:")  
        highA = eval(input())  
        v = regTomax(lowA, highA, A[:, i])  
    if i == 0:  
        X = v.reshape(-1, 1)  # 自动行 1列  
    else:  
        X = np.hstack((X, v.reshape(-1, 1)))  
print("统一指标后的矩阵为:\n{}".format(X))  
  
#对正向化后的矩阵进行处理  
Mean = np.mean(X, axis=0)  # 按列求均值  
Z = X/Mean  
  
print('预处理后的矩阵为:')  
print(Z)  
  
# 构造母序列和子序列  
Y = np.max(Z,axis=1) # 按行求最大值代表母序列  
X = Z # 子序列就是预处理之后的数据矩阵  
  
#计算得分  
absX0_Xi = np.abs(X-np.tile(Y.reshape(-1,1), (1,X.shape[1])))  
b = np.max(absX0_Xi)  
a = np.min(absX0_Xi)  
rho = 0.5  
gamma = (a+b*rho)/(absX0_Xi*rho+b)  
weight = np.mean(gamma,axis=0)/np.sum(np.mean(gamma,axis=0))  
score = np.sum(X*np.tile(weight, (X.shape[0],1)),axis=1) # 未归一化的得分  
stand_S = score/np.sum(score) # 归一化的得分  
sorted_S = np.sort(stand_S)[::-1] # 排序后的得分  
index = np.argsort(stand_S)[::-1] # 排序后的得分对应的下标  
  
print("排序后的得分为:\n{}".format(sorted_S))  
print("排序后的下标为:\n{}".format(index))

输入示例
请输入参评数目:
3
请输入参评指标数目:
4
请输入类型矩阵:1: 极大型 2: 极小型 3: 中间型 4: 区间型
1 2 3 4
请输入参评矩阵:
9 10 175 120
8 7 164 80
6 3 157 90
输入的矩阵为:
[[ 9. 10. 175. 120.]
[ 8. 7. 164. 80.]
[ 6. 3. 157. 90.]]
类型三请输入最优值
165
类型四输入区间[a, b]的值 a:
90
类型四输入区间[a, b]的值 b:
100

数学建模之灰色关联分析(GRA) 本文参考的是司守奎,孙兆亮主编的数学建模算法与应用(第二版) 灰色关联分析不仅能够用做关联分析,也能够用于评价。 其具体分析步骤如下: 第一步,需要确定评价对象和参考数列。 评价对象一般指的就是待分析的各个特征组,例如需要评价一个同学的成绩,那么他的语文成绩、数学成绩、英语成绩等就是一个特征组,即一个评价对象。 参考数列有两种选择,一种是从各个特征组中抽取出各自特征最优的值,构成一个虚拟的最优方案,并将此作为参考数列,那么其他方案都是参考最优方案得出的关联系数,即能够作为方案的评价,这也很容易理解,与最优方 阅读详情

相关推荐

灰色关联分析法详解及python实践

灰色关联分析主要有两个作用,一是进行系统发展影响因素分析,诊断影响系统发展的重要因素。第二个作用就是用于综合评价问题,给出研究对象或者方案的优劣排名,可用于经营管理咨询工作。由于企业经营数据偏少,大数据方法不适用,因此,我们把企业好比一个灰色系统,挖掘有限数据的价值,对可识别的指标进行分析。本文详解灰色关联分析方法,以及基于python应用实践。

肖永威的专栏 1万+

数学建模笔记——灰色关联分析

灰色关联分析是什么 灰色关联分析同层次分析法和TOPSIS法一样,可以用来进行系统分析的方法。但与其他方法不同的是灰色关联分析对样本数量要求不高,计算量较小,且不会出现量化结果与定性分析结果不符的情况。 灰色关联分析的基本思想是根据序列曲线集合形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之则越小。 灰色关联分析怎么用 应用1 进行系统分析 第一步:画统计图 根据统计图可得以下结论: 四个变量均呈上升趋势 第二产业的增幅较为明显 第二产业和第三产业的差距在后三年相差更大

tangbiubiu的博客 3万+

如何利用python实现灰色关联分析?

什么是灰色关联分析?如何进行灰色关联度分析?如何在python中实现灰色关联分析?灰色关联分析有哪些应用场景?灰色关联分析该如何进行归一化?

theskylife的博客 7310

灰色关联分析步骤

什么是灰色关联分析 灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧密,它反映了曲线间的关联程度。 通常可以运用此方法来分析各个因素对于结果的影响程度,也可以运用此方法解决随时间变化的综合评价类问题,其核心是按照一定规则确立随时间变化的母序列,把各个评估对象随时间的变化作为子序列,求各个子序列与母序列的相关程度,依照相关性大小得出结论。 灰色关联分析的步骤 灰色关联分析的具体计算步骤如下: 第一步:确

bingbangx的博客 1万+

灰色关联分析(GRA)的理论及应用(matlab和python)

什么是灰色关联分析 灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧密,它反映了曲线间的关联程度。 通常可以运用此方法来分析各个因素对于结果的影响程度,也可以运用此方法解决随时间变化的综合评价类问题,其核心是按照一定规则确立随时间变化的母序列,把各个评估对象随时间的变化作为子序列,求各个子序列...

starter_____的博客 11万+

灰色关联分析及实践

灰色关联分析及实践1 背景2 灰色关联分析2.1 定义2.2 名称起源2.3 思想2.4 作用2.5 算法步骤2.6 评价标准2.7 应用应用1: 旅游业发展程度的影响因子应用2:哪一种产业对GDP总量影响最大?应用3:不同产业之间的协同度(关联度)3 Python实现3.1 读入数据3.2 确定参考序列和比较序列3.3 归一化处理3.4 计算灰色关联系数3.5 计算灰色关联度3.6 结论4 总结 1 背景 近期需要针对某省份十大关心的产业进行一个产业协同分析,从而分析出不同产业之间的关联程度,以及单独产业

RUC_Lee的博客 5187

【数学建模】灰色关联分析 + Matlab代码实现

灰色关联分析法的优势在于,它弥补了采用数理统计方法系统分析所导致的缺憾,对样本量的多少和样本有无规律都适用,而且计算量小,十分方便,更不会出现与定性结果不符合的情况。但是灰色关联分析仅在我国有部分学者使用,在国际上并没有得到太多认可,而且当数据量较大的时候,使用标准化回归的方法是更好的选择,只有在数据很少万不得已的情况下,才考虑灰色关联分析,当然,你也可以两者综合考虑。值得一提的是,在灰色关联分析中,母序列有多个的情况,我们只需要分开计算即可,也就是说,每一个母序列,都对应一个完整的子序列。

知不足而奋进,望远山而前行 10万+

数学建模:评价性模型学习——灰色关联分析法(GRA模型)

运用灰色关联分析(GRA)进行综合评价和系统分析,并讨论灰色关联分析法的适用条件和优缺点

weixin_67565775的博客 2万+

数学建模学习笔记:灰色关联分析

本次笔记内容内容来自清风老师的课程整理,增加了一些拓展资源以及自己的见解,如有侵权请联系删除。清风老师的数学建模课程可以在B站搜索到。 本文给出了excel和matlab两种计算灰色关联度的过程详解。 灰色关联分析概述 系统分析:一般的抽象系统包含很多影响因素,多种因素的共同作用结果决定了该系统的发展态势。如社会系统、经济系统、农业系统、生态系统、教育系统等等。 多因素之间的分析:哪些是主...

yanyanwenmeng的博客 1万+

R语言灰色关联分析法

输入数据并用DT包的datatable函数展示数据 ABDDEF分别对应第1到第6个供应商产品质量、技术水平、供应能力、经济效益、交货情况、市场影响度指标属于效益型指 产品价格、地理位置、售后服务指标属于成本型指标。现分别对上述指标进行规范化: 对于效益型指标(正项指标)标准化公式为: x∗=x−min(x)max(x)−min(x) x^{\ast}=\frac{x-min\left( x \right)}{max\left( x \right) -min\left( x \right)} x∗=max

qq_54423921的博客 7995

为什么传统CNN在视网膜分割中败给Mamba?从血管拓扑学揭秘Serp-Mamba的蛇形扫描黑科技

本文深入分析了传统CNN在视网膜血管分割任务中的局限性,特别是在处理高分辨率图像和复杂血管拓扑结构时。针对这些问题,文章重点介绍了Serp-Mamba模型的核心创新——蛇形交织自适应扫描(SIA)机制,该机制通过让扫描路径自适应地贴合血管曲率,并结合模糊驱动双重校准(ADDR)模块应对极端类别失衡,从而在视网膜血管分割任务上实现了性能的显著突破。

ss78901的博客 891

灰色关联分析——供应商选择

笔记来源链接:https://www.toutiao.com/i6818467436493275659/ 本笔记根据清风老师的课程以及《数学建模算法与应用》整理学习得到,如有侵权,请联系删除。 灰色关联分析思维导图: 灰色加权关联度(增加了权重) 灰色关联分析原理 灰色关联分析方法是基于灰色系统理论发展而来的一种综合评价和影响因素分析方法。 基本思想:通过对动态过程发展趋势...

yanyanwenmeng的博客 6265

智能车竞赛新手必看:用AD21从零画一块英飞凌TC264核心板(附开源PCB文件)

本文详细介绍了使用Altium Designer 21(AD21)从零开始设计英飞凌TC264核心板的完整流程,涵盖原理图绘制、PCB布线到最终DRC检查的全过程。针对智能车竞赛新手,提供了实用的硬件设计技巧和开源PCB文件,帮助快速掌握TC264核心板开发。

weixin_27017211的博客 246

数学建模学习:灰色关联分析

数学建模学习

m0_64319570的博客 1万+

python 编程 安卓脚本_详解基于Android的Appium+Python自动化脚本编写

1.AppiumAppium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序。通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码。下面开始Appium的配置。appPackage和APPActivity的获取任意下载一个app解压...

weixin_39523625的博客 2928

电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建

电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建

dapengglove的博客 1681

Python实现 灰色关联分析 与结果可视化

灰色系统理论提出了对各子系统进行灰色关联度分析的概念,意图透过一定的方法,去寻求系统中各子系统(或因素)之间的数值关系。因此,灰色关联度分析对于一个系统发展变化态势提供了量化的度量,非常适合动态历程分析。

FontTian的博客 5万+

ifix5.8连接ab plc的点-通过rslinx

以ifix连接ab plc的点为例 1.先在rslinx上把plc的点导出为opc server 2.使用opc power tool 作为opc client 去连接 3.保存到项目的PDB文件夹下面,并且以节点名命名。 也可以不以节点名命名,系统自动会生成一个以节点名命名的这种文件,就显得很乱。 同时,项目的PDB目录下面必须还得拷过来一个de...

中国智造2025 4110

灰色关联分析,Python实现GRA(gray relation analysis)

灰色关联分析法: 对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。 灰色关联分析,公式网上都有很多,计算也不难,这里就不写公式。 之所以称为关联,是因为他只反映哪一个指标和要对比的指标最有关系,而不反映相关性。 他和相关性系数,没有一毛钱关系,也不对等。

PY_smallH的博客 1万+

n8n AI高效工作流自动化 部署使用教程

摘要: n8n是一款开源可视化工作流自动化工具,结合AI能力可高效解决重复性任务。文章详细介绍了从Docker部署到实战应用的完整流程:1)通过Docker Compose自托管n8n,确保数据可控;2)以AI客服日报机器人为例,演示如何串联工单系统、ChatGPT和邮件通知,实现定时自动化;3)进阶搭建交互式AI助手,利用ToolsAgent节点调用业务API;4)整合向量数据库构建RAG知识库问答。关键建议包括:拆分复杂工作流、严格管理凭据、区分开发与生产环境,并建议从高频刚性需求(如日报生成)切入,逐

专注AI大模型,软件混淆,授权 265

二、Windows安装Docker到非C盘的全新教程(Windows版)

Windows安装Docker到非C盘的全新教程(Windows版)

funfan的博客 4万+
上一篇: TOPSIS法
下一篇: 平衡二叉树插入节点的小技巧
ByteMaster_
博客等级 码龄3年 328粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值