灰色系统理论[1]在各个领域中有着重要的应用。灰色关联[1]是灰色系统模型中高效的建模工具,下面我们将使用Python来实现灰色关联度。虽然已经有很多灰色关联的实现代码,在这个代码中,我们不使用循环语句,使得代码相对简单一些。
import numpy as np
index1 = [3439, 4002, 4519, 4995, 5566];# Reference sequence
index2 = [341, 409, 556, 719, 903];# Comparative sequences
index3 = [183, 196, 564, 598, 613];# Comparative sequences
index4= [3248, 3856, 6029, 7358, 8880];# Comparative sequences
x=np.array([index1,index2,index3,index4]);
normalization_x=np.multiply(x,(1/(np.tile(np.array(x[:,0]),(x.shape[1],1)))).T)# Normalized by initial value.
ck=normalization_x[0,:]
cp=normalization_x[1:,:]
t=cp-np.tile(ck,(cp.shape[0],1))
Maximum=abs(t).max().max()
Minimum=abs(t).min().min()
ksi=((Minimum+0.5*Maximum)/(abs(t)+0.5*Maximum))
GCC=np.sum(ksi,axis=1)/ksi.shape[1]#Grey relational grade.
print(GCC)
灰色关联度的具体实现请参见 [1] S. F. Liu, Y. J. Yang, J. Forrest, Grey Data Analysis: Methods, Models and Applications, Springer-Verlag, Singapore.,2017.