İşte size kod yazmaya ve fikirleri test etmeye başlamanıza yardımcı olacak basit bir reçete ...
Birkaç yıl boyunca kaydedilmiş aylık verileriniz olduğunu varsayalım, bu yüzden 36 değeriniz var. Ayrıca, önceden yalnızca bir ay (değer) tahmin etmeyi umduğunuzu varsayalım.
- Keşifsel veri analizi: Verilerdeki gecikme bağımlılığını tahmin etmek için geleneksel zaman serisi analiz yöntemlerinden bazılarını uygulayın (örn., Otomatik korelasyon ve kısmi otomatik korelasyon grafikleri, dönüşümler, farklılık). Belirli bir ayın değerinin son üç ayın verileriyle ilişkili olduğunu ancak bunun ötesinde olmadığını tespit edelim.
- Verilerinizi eğitim ve doğrulama kümelerine ayırın: İlk 24 puanı eğitim değeriniz olarak, kalanları da doğrulama seti olarak alın.
- Yapay sinir ağı düzenini oluşturun: Son üç ayın değerlerini girdi olarak alırsınız ve bir sonraki ayın değerini tahmin etmek istersiniz. Bu nedenle, üç düğüm içeren bir giriş katmanına ve bir düğüm içeren bir çıkış katmanına sahip bir sinir ağına ihtiyacınız vardır. Muhtemelen en az birkaç düğümden oluşan gizli bir katmana sahip olmalısınız. Ne yazık ki, gizli katmanların sayısını ve bunlara ait düğüm sayılarını seçmek, net kurallar içeren bir şey değildir. Küçük başlardım, 3: 2: 1 gibi.
x1,x2…,x24
pattern1:x1,x2,x3,x4
pattern2:x2,x3,x4,x5
…
pattern21:x21,x22,x23,x24
- Sinir ağını bu kalıplar üzerinde eğitin
- Ağı doğrulama setinde test edin (aylar 25-36): Burada, sinir ağının giriş katmanı için ihtiyaç duyduğu üç değeri geçecek ve çıkış düğümünün neye ayarlandığını göreceksiniz. Bu nedenle, eğitimli sinir ağının ne kadar iyi olduğunu görmek için 32. ayın değerini, 29, 30 ve 31 ay boyunca gireceğiniz değerleri
Bu tarif açıkça yüksek seviyededir ve bağlamınızı farklı yazılım kütüphaneleri / programları ile eşleştirmeye çalışırken ilk başta başınızı çizebilirsiniz. Ancak, umarım bu temel noktayı ortaya koymaktadır: Tahmin etmeye çalıştığınız serinin korelasyon yapısını makul bir şekilde içeren eğitim kalıpları oluşturmanız gerekir. Tahmini bir sinir ağı mı yoksa bir ARIMA modeli ile mi yapıyorsunuz, bu yapının ne olduğunu belirlemeye yönelik keşif çalışması genellikle en çok zaman alan ve zor olan kısımdır.
Tecrübelerime göre sinir ağları mükemmel bir sınıflandırma ve tahmin işlevi sağlayabilir, ancak bunları ayarlamak zaman alıcı olabilir. Yukarıdaki örnekte 21 eğitim modelinin yeterli olmadığını görebilirsiniz; farklı girdi veri dönüşümleri daha iyi / daha kötü tahminlere yol açar; gizli katmanların ve gizli katman düğümlerinin sayısının değiştirilmesi tahminleri büyük ölçüde etkiler; vb.
Sinir ağı tahmin yarışmaları hakkında tonlarca bilgi içeren neural_forecasting web sitesine bakmanızı şiddetle tavsiye ederim . Motivasyonları sayfa özellikle yararlıdır.