0 / 0
Go back to the English version of the documentation
Zaman dizisi kitaplığını kullanma
Last updated: 06 Tem 2023
Zaman dizisi kitaplığını kullanma

Zaman serisi kitaplığınızla çalışmaya başlamak için, kitaplığı Python not defterinize ya da uygulamanızın içine alın.

Zaman serisi kitaplığını içe aktarmak için bu komutu kullanın:

# Import the package
import tspy

Zaman dizisi oluşturma

Bir zaman serisi oluşturmak ve kitaplık işlevlerini kullanmak için veri kaynağına karar vermeniz gerekir. Desteklenen veri kaynakları şunları içerir:

  • Bellek içi listeler
  • Pandalar DataFrames
  • Gözlemlerin bellek içi toplamaları ( ObservationCollection yapısını kullanarak)
  • Kullanıcı tanımlı okuyucular ( TimeSeriesReader yapısını kullanarak)

Aşağıdaki örnekte, bellek içi bir listeden veri alınırken oluşan veriler gösterilmektedir:

ts = tspy.time_series([5.0, 2.0, 4.0, 6.0, 6.0, 7.0])
ts

Çıkış aşağıdaki gibidir:

TimeStamp: 0     Value: 5.0
TimeStamp: 1     Value: 2.0
TimeStamp: 2     Value: 4.0
TimeStamp: 3     Value: 6.0
TimeStamp: 4     Value: 6.0
TimeStamp: 5     Value: 7.0

You can also operate on many time-series at the same time by using the MultiTimeSeries construct. MultiTimeSeries temel olarak, her zaman serisinin kendine özgü anahtarı olduğu bir zaman dizilerinin sözlüğüdür. Zaman dizisi zaman içinde hizalanmaz.

MultiTimeSeries yapısı, tek zaman serisi yapısı olarak dönüştürmek ve içe aktarmak için benzer yöntemler sağlar:

mts = tspy.multi_time_series({
	"ts1": tspy.time_series([1.0, 2.0, 3.0]),
	"ts2": tspy.time_series([5.0, 2.0, 4.0, 5.0])
})

Çıkış aşağıdaki gibi olur:

ts2 time series
------------------------------
TimeStamp: 0     Value: 5.0
TimeStamp: 1     Value: 2.0
TimeStamp: 2     Value: 4.0
TimeStamp: 3     Value: 5.0
ts1 time series
------------------------------
TimeStamp: 0     Value: 1.0
TimeStamp: 1     Value: 2.0
TimeStamp: 2     Value: 3.0

Zamanı yorumlama

Varsayılan olarak, bir zaman serisi, belirli bir gözlem oluşturulduğunda, zaman işareti olarak adlandırılan bir long veri tipini kullanır. Zaman damgaları, zaman damgaları olan zaman dizileri için insan yorumlanası olan bir zaman başvuru sistemidir. Bkz. Zaman başvuru sistemini kullanma.

The following example shows how to create a simple time series where each index denotes a day after the start time of 1990-01-01:

import datetime
granularity = datetime.timedelta(days=1)
start_time = datetime.datetime(1990, 1, 1, 0, 0, 0, 0, tzinfo=datetime.timezone.utc)

ts = tspy.time_series([5.0, 2.0, 4.0, 6.0, 6.0, 7.0], granularity=granularity, start_time=start_time)
ts

Çıkış aşağıdaki gibidir:

TimeStamp: 1990-01-01T00:00Z     Value: 5.0
TimeStamp: 1990-01-02T00:00Z     Value: 2.0
TimeStamp: 1990-01-03T00:00Z     Value: 4.0
TimeStamp: 1990-01-04T00:00Z     Value: 6.0
TimeStamp: 1990-01-05T00:00Z     Value: 6.0
TimeStamp: 1990-01-06T00:00Z     Value: 7.0

Basit dönüştürmeler gerçekleştiriliyor

Dönüştürmeler, bir ya da daha fazla zaman serisi verildiğinde yeni bir zaman serisi döndüren işlevlerdir.

Örneğin, bir zaman serisini pencerelere bölmek için, her pencerenin size=3olduğu, 2 kaydın kaydırıldığı bir zaman dilimini kullanarak aşağıdaki yöntemi kullanabilirsiniz:

window_ts = ts.segment(3, 2)
window_ts

Çıkış aşağıdaki gibidir:

TimeStamp: 0     Value: original bounds: (0,2) actual bounds: (0,2) observations: [(0,5.0),(1,2.0),(2,4.0)]
TimeStamp: 2     Value: original bounds: (2,4) actual bounds: (2,4) observations: [(2,4.0),(3,6.0),(4,6.0)]

Bu örnek, bir zaman dizisindeki her bir değere 1 eklenmesini gösterir:

add_one_ts = ts.map(lambda x: x + 1)
add_one_ts

Çıkış aşağıdaki gibidir:

