news 2026/6/11 19:09:32

灰色预测模型(GM) 神经网络 指数平滑 多项式拟合 线性回归 各种预测模型dai做,写完整预测报告

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
灰色预测模型(GM) 神经网络 指数平滑 多项式拟合 线性回归 各种预测模型dai做,写完整预测报告

灰色预测模型(GM) 神经网络 指数平滑 多项式拟合 线性回归 各种预测模型dai做,写完整预测报告,可提供图表与代码

预测模型的世界里,工具比超市货架上的泡面种类还多。今天咱们扒开几个常用模型的底裤,看看到底怎么玩转这些数学魔术。先上个全家福:线性回归、指数平滑、灰色预测、神经网络、多项式拟合,最后整点硬核代码演示。

先拿线性回归开刀。这玩意儿就像炒菜放盐,基础但容易翻车。看这段代码:

import numpy as np from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt x = np.array([i for i in range(20)]).reshape(-1,1) y = 3*x.ravel() + np.random.normal(0, 5, 20) model = LinearRegression() model.fit(x, y) pred = model.predict([[20],[21]]) plt.scatter(x, y, color='black') plt.plot(np.append(x, [[20],[21]]), np.append(model.predict(x), pred), color='blue', linewidth=3) plt.title("线性回归预测") plt.show()

这段代码的关键在数据变形。reshape(-1,1)把一维数组变成二维矩阵,这是sklearn的强制要求。预测时直接塞进新数据点就能看到未来走势。注意随机噪声的设置,标准差5让数据点看起来更真实,避免拟合出完美直线的尴尬。

接着是时间序列老司机指数平滑。Holt-Winters三剑客参数玩得溜,预测效果能上天:

from statsmodels.tsa.holtwinters import ExponentialSmoothing # 生成带趋势的数据 data = [i*0.5 + np.random.randn()*2 for i in range(30)] model = ExponentialSmoothing(data, trend='add', seasonal=None).fit() forecast = model.forecast(5) plt.plot(data, label='真实数据') plt.plot(model.fittedvalues, label='拟合值') plt.plot(range(30,35), forecast, label='预测值', linestyle='--') plt.legend() plt.show()

trend='add'参数指定加法趋势,适合数据波动幅度稳定的场景。fittedvalues属性藏着模型对历史数据的拟合结果,和原始数据一对比就能看出平滑效果。注意季节性参数设为None是因为我们的假数据没做季节特征。

灰色预测模型(GM) 神经网络 指数平滑 多项式拟合 线性回归 各种预测模型dai做,写完整预测报告,可提供图表与代码

灰色预测GM(1,1)是个怪胎,专治小样本疑难杂症。来看怎么用python调教它:

def GM11(data, predict_num=3): # 累加生成 AGO = np.cumsum(data) # 构造矩阵B B = np.array([-0.5*(AGO[i] + AGO[i+1]) for i in range(len(data)-1)]).reshape(-1,1) Y = data[1:].reshape(-1,1) # 计算参数 u = np.dot(np.linalg.inv(np.dot(B.T, B)), np.dot(B.T, Y)) a, b = u[0][0], u[1][0] # 预测方程 pred = [(data[0]-b/a)*np.exp(-a*k) + b/a for k in range(len(data)+predict_num)] # 累减还原 return [pred[i+1] - pred[i] for i in range(len(pred)-1)] origin = [12.8, 15.4, 16.7, 17.9, 19.6] result = GM11(origin, 2) print(f"未来两期预测值:{result[-2:]}")

这个实现里有两个骚操作:累加生成把原始数据转化成单调递增序列,累减还原又把结果打回原形。参数计算用最小二乘法,核心是那个微分方程的解。注意指数项里的k值控制预测步长,适合做短期预测。

神经网络登场时总要带点神秘感。用keras搭个简单时序预测网络:

