灰色关联分析(GRA)

文章目录

      • 灰色关联
      • 实现过程

灰色关联

对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。这里要注意的一点是,灰色关联分析是描述因素之间发展趋势的相似或相异程度,也就是说这里不分正影响与负影响。

实现过程

导入所需的库

import pandas as pd
import numpy as np

读入数据

data = pd.read_excel("./diabetes.xlsx")
data.head()

灰色关联分析(GRA)_第1张图片

进性数据预处理:无量纲化,在此用均值法处理。

data = data/data.mean()
data.head()

灰色关联分析(GRA)_第2张图片
关联系数计算公式:
ξ i ( k ) = min ⁡ i min ⁡ k Δ i ( k ) + ρ max ⁡ i max ⁡ k Δ i ( k ) Δ i ( k ) + ρ max ⁡ i max ⁡ k Δ i ( k ) \xi_{i}(k)=\frac{\min _{i} \min _{k} \Delta_{i}(k)+\rho \max _{i} \max _{k} \Delta_{i}(k)}{\Delta_{i}(k)+\rho \max _{i} \max _{k} \Delta_{i}(k)} ξi(k)=Δi(k)+ρmaximaxkΔi(k)miniminkΔi(k)+ρmaximaxkΔi(k)
Δ i ( k ) = ∣ y ( k ) − x i ( k ) ∣ \Delta_{i}(k)=\left|y(k)-x_{i}(k)\right| Δi(k)=y(k)xi(k)
x i x_i xi:第 i i i列数据; k k k:第 i i i列中第 k k k个值; ρ \rho ρ为分辨系数,取值为 0 ≤ ρ ≤ 1 0≤\rho≤1 0ρ1,一般取 0.5 0.5 0.5
关联度计算公式:
r i = 1 n ∑ k = 1 n ξ i ( k ) , k = 1 , 2 , … n r_{i}=\frac{1}{n} \sum_{k=1}^{n} \xi_{i}(k), \quad k=1,2, \ldots n ri=n1k=1nξi(k),k=1,2,n

# 由于DataFrame和Series无法进行混合运算,在此将数据转换为ndarray,然后进行reshape才能够进行运算
y = np.array(data.iloc[:,-1]).reshape(-1,1)
x = np.array(data.iloc[:,:-1])
# ρ取0.5
rho = 0.5
delt_k = np.abs(y-x)
delt_k
# 此最小值是二级最小值,在此相当于全局最小值,即整个delt_k中的最小值
mmin = delt_k.min()
mmax = delt_k.max()
# 计算ξ
xi_k = (mmin + rho * mmax) / (delt_k + rho * mmax)
# 按照行求均值
ri = xi_k.mean(axis=0)
ri
array([0.70049136, 0.68669945, 0.73271802, 0.72497548, 0.71074412,0.70539507, 0.65997075, 0.7326652 , 0.72569364, 0.71694221])

以上的值即为各属性对应的关联度,由此可见:关联度最高的为BMI,关联度最低的为S3。

reference:
糖尿病数据
灰色关联分析法(GRA)

你可能感兴趣的:(笔记)