neural-networks-forecasting について
サプライチェーンの予測業務向けのニューラルネットワーク予測スキルです。LSTM、Transformer、TCN、アンサンブルを使い、需要の時系列パターンや季節性、非線形性を扱います。
主な機能
- 01LSTMによる需要予測
- 02Transformerによる複数期間予測
- 03膨張畳み込みを使うTCN予測
- 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、Transformer)を構築することです。
初期評価
- データ量:十分なデータがありますか?(ニューラルネットワークには1,000件以上のサンプルが必要です)
- パターン:複雑な非線形パターンや長期的な依存関係がありますか?
- 特徴量:多変量ですか、単変量ですか?
- 予測期間:短期予測ですか、長期予測ですか?
- リソース:トレーニングに利用できる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 対応