灰色关联度分析-Python

师从江北

模型提出

模型的定义

关联分析步骤

关联分析例题

灰色关联综合评价

Python代码实现

import numpy as np

# 输入初始矩阵,例如[[55,24,10],[65,38,22],[75,40,18],[100,50,20]]
A = np.array(eval(input("请输入初始矩阵=")))  # 假设输入的形式是合法的Python列表形式

# 计算每一列的均值,用于数据预处理
Mean = np.mean(A, axis=0)

# 预处理:将各列数据除以对应列均值进行归一化
A_norm = A / Mean

print("预处理后的矩阵:")
print(A_norm)

# 母序列Y,这里选取第一列作为参考序列
Y = A_norm[:, 0]

# 子序列X,理论上应针对A_norm的其余列分别进行关联度计算,但现有逻辑已隐式比较所有其他列与Y
# 注意:下面的计算直接反映了所有其他列与Y列的关联度,未单独列出每个子序列的处理

# 计算各元素与母序列Y对应元素之间的绝对差值
absX0_Xi = np.abs(A_norm - np.tile(Y.reshape(-1, 1), (1, A_norm.shape[1])))

# 计算最小差a和最大差b
a = np.min(absX0_Xi)
b = np.max(absX0_Xi)

# 分辨系数,通常取值在0到1之间
rho = 0.5

# 计算灰色关联度
# 注意:这里gamma计算实际上是比较了所有列与Y列的灰色关联度,每行代表不同列与Y的关联程度
gamma = (a + rho * b) / (absX0_Xi + rho * b)

print("各列数据与母序列的平均灰色关联度分别为:")
# 打印每列(除了与自身比较的列)相对于Y的平均关联度
# 注意:由于gamma的计算方式,直接打印np.mean(gamma, axis=0)可能不是直观上期望的“每列的关联度”,而是所有比较的某种综合平均
print(np.mean(gamma, axis=0))

若有侵权,请联系作者

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘~风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值