灰色预测模型

正如其名,是一种预测的方法,可用于解决众多的预测问题。为什么会叫灰色呢?正如我们计算机领域中有着黑客、白客、灰客,对应不同的法律触及范围,灰色代表一个模糊的地带。灰色预测代表对一个既含已知信息又含未知信息的系统预测。

灰色关联度

这么看可能有点看不懂,那就来看看实例:

参考数列一般取各个指标最优解。

一般取0.5就可以了。

基本流程

数据检验及处理 -> 建立GM模型

1.数据检验及处理

2.建立GM模型

灰色生成数列

在一些原始数据中,其排布形式其实是杂乱无章的无法进行下一步预测。但是如果对数据进行特殊处理,生成有规律的函数后就方便预测了,将预测后的数据进行特殊处理的逆操作就可以得到原始数据的变化规律了。

一般分为三种:

累加和累减生成就是互为逆操作。

灰色模型

总步骤:(看不懂没关系会用就行)

3.残差检验

实际代码用起来还是挺简单的:

复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 加载数据
file_path = r'D:\Studying Resources\数学建模\01 90多种常用数学建模算法代码汇总!\基础算法\processed_data_with_topsis.xlsx'
data = pd.read_excel(file_path)

# 数据标准化
def normalize(df):
    return df / df.max()

# 计算灰色关联度
def grey_relational_coefficient(df, reference=None):
    if reference is None:
        reference = df.max()  # 选取各列的最大值作为参考序列
    n_samples, n_features = df.shape
    df_normalized = normalize(df)
    reference_normalized = normalize(reference)

    # 计算关联度
    xi = df_normalized.to_numpy()
    xr = reference_normalized.to_numpy()
    xi_minus_xr = np.abs(xi - xr)

    rho = 0.5  # 分辨系数,通常取值为0.5
    delta_min = np.min(xi_minus_xr)
    delta_max = np.max(xi_minus_xr)

    GR = (delta_min + rho * delta_max) / (xi_minus_xr + rho * delta_max)
    GR_mean = np.mean(GR, axis=1)
    return GR_mean


# 执行灰色关联分析
gra_scores = grey_relational_coefficient(data)

# 添加灰色关联分析得分到原始数据
data['GRA_Score'] = gra_scores

# 可视化灰色关联分析得分
plt.figure(figsize=(10, 6))
plt.bar(data.index, data['GRA_Score'], color='lightgreen')
plt.xlabel('Sample Index')
plt.ylabel('GRA Score')
plt.title('Grey Relational Analysis Scores of Samples')
plt.show()

# 保存结果
output_path = r'scored_data_with_gra.xlsx'
data.to_excel(output_path, index=False)
print("数据已处理并保存至:", output_path)
相关推荐
DeepVisionary15 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
ZGIAI15 小时前
ZGI Workflow:条件分支走错时先查哪一层
人工智能·架构
X54先生(人文科技)15 小时前
《元创力》纪实录 · 桥段 《窑变纪元:一份来自星历2227年的深空考古笔记》
人工智能·开源·ai写作·零知识证明
ZGIAI15 小时前
ZGI 文件产物:生成报告后怎样交付
人工智能·架构
东方-教育技术博主15 小时前
自动编码在教育场景中的重要性:一项基于多源证据的深度综述
大数据·人工智能
骥龙15 小时前
模块二:Ollama本地模型部署与OpenCode代理配置
人工智能
阡之尘埃15 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
Regentsoft丽晶软件15 小时前
品牌方新品上市促销政策无法实时同步经销商,有没有支持总部-经销商-终端一站式的分销解决方案?
人工智能·经验分享·数据库架构
liuqs33215 小时前
机器人产业加速发展,制造业正在迎来新的自动化探索
大数据·人工智能
腾讯云大数据15 小时前
DataBuddy数据语义驱动的企业Agent Runtime实践
大数据·人工智能·腾讯云·agent