TimeStamp: 0     Value: 6.0
TimeStamp: 1     Value: 3.0
TimeStamp: 2     Value: 5.0
TimeStamp: 3     Value: 7.0
TimeStamp: 4     Value: 7.0
TimeStamp: 5     Value: 8.0

Ya da başka bir zaman dizisiyle ts gibi bir zaman serisini geçici olarak bırakıyorsunuz ts2:

ts2 = tspy.time_series([1.0, 2.0, 3.0])
joined_ts = ts.left_join(ts2)
joined_ts

Çıkış aşağıdaki gibidir:

TimeStamp: 0     Value: [5.0, 1.0]
TimeStamp: 1     Value: [2.0, 2.0]
TimeStamp: 2     Value: [4.0, 3.0]
TimeStamp: 3     Value: [6.0, null]
TimeStamp: 4     Value: [6.0, null]
TimeStamp: 5     Value: [7.0, null]

Dönüştürücüler kullanılıyor

transformers paketinde bulunan zengin bir yerleşik transformatör süiti sağlanmaktadır. Sağlanan dönüştürücü işlevlerini kullanmak için paketi içe aktarın:

from tspy.builders.functions import transformers

Paketi ekledikten sonra, bir zaman serisindeki verileri transform yöntemini kullanarak dönüştürebilirsiniz.

Örneğin, bir zaman dizisiyle ilgili bir fark gerçekleştirmek için:

ts_diff = ts.transform(transformers.difference())

Çıkış şu şekilde:

TimeStamp: 1     Value: -3.0
TimeStamp: 2     Value: 2.0
TimeStamp: 3     Value: 2.0
TimeStamp: 4     Value: 0.0
TimeStamp: 5     Value: 1.0

İndirgenlerin kullanılması

transformers paketine benzer şekilde, indiriciler paketi ' nin sağladığı yöntemler kullanarak bir zaman serisini düşürebilirsiniz. İndirgenlerin paketini aşağıdaki gibi içe aktarabilirsiniz:

from tspy.builders.functions import reducers

Paketi içe aktardıktan sonra, örneğin, bir zaman serisinin ortalamasını almak için reduce yöntemini kullanın:

avg = ts.reduce(reducers.average())
avg

Bu çıkışlar:

5.0

İndirgenlerin, segmentasyon dönüşümlerinin yanında kullanılmasına olanak sağlayan özel bir özelliği vardır (saatlik toplam, bir hata oluşmadan önce pencerede avg ve diğerleri). segmentation + reducer ' un çıkışı bir zaman serisi olduğu için, transform yöntemi kullanılır.

Örneğin, 3. boyutta pencerelere bölümlemek ve her bir pencereye ortalamayı almak için şunu kullanın:

avg_windows_ts = ts.segment(3).transform(reducers.average())

Bu sonuçtaki sonuçlar:

imeStamp: 0     Value: 3.6666666666666665
TimeStamp: 1     Value: 4.0
TimeStamp: 2     Value: 5.333333333333333
TimeStamp: 3     Value: 6.333333333333333

Grafik zaman dizisi

Tembel değerlendirme, bir zaman serisini grafikleştirirken kullanılır. Bir zaman serisini grafiklediğinizde, aşağıdakilerden birini yapabilirsiniz:

  • BoundTimeSeriesdeğerini döndüren zaman dizilerinin gözlemlerini topla
  • Zaman serisini bir değer ya da değer derlemi olarak küçültür
  • Saklama ya da Yazdırma İşlemleri Gerçekleştir

Örneğin, bir zaman dilindeki tüm değerleri toplamak ve iade etmek için:

observations = ts.materialize()
observations

Bu sonuçtaki sonuçlar:

[(0,5.0),(1,2.0),(2,4.0),(3,6.0),(4,6.0),(5,7.0)]

Bir zaman dizisinden bir aralık toplamak için şunu kullanın:

observations = ts[1:3] # same as ts.materialize(1, 3)
observations

Çıkış şu şekilde:

[(1,2.0),(2,4.0),(3,6.0)]

Zaman serisi, doğada dönemsel bir dönemse, aralık sorguları için eniyilenmiş bir zaman serisine dikkat edin.

describe ' ı geçerli bir zaman serisinde kullanarak, zaman serisini de grafiklerle kullanabilirsiniz:

describe_obj = ts.describe()
describe_obj

Çıkış:

min inter-arrival-time: 1
max inter-arrival-time: 1
mean inter-arrival-time: 1.0
top: 6.0
unique: 5
frequency: 2
first: TimeStamp: 0     Value: 5.0
last: TimeStamp: 5     Value: 7.0
count: 6
mean:5.0
std:1.632993161855452
min:2.0
max:7.0
25%:3.5
50%:5.5
75%:6.25

Daha fazla bilgi

Üst konu: Zaman serisi analizi

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more