Python 灰色关联度分析

前言

关联度:对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度.
灰色关联度分析(Grey Relation Analysis,GRA),是一种多因素统计分析的方法,是一种对影响目标序列的相关因素进行定量分析的模型。

本文采用一个示例,简单分析一下。

数据集

链接: https://pan.baidu.com/s/1pmPSvoZ-9wYRrPbFFKM_-w 提取码: obo2

程序


import pandas as pd
x=pd.read_excel('data.xlsx')
x=x.iloc[:,:].T
print(x)


# 1、数据均值化处理
x_mean=x.mean(axis=1)
for i in range(x.index.size):
    x.iloc[i,:] = x.iloc[i,:]/x_mean[i]

"""
# 1、数据差值化处理
x = (x - x.min())/(x.max() - x.min())
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]
    
    
"""

# 2、提取参考队列和比较队列
ck=x.iloc[0,:]
print(" 参考队列:", ck)
cp=x.iloc[1:,:]
print(" 参考队列:" ,cp)


# 比较队列与参考队列相减
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.4

#3、求关联系数
ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))


#4、求关联度
r=ksi.sum(axis=1)/ksi.columns.size

#5、关联度排序,得到结果
result=r.sort_values(ascending=False)

print(r)

总结

  • 基本原理就是将已知的目标序列数据和比较序列(即影响目标序列的因素所构成的序列)数据进行无量纲化处理之后,通过对比各个序列对目标序列的数据增长或减少的相似或相异程度来判断各个因素对目标序列的影响结果。
  • 度量两条曲线的形态和走势是否相近

你可能感兴趣的:(Python基础学习,机器学习算法研究,python,灰色关联度)