AutoML'de zaman serisi tahmini için takvim özellikleri

Bu makalede, AutoML'nin tahmin regresyon modellerinin doğruluğunu artırmak için oluşturduğu takvim tabanlı özelliklere odaklanmaktadır. Tatiller modellenen sistemin davranışları üzerinde güçlü bir etkiye sahip olabileceğinden, tatil öncesi, sırasında ve sonrasındaki zaman serinin desenlerini sapmaya neden olabilir. Her tatil, öğrencilerin etki atayabileceği mevcut veri kümeniz üzerinde bir pencere oluşturur. Bu özellikle tatiller gibi belirli ürünler için yüksek talepler oluşturan senaryolarda yararlı olabilir. AutoML'de tahmin metodolojisi hakkında daha fazla genel bilgi için yöntemlere genel bakış makalesine bakın. AutoML'deki eğitim tahmin modellerine yönelik yönergeler ve örnekler , zaman serisi tahmini için AutoML'yi ayarlama makalemizde bulunabilir.

Özellik mühendisliğinin bir parçası olarak AutoML, eğitim verilerinde sağlanan tarih saat türü sütunlarını takvim tabanlı özelliklerin yeni sütunlarına dönüştürür. Bu özellikler regresyon modellerinin çeşitli tempolarda mevsimsel desenleri öğrenmelerine yardımcı olabilir. AutoML her zaman zaman serisinin zaman dizininden takvim özellikleri oluşturabilir çünkü bu, eğitim verilerinde gerekli bir sütundur. Takvim özellikleri, varsa tarih saat türüne sahip diğer sütunlardan da yapılır. Veri gereksinimleri hakkında daha fazla bilgi için AutoML'nin veri kılavuzunuzu nasıl kullandığına bakın.

AutoML, takvim özelliklerinin iki kategorisini dikkate alır: tamamen tarih ve saat değerlerini temel alan standart özellikler ve dünyanın bir ülkesine veya bölgesine özgü tatil özellikleri. Makalenin geri kalanında bu özelliklerin üzerinden geçeceğiz.

Standart takvim özellikleri

Aşağıdaki tabloda, AutoML'nin standart takvim özelliklerinin tam kümesinin yanı sıra örnek bir çıkış gösterilmektedir. Örnek, tarih saat gösterimi için standart YY-mm-dd %H-%m-%d biçimi kullanır.

Özellik adı Description 2011-01-01 00:25:30 için örnek çıktı
year Takvim yılını temsil eden sayısal özellik 2011
year_iso ISO 8601'de tanımlandığı gibi ISO yıllarını temsil eder. ISO yılları, Perşembe günü olan yılın ilk haftası başlar. Örneğin, 1 Ocak bir Cuma ise, ISO yılı 4 Ocak'ta başlar. ISO yılları takvim yıllarından farklı olabilir. 2010
half Tarihin yılın ilk veya ikinci yarısında olup olmadığını gösteren özellik. Tarih 1 temmuzdan önceyse 1, aksi takdirde 2 olur.
quarter Verilen tarihin üç aylık dönemini temsil eden sayısal özellik. Takvim yılının birinci, ikinci, üçüncü, dördüncü çeyreğini temsil eden 1, 2, 3 veya 4 değerlerini alır. 1
month Takvim ayını temsil eden sayısal özellik. 1 ile 12 arasında bir değer alır. 1
month_lbl Ay adını temsil eden dize özelliği. 'Ocak'
day Ayın gününü temsil eden sayısal özellik. 1 ile 31 arasında değerler alır. 1
hour Günün saatini temsil eden sayısal özellik. 0 ile 23 arasında bir değer alır. 0
minute Saat içindeki dakikayı temsil eden sayısal özellik. 0 ile 59 arasında değerler alır. 25
second Verilen tarih saat ikincisini temsil eden sayısal özellik. Yalnızca tarih biçiminin sağlandığı durumlarda 0 olarak kabul edilir. 0 ile 59 arasında değerler alır. 30
am_pm Saatin sabah mı yoksa akşam mı olduğunu gösteren sayısal özellik. Saat 12:00'nin öncesinde 0, 12:00'nin ardından 1 kez 1 olur. 0
am_pm_lbl Saatin sabah mı yoksa akşam mı olduğunu gösteren dize özelliği. 'am'
hour12 12 saatlik bir saatte günün saatini temsil eden sayısal özellik. Günün ilk yarısı için 0 ile 12, ikinci yarı için 1 ile 11 arasında değerler alır. 0
wday Haftanın gününü temsil eden sayısal özellik. 0 ile 6 arasında bir değer alır ve burada 0 Pazartesi'ye karşılık gelir. 5
wday_lbl Haftanın gününün adını temsil eden dize özelliği.
qday Üç aylık dönem içindeki günü temsil eden sayısal özellik. 1 ile 92 arasında bir değer alır. 1
yday Yılın gününü temsil eden sayısal özellik. Artık yıl söz konusu olduğunda 1 ile 365 arasında veya 1 ile 366 arasında değerler alır. 1
week ISO 8601'de tanımlandığı gibi ISO haftasını temsil eden sayısal özellik. ISO haftaları her zaman Pazartesi günü başlar ve Pazar günü biter. 1 Ocak'ın Perşembe günü düşmesine veya 1 Ocak'ın Çarşamba'ya düşmesine neden olan artık yıllarda 1 ile 52 arasında veya 53 değerini alır. 52

