რისი არის დროის სერიების მოდელებისთვის მონაცემთა ნაკრების შექმნისა და ვალიდაციის მახასიათებლები?
sobes.tech AI
პასუხი AI-სგან
საგანგაშო სერიების მოდელებისთვის მონაცემთა ნაკრებები და ვალიდაცია მნიშვნელოვანია დროის დამოკიდებულების გათვალისწინება მონაცემებში და თავიდან აიცილოთ ინფორმაცია მომავლისგან წარსულში გადაცემა.
ძირითადი მახასიათებლები:
-
გადმოსახვევი ფანჯარა (Sliding window) — შექმენით სასწავლო მაგალითები მიმდევრობით დროის ინტერვალებიდან, სადაც შესავალია წინა მნიშვნელობები, გამოსავალი — შემდეგი ნაბიჯი.
-
მონაცემთა განაწილება დროის მიხედვით — მონაცემები მკაცრად ნაწილდება სასწავლო, ვალიდაციის და ტესტის ნაწილებად დროის მიხედვით, რათა მოდელი არ ნახოს მომავალი მონაცემები სწავლების დროს.
-
ვალიდაცია დროის სერიის გათვალისწინებით:
- გამოიყენეთ მეთოდები, როგორიცაა TimeSeriesSplit, რომლებიც ქმნიან მიმდევრობით განაწილებებს, რომლებიც ითვალისწინებს მონაცემების წესრიგს.
- თავიდან აიცილეთ შემთხვევითი შაფლვა, რადგან ეს არღვევს დროის სტრუქტურას.
-
სეზონალობის და ტრენდების მართვა — მონაცემების თვისებების შექმნისას გათვალისწინებულია დროის მახასიათებლები (კვირის დღე, საათი, დღესასწაულები).
-
შესაკლავი მნიშვნელობებისა და ანომალიების მართვა — სწორი წინასწარი დამუშავება მნიშვნელოვანია, რადგან დროის სერიის მონაცემები მგრძნობიარეა ასეთ დამახინჯებებზე.
მონაცემთა განაწილების მაგალითი:
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]
# მოდელის სწავლება და ვალიდაცია
ძალიან მნიშვნელოვანია დროის ქრონოლოგიური წესრიგის დაცვა და მომავლის მონაცემების წარსულში გადაცემა თავიდან აცილება.