Zaman Serisi ile Denetimli Öğrenme İlişkisi

Şevket Ay
Deep Learning Türkiye
4 min readDec 30, 2019
blogs.oracle.com’dan alınmıştır.

Zaman serisi tahmin problemleri için derin öğrenme gibi(örneğin LSTM) makine öğrenme yöntemleri de kullanılabilir. Makine öğrenmesi yöntemleri kullanılmadan önce, zaman serisi tahmin problemleri denetimli öğrenme problemlerine dönüştürülmelidir.

Zaman Serileri(Time Series)

Başlamadan önce, zaman serisinin formunu ve denetimli öğrenme verilerini daha iyi anlamak için bir dakikamızı ayıralım.

Bir zaman dizisi, bir zaman dizini tarafından sıralanan bir sayılar dizisidir. Bu, sıralanan değerlerin bir listesi veya sütunu olarak düşünülebilir.

Denetimli bir öğrenme problemi, bir algoritmanın, girdi modellerinden çıktı modellerini nasıl tahmin edebileceğini öğrenebilecekleri girdi düzenlerinden (x) ve çıktı düzenlerinden (y) oluşur.

y=f(x)

Pandas shift ()

Gecikme özellikleri, zaman serisi tahmin problemlerinin denetimli öğrenme problemlerine dönüştürülmesinin klasik yoludur.

10 sayılık bir dizi olarak zaman serisi tanımlayalım.

En basit yaklaşım, geçerli zamandaki (t) değeri göz önüne alındığında bir sonraki seferdeki değerini (t + 1) tahmin etmektir. Pandas kütüphanesi, bu gecikme özelliklerini bir zaman serisi veri kümesinden oluşturmaya yardımcı olmak için shift () işlevini sağlar.

Serinin bir kez kaydırılmasının basit bir denetimli öğrenme problemi verdiğini görebiliriz. Index değerlerini görmezden gelirsek ilk sütun 0 giriş(x)değerini ve ikinci sütun çıkış(y) 1 değerini gösterir. Son satır NaN içerir, çünkü kaydırılmıştır, bu yüzden bunu atmamız gerekir.

Bu işlemi 2, 3 ve daha fazla kayma için yaparsak;

Geriye doğru üç kere kaydırma yaptığımız zaman son üç satırda NaN değeri görüyoruz.

Peki üç kere ileri kayma yaparsak nasıl olur? Burada geçmiş süreler tahmin yapmak için kullanılan gözlemlerdir. Yani girdilerdir(x).

İleri doğru üç kere kaydırma yaptığımız zaman dikkat edersek ilk üç satırda NaN değeri görüyoruz.

Yukarıdaki örneklerden anlamamız gereken şudur ki gelecekte N zaman aralığını tahmin etmek istediğimizde verileri N kez kaydırmamız gerekiyorsa, kaydırma işlemini gerçekleştirdikten sonra atmamız gereken N sayıda NaN değeri içeren satır oluşur.

Özetle, zaman serisi tahmin terminolojisinde mevcut zaman (t), gelecek zamanlar (t + 1, t + n) tahmin süreleri ve geçmiş zamanlar (t-1, t-n) tahmin yapmak için kullanılan gözlemlerdir.

series_to_supervised () fonksiyonu

“series_to_supervised ()” tek değişkenli veya çok değişkenli zaman serilerini denetimli bir öğrenme veri kümesi olarak çerçeveleyen Python işlevidir. Örneğin LSTM modeli ile bir veri seti üzerinde çalışma yapacaksınız. Veri setini hazırlarken bu fonksiyon kullanılır. Bununla ilgili bir örneği yazının sonuna ekleyeceğim. Oradan inceleyebilirsiniz.

Tek Değişkenli Zaman Serisi: Bunlar, her seferinde yalnızca tek bir değişkenin(yalnızca sıcaklık gibi) gözlendiği veri kümeleridir.

Çok Değişkenli Zaman Serisi: Bunlar, her seferinde iki veya daha fazla değişkenin gözlendiği(sıcaklık,basınç vb.) veri kümeleridir.

analyticsvidhya.com ‘dan alınmıştır.

Çoğu zaman serisi analiz yöntemi ve hatta konuyla ilgili kitaplar tek değişkenli verilere odaklanır. Çünkü anlaşılması ve üzerinde çalışılması kolay olanıdır. Çok değişkenli verileri çalışması genellikle daha zordur.

Tek Değişkenli Tahmin

Bu örneği 5 gibi gelişigüzel bir sayı uzunluğu olan giriş dizisiyle yapalım.

  • Gözlemlerin “var1” , girdi gözleminin uygun şekilde (t-1),(t-2)… ve çıktı zaman adımının (t) olarak adlandırıldığını görüyoruz.
  • Dikkat edersek NaN değerlerine sahip satırların DataFrame’den otomatik olarak kaldırıldığını da görebiliriz. Yukarıda değindiğimiz gibi shift() fonksiyonu ile bu işlemi yapsaydık NaN değerlerini DataFrame’de görecektik. Farkı görmek isterseniz aynı işlemi shift() fonksiyonu ile yapınız.

Çok Değişkenli Tahmin

Burada birden fazla ölçünün gözlemine ve bunlardan bir veya daha fazlasının tahmin edilmesine ilgi gösterebiliriz.

Yukarıdaki gibi giriş ve çıkış dizilerinin uzunluğunu belirtebilirsiniz. Örneğin, yukarıda giriş olarak 1 zaman adımı ve tahmin dizisi olarak 3 zaman adımı içeren bir yeniden çerçeveleme örneği verilmiştir.

Daha önce üzerinde LSTM yöntemini kullanarak çalıştığım bir veri setinde bu yazıda anlattığım series_to_supervised () fonksiyonunu uygulamıştım. İncelemek isterseniz buyrun.

Herkese iyi çalışmalar.

--

--