灰色关联法 —— python
目录
1.简介
2.算法详解
2.1 数据标准化
2.2 计算灰色相关系数
2.3 计算灰色关联度系数
3.实例分析
3.1 读取数据
3.2 数据标准化
3.3 绘制 x1,x4,x5,x6,x7 的折线图
3.4 计算灰色相关系数
完整代码
1.简介
对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。
灰色关联分析可以用于衡量因素相关程度的同时,也有论文将其用于综合评价,其原理思想和TOPSIS法是比较相似的。
2.算法详解
2.1 数据标准化
因为每个指标的数量级不一样,需要把它们化到同一个范围内再比较。标准化的方法比较多,这里仅用最大最小值标准化方法。
设标准化后的数据矩阵元素为rij,由上可得指标正向化后数据矩阵元素为 (Xij)'
2.2 计算灰色相关系数
我们常见的灰色相关系数表达式如下:
Xo(k)为参考列,p为分辨系数。它的范围为(0~1),它的作用为控制区分度,它的值越小,区分度越大,它的值越大,区分度越小。 常常取0.5。乍一看这个公式还是有些难懂,接下来详细介绍一下它的原理。
2.3 计算灰色关联度系数
- 参考向量的选择
例如研究x2指标与x1指标之间的灰色关联度。所以将x1列作为参考向量,即要研究与谁的关系,就将谁作为参考。设参考向量为Y1=x1,生成新的数据矩阵 X1=x2.
- 生成绝对值矩阵
设生成的绝对值矩阵为A
A=[X1-Y1],亦是A=[x2-x1]
设dmax为绝对值矩阵A的最大值,dmin为绝对值矩阵A的最小值。
计算灰色关联矩阵
设灰色关联矩阵为B
- 计算灰色关联度
3.实例分析
其中指标,x1:货物运输量;x2:港口货物吞吐量;x3:货物周转量;x4:GDP;x5:财政收入x6:城市居民人均可支配收入;x7:农村居民人均净收入。现研究x4-x7指标与x1指标之间的灰色关联度。数据表格如下:
年份 | x1 | x2 | x3 | x4 | x5 | x6 | x7 |
2007 | 22578 | 27569 | 4987 | 2567.7 | 267.98 | 1.5429 | 1.172 |
2008 | 25698 | 29484 | 5048 | 3131 | 348.51 | 1.8546 | 1.2514 |
2009 | 27896 | 31589 | 5129 | 3858.2 | 429.1 | 2.0369 | 1.0254 |
2010 | 29540 | 34894 | 5569 | 4417.7 | 541.29 | 2.2589 | 1.189 |
2011 | 31058 | 36478 | 5783 | 5158.1 | 647.25 | 2.4276 | 1.4213 |
2012 | 35980 | 38695 | 6045 | 6150.1 | 736.45 | 2.5678 | 1.5304 |
2013 | 39483 | 40746 | 6259 | 7002.8 | 850 | 2.8546 | 1.7421 |
3.1 读取数据
#导入数据
data=pd.read_excel('D:\桌面\huiseguanlian.xlsx')
print(data)
#提取变量名 x1 -- x7
label_need=data.keys()[1:]
print(label_need)
#提取上面变量名下的数据
data1=data[label_need].values
print(data1)
返回:
3.2 数据标准化
#0.002~1区间归一化
[m,n]=data1.shape #得到行数和列数
data2=data1.astype('float')
data3=data2
ymin=0.002
ymax=1
for 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)
返回:
3.3 绘制 x1,x4,x5,x6,x7 的折线图
t=range(2007,2014)
plt.plot(t,data3[:,0],'*-',c='red')
for i in range(4):plt.plot(t,data3[:,2+i],'.-')
plt.xlabel('year')
plt.legend(['x1','x4','x5','x6','x7'])
plt.title('灰色关联分析')
返回:
从图中可以看出,这几个指标的趋势大致相同
3.4 计算灰色相关系数
3.4.1 得到其他列和参考列相等的绝对值
# 得到其他列和参考列相等的绝对值
for i in range(3,7):data3[:,i]=np.abs(data3[:,i]-data3[:,0])
3.4.2 得到绝对值矩阵的全局最大值和最小值
#得到绝对值矩阵的全局最大值和最小值
data4=data3[:,3:7]
d_max=np.max(data2)
d_min=np.min(data2)
3.4.3 定义分辨系数
a=0.5
3.4.4 计算灰色关联矩阵
data4=(d_min+a*d_max)/(data4+a*d_max)
xishu=np.mean(data4, axis=0)
print(' x4,x5,x6,x7 与 x1之间的灰色关联度分别为:')
print(xishu)
返回:
完整代码
#导入相关库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 解决图标题中文乱码问题
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
#导入数据
data=pd.read_excel('D:\桌面\huiseguanlian.xlsx')
# print(data)
#提取变量名 x1 -- x7
label_need=data.keys()[1:]
# print(label_need)
#提取上面变量名下的数据
data1=data[label_need].values
print(data1)
#0.002~1区间归一化
[m,n]=data1.shape #得到行数和列数
data2=data1.astype('float')
data3=data2
ymin=0.002
ymax=1
for 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)
# 绘制 x1,x4,x5,x6,x7 的折线图
t=range(2007,2014)
plt.plot(t,data3[:,0],'*-',c='red')
for i in range(4):plt.plot(t,data3[:,2+i],'.-')
plt.xlabel('year')
plt.legend(['x1','x4','x5','x6','x7'])
plt.title('灰色关联分析')
# 得到其他列和参考列相等的绝对值
for i in range(3,7):data3[:,i]=np.abs(data3[:,i]-data3[:,0])
#得到绝对值矩阵的全局最大值和最小值
data4=data3[:,3:7]
d_max=np.max(data2)
d_min=np.min(data2)
a=0.5 #定义分辨系数
# 计算灰色关联矩阵
data4=(d_min+a*d_max)/(data4+a*d_max)
xishu=np.mean(data4, axis=0)
print(' x4,x5,x6,x7 与 x1之间的灰色关联度分别为:')
print(xishu)
灰色关联法 —— python相关推荐
- python实现灰色关联法(GRA)
原文:https://mp.weixin.qq.com/s/Uuri-FqRWk3V5CH7XrjArg 1 灰色关联分析法简介 白色系统是指信息完全明确的系统,黑色系统是指信息不完全明确的系统,而灰 ...
- 灰色关联法 —— matlab
目录 1.简介 2.算法详解 2.1 数据标准化 2.2 计算灰色相关系数 2.3 计算灰色关联度系数 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 绘制 x1,x4,x5,x6,x7 ...
- 灰色预测法 —— python
目录 1.简介 2.算法详解 2.1 生成累加数据 2.2 累加后的数据表达式 2.3 求解2.2的未知参数 3.实例分析 3.1 导入数据 3.2 进行累加数据 3.3 求解系数 3.4 预测数据 ...
- 灰色关联与TOPSIS法 —— python
目录 1.简介 2.算法详解 2.1 指标正向化及标准化 2.2 找到最大最小参考向量 2.3 计算与参考向量的相关系数 2.4 求评分 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 得 ...
- 灰色关联分析法详解及python实践
1. 关于灰色关联分析 1.1. 什么是灰色关联分析 灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧 ...
- python灰色关联度分析_灰色关联分析法 python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文2290字,预计阅读需10分钟: 关联分析(association anal ...
- 灰色关联与TOPSIS法 —— matlab
目录 1.简介 2.算法详解 2.1 指标正向化及标准化 2.2 找到最大最小参考向量 2.3 计算与参考向量的相关系数 2.4 求评分 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 得 ...
- 灰色关联分析(GRA)的理论及应用(matlab和python)
什么是灰色关联分析 灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧密,它反映了曲线间的关联程度. 通 ...
- 综合评价与决策方法04——灰色关联分析法
综合评价与决策方法04--灰色关联分析法 顶!!! 数学建模 综合评价与决策方法04--灰色关联分析法 前言 一.灰色关联分析法 肝!!! 前言 评价方法大体上可分为两类,其主要区别在确定权重的方法上 ...
最新文章
- java for i i 区别,i ++amp;和i ++之间的区别是什么? ++我在for循环(Java)?
- 关于 SQL Server Analysis Services
- 为什么谐振时电抗为0_高压直流输电(LCC-HVDC 和 MMC-HVDC)中平波电抗器的作用和选择策略...
- 【P1714】切蛋糕(单调队列)
- 我能想到的圆角背景的实现方法
- python应聘的职位_Python学到哪种程度可以去应聘相关的职位了?
- 【信号处理第十二章】转置卷积
- 科学计算机怎么算定积分,定积分计算方法的归纳和分析
- FPGA 之 SOPC 系列(七)NIOS II 高级技术
- [精简整理]疏通中国历史脉络——“隋、唐(五代十国)”篇
- python构建决策引擎_决策引擎与机器学习模型的集成 | 信数这么干(一)
- 救世之树服务端架设开服需要哪些东西
- 原腾讯QQ空间负责人,T13专家,黄希彤被爆近期被裁员,裁员原因令人唏嘘。。...
- MIGO BAPI_GOODSMVT_CREATE创建及增强
- java: 非法字符: ‘\ufeff‘解决方法
- signature=37615ca45efe9600a605bfc580bf67ea,止痛药双氯芬酸会显著增加心脏病中风风险
- 约束满足问题(CSP)
- Prim / Kruskal - 局域网 - 洛谷 P2820
- CentOS7双网卡导致无法访问外网
- S5PV210(TQ210)裸机编程
热门文章
- win7的开机启动项怎么管理 win7管理开启启动项的方法
- Win11怎么从Dev渠道换Beta渠道?Win11从Dev渠道换Beta渠道的方法
- 网页打开微信公众号关注界面
- @PostConstruct注解详解
- java用XSSFWorkbook实现读写Excel
- java程序开发步骤
- iperf测试带宽linux,iperf3-网络带宽性能测试工具
- vts传感器采取船舶的_详解虎门大桥监测系统:传感器与物联网功不可没
- 台式电脑可以连wifi吗_不使用WIFI,手机也可以通过电脑的网络上网
- linux 命令行看图片,骚操作:用终端打开图片