Standart takvim özelliklerinin tamamı her durumda oluşturulamayabilir. Oluşturulan küme, zaman serisinin sıklığına ve eğitim verilerinin saat dizinine ek olarak tarih saat özellikleri içerip içermediğine bağlıdır. Aşağıdaki tabloda farklı sütun türleri için oluşturulan özellikler gösterilmektedir:

Sütun amacı Takvim özellikleri
Zaman dizini Diğer özelliklerle yüksek bağıntıya sahip tam küme eksi takvim özellikleri. Örneğin, zaman serisi sıklığı günlükse, yararlı bilgi sağlamadıkları için günlükten daha ayrıntılı frekansa sahip tüm özellikler kaldırılır.
Diğer tarih saat sütunu , , , , , DayOfYearWeekOfMonthDayDayOfWeekQuarterOfYear, MinuteHour, ve Secondiçeren Yearazaltılmış bir küme. Month Sütun saati olmayan bir tarihse, Hour, Minuteve Second 0 olur.

Tatil özellikleri

AutoML isteğe bağlı olarak belirli bir ülke veya bölgeden gelen tatilleri temsil eden özellikler oluşturabilir. Bu özellikler AutoML'de ISO ülke kodunu kabul eden parametresi kullanılarak country_or_region_for_holidays yapılandırılır.

Not

Tatil özellikleri yalnızca günlük sıklıkta zaman serisi için yapılabilir.

Aşağıdaki tabloda tatil özellikleri özetlenmiştir:

Özellik adı Description
Holiday Tarihin ulusal/bölgesel tatil olup olmadığını belirten dize özelliği. Bir tatil aralığındaki günler de işaretlenir.
isPaidTimeOff Belirtilen ülke veya bölgede gün "ücretli izin tatili" ise 1 değerini alan ikili özellik.

AutoML, tatil bilgileri için kaynak olarak Azure Açık Veri Kümelerini kullanır. Daha fazla bilgi için PublicHolidays belgelerine bakın.

Tatil özelliği oluşturmayı daha iyi anlamak için aşağıdaki örnek verileri göz önünde bulundurun:

sample_data

Bu veriler için Amerikan tatil özellikleri oluşturmak için, aşağıdaki kod örneğinde gösterildiği gibi tahmin ayarlarında 'US' olarak ayarlıyoruzcountry_or_region_for_holiday:

from azure.ai.ml import automl

# create a forcasting job
forecasting_job = automl.forecasting(
    compute='test_cluster',   # Name of single or multinode AML compute infrastructure created by user
    experiment_name=exp_name, # name of experiment 
    training_data=sample_data,  
    target_column_name='demand',
    primary_metric='NormalizedRootMeanSquaredError',
    n_cross_validations=3,
    enable_model_explainability=True
)

# set custom forecast settings
forecasting_job.set_forecast_settings(
    time_column_name='timeStamp',
    country_or_region_for_holidays='US'
)

Oluşturulan tatil özellikleri aşağıdaki çıktıya benzer:

sample_data_output

Oluşturulan özelliklerin ön ekinin _automl_ sütun adlarına eklendiğini unutmayın. AutoML, giriş özelliklerini mühendislik özelliklerinden ayırmak için genellikle bu ön eki kullanır.

Sonraki adımlar