series_periods_detect()
Bir zaman serisinde var olan en önemli dönemleri bulur.
Syntax
series_periods_detect(
Serisi,
,
min_period,
max_periodnum_periods)
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
Serisi | dynamic |
✔️ | Sayısal değerler dizisi, genellikle make-series veya make_list işleçlerinin elde edilen çıkışıdır. |
min_period | real |
✔️ | Aranacak en küçük nokta. |
max_period | real |
✔️ | Aranacak en büyük dönem. |
num_periods | long |
✔️ | Gereken en fazla dönem sayısı. Bu sayı, çıkış dinamik dizilerinin uzunluğu olacaktır. |
Önemli
- Algoritma, seri uzunluğunun en az 4 noktayı ve en çok yarısını içeren dönemleri algılayabilir.
- min_period biraz aşağıya ayarlayın ve zaman serisinde bulmayı beklediğiniz dönemlerin biraz üzerinde max_period. Örneğin, saatlik toplanmış bir sinyaliniz varsa ve hem günlük hem de haftalık dönemleri (sırasıyla 24 ve 168 saat) arıyorsanız , min_period=0,8*24, max_period=1,2*168 ayarlayabilir ve bu dönemler etrafında %20 kenar boşluğu bırakabilirsiniz.
- Giriş zaman serisi normal olmalıdır. Başka bir ifadeyle, sabit bölmeler halinde toplanır. Bu, make-series kullanılarak oluşturulmuşsa her zaman böyledir. Aksi takdirde çıkış anlamsızdır.
Döndürülenler
işlevi iki sütunlu bir tablo çıkışı oluşturur:
- periods: Puanlarına göre sıralanmış, depo gözü boyutundaki birimler halinde bulunan dönemleri içeren dinamik bir dizi.
- scores: 0 ile 1 arasında değerler içeren dinamik bir dizi. Her dizi, bir dönemin nokta dizisindeki ilgili konumundaki önemini ölçer.
Örnek
Aşağıdaki sorgu, bir uygulama trafiğinin bir aylık anlık görüntüsünü günde iki kez toplanmış olarak ekler. Bölme boyutu 12 saattir.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| render linechart
Bu seride çalıştırılırsa series_periods_detect()
haftalık dönem 14 puan uzunluğunda olur.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| project series_periods_detect(y, 0.0, 50.0, 2)
Çıkış
series_periods_detect_y_periods | series_periods_detect_y_periods_scores |
---|---|
[14.0, 0.0] | [0.84, 0.0] |
Not
Örnekleme çok kaba (12h bölme boyutu) olduğundan grafikte de görülebilen günlük dönem bulunamadı, bu nedenle günlük 2 bölmelik bir dönem, algoritmanın gerektirdiği en düşük 4 nokta nokta boyutunun altındadır.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin