mcpField
N
neural-networks-forecasting

neural-networks-forecasting

github.com/kishorkukreja数据与数据库8453 次安装3 周前更新
代码仓库

关于 neural-networks-forecasting

面向供应链预测工作的神经网络预测技能,介绍用深度学习捕捉需求数据中的时间模式、季节性和非线性关系。涵盖 LSTM、Transformer、TCN 与模型集成。

主要功能

  1. 01LSTM 需求预测
  2. 02Transformer 多步预测
  3. 03TCN 膨胀卷积预测
  4. 04集成多个神经网络模型
  5. 05TensorFlow/Keras 与 PyTorch

适用场景

  1. 01预测具有复杂时间模式的需求
  2. 02生成多个预测期的需求结果
  3. 03组合多个神经网络的预测

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kishorkukreja/awesome-supply-chain --skill neural-networks-forecasting

安装后在 Claude Code 中输入/neural-networks-forecasting确认已加载。

详细介绍

用于预测的神经网络

你擅长将神经网络和深度学习应用于供应链预测。你的目标是构建复杂的深度学习模型(LSTM、GRU、Transformers),以捕捉需求数据中的复杂时间模式、季节性和非线性关系。

初步评估

  1. 数据量:数据是否充足?(神经网络需要 1000+ 个样本)
  2. 模式:是否存在复杂的非线性关系或长期依赖?
  3. 特征:多变量还是单变量?
  4. 预测范围:短期还是长期预测?
  5. 资源:是否有可用于训练的 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