关于 neural-networks-forecasting
面向供应链预测工作的神经网络预测技能,介绍用深度学习捕捉需求数据中的时间模式、季节性和非线性关系。涵盖 LSTM、Transformer、TCN 与模型集成。
主要功能
- 01LSTM 需求预测
- 02Transformer 多步预测
- 03TCN 膨胀卷积预测
- 04集成多个神经网络模型
- 05TensorFlow/Keras 与 PyTorch
适用场景
- 01预测具有复杂时间模式的需求
- 02生成多个预测期的需求结果
- 03组合多个神经网络的预测
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ kishorkukreja/ awesome-supply-chain --skill neural-networks-forecasting安装后在 Claude Code 中输入/neural-networks-forecasting确认已加载。
详细介绍
用于预测的神经网络
你擅长将神经网络和深度学习应用于供应链预测。你的目标是构建复杂的深度学习模型(LSTM、GRU、Transformers),以捕捉需求数据中的复杂时间模式、季节性和非线性关系。
初步评估
- 数据量:数据是否充足?(神经网络需要 1000+ 个样本)
- 模式:是否存在复杂的非线性关系或长期依赖?
- 特征:多变量还是单变量?
- 预测范围:短期还是长期预测?
- 资源:是否有可用于训练的 GPU?
用于需求预测的 LSTM
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import matplotlib.pyplot as plt
class LSTMForecaster:
"""
LSTM-based demand forecasting
"""
def __init__(self, sequence_length=30, forecast_horizon=7):
self.seq_len = sequence_length
self.horizon = forecast_horizon
self.model = None
def build_model(self, n_features):
"""Build LSTM architecture"""
model = keras.Sequential([
# First LSTM layer
layers.LSTM(128, return_sequences=True,
input_shape=(self.seq_len, n_features)),
layers.Dropout(0.2),
# Second LSTM layer
layers.LSTM(64, return_sequences=True),
layers.Dropout(0.2),
# Third LSTM layer
layers.LSTM(32, return_sequences=False),
layers.Dropout(0.2),
# Output layer
layers.Dense(32, activation='relu'),
layers.Dense(self.horizon)
])
model.compile(
optimizer=keras.optimizers.Adam(learning_rate=0.001),
loss='mse',
metrics=['mae']
)
return model
用于多步预测的 Transformer
class TransformerForecaster:
"""
Transformer with self-attention for forecasting
"""
def build_model(self, seq_len, n_features, horizon):
inputs = layers.Input(shape=(seq_len, n_features))
# Positional encoding
x = self.positional_encoding(inputs)
# Multi-head attention
attention_output = layers.MultiHeadAttention(
num_heads=8,
key_dim=64
)(x, x)
x = layers.Add()([x, attention_output])
x = layers.LayerNormalization()(x)
# Feed-forward
ff = layers.Dense(256, activation='relu')(x)
ff = layers.Dense(n_features)(ff)
x = layers.Add()([x, ff])
x = layers.LayerNormalization()(x)
# Output
x = layers.GlobalAveragePooling1D()(x)
x = layers.Dense(128, activation='relu')(x)
outputs = layers.Dense(horizon)(x)
model = keras.Model(inputs, outputs)
model.compile(optimizer='adam', loss='mse')
return model
时间卷积网络(TCN)
class TCNForecaster:
"""
TCN with dilated convolutions
"""
def build_tcn_block(self, x, filters, kernel_size, dilation_rate):
# Dilated causal convolution
conv = layers.Conv1D(
filters=filters,
kernel_size=kernel_size,
padding='causal',
dilation_rate=dilation_rate,
activation='relu'
)(x)
conv = layers.Dropout(0.2)(conv)
# Residual connection
if x.shape[-1] != filters:
x = layers.Conv1D(filters, 1)(x)
return layers.Add()([x, conv])
神经网络集成
def ensemble_forecast(models, X_test):
"""
Combine predictions from multiple NN models
"""
predictions = []
for model in models:
pred = model.predict(X_test)
predictions.append(pred)
# Average ensemble
ensemble_pred = np.mean(predictions, axis=0)
return ensemble_pred
工具和库
TensorFlow/Keras:深度学习PyTorch:灵活的神经网络N-BEATS:专用预测神经网络DeepAR:概率预测
相关技能
- demand-forecasting:传统方法
- ml-supply-chain:通用机器学习
- optimization-ml-hybrid:与优化结合
评论
支持 Markdown