python计算灰色关联度
1. 初值法
import pandas as pd
import os
os.chdir(r"E:\BaiduNetdiskDownload\数据") #指定路径x=pd.read_excel("灰色关联度1.xlsx", encoding='utf8')
x=x.T# 1、数据初值化处理
x_mean=x.mean(axis=1)
for i in range(x.index.size):x.iloc[i,:] = x.iloc[i,:]/x.iloc[i,0]
print(x)
# 2、提取参考队列和比较队列
ck=x.iloc[0,:]
cp=x.iloc[1:,:]# 比较队列与参考队列相减
t=pd.DataFrame()
for j in range(cp.index.size):temp=pd.Series(cp.iloc[j,:]-ck)t=t.append(temp,ignore_index=True)#求最大差和最小差
mmax=t.abs().max().max()
mmin=t.abs().min().min()
rho=0.5
#3、求关联系数
ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))#4、求关联度
r=ksi.sum(axis=1)/ksi.columns.size#5、关联度排序,得到结果r3>r2>r1
result=r.sort_values(ascending=False)
2. 均值法
import pandas as pd
import os
os.chdir(r"E:\BaiduNetdiskDownload\数据") #指定路径
x=pd.read_excel("灰色关联度1.xlsx", encoding='utf8')
x=x.iloc[:,0:].T# 1、数据均值化处理
x_mean=x.mean(axis=1)
for i in range(x.index.size):x.iloc[i,:] = x.iloc[i,:]/x_mean[i]
print(x)# 2、提取参考队列和比较队列
ck=x.iloc[0,:]
cp=x.iloc[1:,:]# 比较队列与参考队列相减
t=pd.DataFrame()
for j in range(cp.index.size):temp=pd.Series(cp.iloc[j,:]-ck)t=t.append(temp,ignore_index=True)#求最大差和最小差
mmax=t.abs().max().max()
mmin=t.abs().min().min()
rho=0.5
#3、求关联系数
ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))#4、求关联度
r=ksi.sum(axis=1)/ksi.columns.size#5、关联度排序,得到结果r3>r2>r1
result=r.sort_values(ascending=False)
3. 差值法
import pandas as pd
import os
os.chdir(r"E:\BaiduNetdiskDownload\数据") #指定路径
x=pd.read_excel("灰色关联度1.xlsx", encoding='utf8')
x = (x - x.min())/(x.max() - x.min())
x=x.T# 2、提取参考队列和比较队列
ck=x.iloc[0,:]
cp=x.iloc[1:,:]# 比较队列与参考队列相减
t=pd.DataFrame()
for j in range(cp.index.size):temp=pd.Series(cp.iloc[j,:]-ck)t=t.append(temp,ignore_index=True)#求最大差和最小差
mmax=t.abs().max().max()
mmin=t.abs().min().min()
rho=0.5
#3、求关联系数
ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))#4、求关联度
r=ksi.sum(axis=1)/ksi.columns.size#5、关联度排序,得到结果r3>r2>r1
result=r.sort_values(ascending=False)
数据写出
data = ksi
data.columns = ["a","b","c","d","e"] #为列重命名
#data.columns = list("abcd") 此种方法也可
data["关联度"] = r #为新列赋值
data.to_excel("灰色关联系数关联度.xlsx", sheet_name="sheet1", index= False,encoding="utf-8")
python计算灰色关联度相关推荐
- python做灰色关联度分析_python实现灰色关联
灰色关联分析(Grey Relational Analysis, GRA) 通常可以运用此方法来分析各个因素对于结果的影响程度,也可以运用此方法解决随时间变化的综合评价类问题,其核心是按照一定规则确立 ...
- python做灰色关联度分析_python实现灰色关联分析(GRA)——以红酒质量指标为例
目录 程序简述 数据集截图 程序/数据集下载 核心代码解析 Module/BuildModel.py(接口,可以直接运行) 接口调用.运行效果 Main.py 程序简述 对红酒质量指标数据进行灰色关联 ...
- python做灰色关联度分析_【数学建模】通过python实现灰色关联度计算
1.关联分析 关联分析主要作用为对系统的因素进行分析,其主要作用为分辨因素中哪些因素对系统的影响是显著的,哪些影响是次要的.通常而言因素分析的主要方式为回归分析等,但其存在数据量要求大,计算量大等诸多 ...
- Python综合评价模型(二)灰色关联度法
文章目录 第一步 导入第三方库和案例数据 第二步 标准化数据 第三步 确定参考数列 第四步 计算指标数列与参考数列的差(绝对值) 第五步 计算灰色关联系数 第六步 计算灰色关联度 方式1 求灰色关联系 ...
- Python灰色关联度
设系统行为序列 X0=(x0(1),x0(2),⋯,x0(n))X1=(x1(1),x1(2),⋯,x1(n))⋯⋯Xi=(xi(1),xi(2),⋯,xi(n))⋯⋯Xm=(xm(1),xm(2), ...
- 如何利用python实现灰色关联分析?
1.灰色关联分析简介 灰色系统这个概念是相对于白色系统和黑色系统而言的.从控制论的知识里,颜色一般代表对于一个系统我们已知信息的多少,白色代表信息量充足,黑色代表我们其中的构造并不清楚的系统,而灰色介 ...
- 灰色关联度分析excel步骤_技术 | 基于灰色关联与粗糙依赖度的甘肃兰州市区泥石流危险性评价...
泥石流危险性是指在人类及所在环境中一切事物遭受泥石流损害的可能性大小.作为防灾减灾中泥石流灾害管理的重要一环,泥石流的危险性评估是泥石流灾害防治决策的前提.学者们普遍认为通过泥石流风险评估和风险管理, ...
- 数学建模-灰色关联度分析原理笔记
文章目录 灰色关联分析法简介 步骤 画统计图,进行简单分析 确定分析数列 对变量进行预处理 计算子序列中各个指标与对应母指标的关联系数 计算灰色关联度 得到结论 讨论 评价类问题完整分析步骤(该方法) ...
- Python 灰色关联度分析 与结果可视化
前言 1.Python 灰色关联度分析 采用一个示例,简单分析一下. 灰色关联度分析是 度量两条曲线的形态和走势是否相近 本文是在前文的基础上,进行结果可视化展示. 程序 读数据 import pan ...
最新文章
- IDEA高级用法:集成JIRA、UML类图插件、SSH、FTP、Database管理...
- rtc关机闹钟6 AlarmManagerService研究
- 【maven install报错】Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war
- 三相阻容降压供电DCDC电源
- 谈论AI之前,你搞懂人类了吗?(颠覆认知)
- java ==陷阱_Java小陷阱
- 手把手带你入门 Docker Compose
- 【渝粤教育】国家开放大学2018年春季 3922T汽车运用基础 参考试题
- MySQL数据库数据存放位置修改
- java记事本的代码_Java基础——第一个记事本代码与Java注释
- Sqlite数据库对时间进行比较SQL语句
- vue中获取后一页面,前一页面的url
- python 浏览器 弹 另存为_selenium webdriver 右键另存为下载文件(结合robot and autoIt)...
- PCB工艺多层盲孔板+树脂塞孔工艺——深亚电子
- DirectSound初步教程
- shell学习杂记(-)
- ColorOS怎么切换Android,OPPO怎么升级ColorOS11 OPPO升级ColorOS11方法
- 关于AJAX开发技巧的想法
- Logback 日志打印格式思考
- 知乎live:高效学习计算机专业课程 笔记