Sobes.tech
Middle — Senior

რისი არის დროის სერიების მოდელებისთვის მონაცემთა ნაკრების შექმნისა და ვალიდაციის მახასიათებლები?

sobes.tech AI

პასუხი AI-სგან

საგანგაშო სერიების მოდელებისთვის მონაცემთა ნაკრებები და ვალიდაცია მნიშვნელოვანია დროის დამოკიდებულების გათვალისწინება მონაცემებში და თავიდან აიცილოთ ინფორმაცია მომავლისგან წარსულში გადაცემა.

ძირითადი მახასიათებლები:

  1. გადმოსახვევი ფანჯარა (Sliding window) — შექმენით სასწავლო მაგალითები მიმდევრობით დროის ინტერვალებიდან, სადაც შესავალია წინა მნიშვნელობები, გამოსავალი — შემდეგი ნაბიჯი.

  2. მონაცემთა განაწილება დროის მიხედვით — მონაცემები მკაცრად ნაწილდება სასწავლო, ვალიდაციის და ტესტის ნაწილებად დროის მიხედვით, რათა მოდელი არ ნახოს მომავალი მონაცემები სწავლების დროს.

  3. ვალიდაცია დროის სერიის გათვალისწინებით:

    • გამოიყენეთ მეთოდები, როგორიცაა TimeSeriesSplit, რომლებიც ქმნიან მიმდევრობით განაწილებებს, რომლებიც ითვალისწინებს მონაცემების წესრიგს.
    • თავიდან აიცილეთ შემთხვევითი შაფლვა, რადგან ეს არღვევს დროის სტრუქტურას.
  4. სეზონალობის და ტრენდების მართვა — მონაცემების თვისებების შექმნისას გათვალისწინებულია დროის მახასიათებლები (კვირის დღე, საათი, დღესასწაულები).

  5. შესაკლავი მნიშვნელობებისა და ანომალიების მართვა — სწორი წინასწარი დამუშავება მნიშვნელოვანია, რადგან დროის სერიის მონაცემები მგრძნობიარეა ასეთ დამახინჯებებზე.

მონაცემთა განაწილების მაგალითი:

import pandas as pd
from sklearn.model_selection import TimeSeriesSplit

data = pd.read_csv('timeseries.csv', parse_dates=['date'])
data = data.sort_values('date')

# განაწილება სასწავლო და ტესტ მონაცემებზე თარიღის მიხედვით
train = data[data['date'] < '2023-01-01']
test = data[data['date'] >= '2023-01-01']

# TimeSeriesSplit-ის გამოყენებით კროს-ვალიდაცია
tscv = TimeSeriesSplit(n_splits=5)
for train_index, val_index in tscv.split(train):
    train_fold = train.iloc[train_index]
    val_fold = train.iloc[val_index]
    # მოდელის სწავლება და ვალიდაცია

ძალიან მნიშვნელოვანია დროის ქრონოლოგიური წესრიგის დაცვა და მომავლის მონაცემების წარსულში გადაცემა თავიდან აცილება.