from keras.models import Sequential from keras.layers import LSTM, Dense # 数据预处理 def create_dataset(data, look_back=3): X, Y = [], [] for i in range(len(data)-look_back): X.append(data[i:(i+look_back)]) Y.append(data[i+look_back]) return np.array(X), np.array(Y) data = np.sin(np.arange(0, 20, 0.1)) * 10 + np.random.normal(0, 0.5, 200) X, y = create_dataset(data, look_back=5) X = X.reshape(X.shape[0], X.shape[1], 1) model = Sequential() model.add(LSTM(32, input_shape=(5,1))) model.add(Dense(1)) model.compile(loss='mse', optimizer='adam') model.fit(X, y, epochs=50, batch_size=16, verbose=0) # 预测未来5步 last_seq = data[-5:].reshape(1,5,1) predictions = [] for _ in range(5): pred = model.predict(last_seq)[0,0] predictions.append(pred) last_seq = np.append(last_seq[:,1:,:], [[[pred]]], axis=1)

LSTM层的记忆功能是时序预测的核心,32个神经元就像32个记忆抽屉。注意预测时的滚雪球操作——每次预测结果都作为下一次输入的部分数据,这种递归预测容易产生误差累积,适合短期预测。

最后来个多项式拟合调节下气氛:

from sklearn.preprocessing import PolynomialFeatures x = np.arange(0, 10, 0.5) y = 0.3*x**3 - 2*x**2 + 4*x + np.random.normal(0, 3, 20) poly = PolynomialFeatures(degree=3) x_poly = poly.fit_transform(x.reshape(-1,1)) model = LinearRegression() model.fit(x_poly, y) xx = np.linspace(0,12,50) xx_poly = poly.transform(xx.reshape(-1,1)) pred = model.predict(xx_poly) plt.scatter(x, y, color='gray') plt.plot(xx, pred, color='red', linewidth=2) plt.axvline(x=10, color='green', linestyle='--') plt.title("多项式外推预警")

degree=3指定三次多项式,这个参数要是手抖调到10,立马给你画出心电图。绿色虚线右侧是外推区域,多项式拟合在外推时容易放飞自我,这个案例提醒我们:模型装逼过头,预测容易扑街。

走完这趟模型之旅,该明白没有银弹模型。数据规律明显时线性回归能打,需要捕捉趋势选指数平滑,小样本难题找灰色预测,复杂模式上神经网络,曲线波动试试多项式。工具人工具箱里多备几把刷子,面对不同场景才能游刃有余。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 19:02:37

UABEA:Unity资源处理的技术革新与效率革命

UABEA:Unity资源处理的技术革新与效率革命 【免费下载链接】UABEA UABEA: 这是一个用于新版本Unity的C# Asset Bundle Extractor(资源包提取器),用于提取游戏中的资源。 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA …

作者头像 李华
网站建设 2026/6/11 19:00:44

寻音捉影·侠客行高算力优化:FunASR模型量化压缩,内存占用降低65%

寻音捉影侠客行高算力优化:FunASR模型量化压缩,内存占用降低65% 在音频处理领域,实时语音识别和关键词检索一直是个计算密集型任务。传统的语音识别模型往往需要大量的内存和计算资源,这让很多普通设备难以承受。今天我们要介绍的…

作者头像 李华
网站建设 2026/5/18 22:48:02

ANIMATEDIFF PRO快速部署:RTX显卡一键启动,告别环境配置烦恼

ANIMATEDIFF PRO快速部署:RTX显卡一键启动,告别环境配置烦恼 1. 为什么选择ANIMATEDIFF PRO 在AI视频生成领域,大多数工具要么需要复杂的配置过程,要么生成质量难以满足专业需求。ANIMATEDIFF PRO的出现改变了这一现状&#xff…

作者头像 李华
网站建设 2026/5/18 22:47:59

Rust + WebAssembly 新手完全入门指南

Rust WebAssembly 新手完全入门指南 这篇文章面向前端、Rust 开发者,只要跟着步骤就能跑通你的第一个 WebAssembly 前端组件。 WebAssembly 是什么 WebAssembly(简称 Wasm)是一种可在现代浏览器中运行的低级、紧凑、高效的二进制指令格式…

作者头像 李华
网站建设 2026/5/18 22:47:49

【0基础学机器学习】2.决策树

决策树模型笔记 1. 基础知识 基本模型形式 决策树是一种常见的监督学习模型,既可以做分类,也可以做回归。它通过一系列“如果…那么…”的规则不断划分特征空间,最终在叶子节点给出预测结果。 对于分类任务,模型会根据样本特征逐层…

作者头像 李华