آنچه در این مقاله میخوانید [پنهانسازی]
ساخت دیتاست سری زمانی همیشه از پیچیدهترین و زمانبرترین مراحل در پروژههای یادگیری ماشین بوده است و بسیاری از توسعه دهندگان پیش از شروع مدل سازی باید ساعتهای زیادی را صرف آماده سازی داده کنند. چالشهایی مانند ساخت پنجرههای زمانی، نرمال سازی صحیح، انتخاب ستون هدف، مدیریت دادههای چندمتغیره و تقسیم بندی زمانی باعث میشود فرآیند ساخت دیتاست سری زمانی دشوار شود. کتابخانه Time Series Dataset Creator یا TSDC با هدف برطرف کردن این پیچیدگیها طراحی شده و به کاربران کمک میکند تنها با چند خط کد دادههای خام را به ورودیهایی استاندارد برای مدلهای LSTM، GRU و Transformer تبدیل کنند. این ابزار مجموعهای گسترده از قابلیتها را در اختیار کاربران قرار میدهد که باعث افزایش سرعت توسعه، کاهش خطای انسانی و استانداردسازی کامل فرآیند ساخت دیتاست میشود.
سرفصل های مقاله
- معرفی کتابخانه Time Series Dataset Creator
- ویژگیهای کلیدی Time Series Dataset Creator
- ساخت سریع دنبالههای زمانی
- نرمال سازی و پیش پردازش داخلی
- تقسیم بندی کاملا زمانی
- پشتیبانی از دادههای تک متغیره و چندمتغیره
- مدیریت دادههای گم شده و مقادیر پرت
- عملیات sliding window انعطاف پذیر
- پشتیبانی از دادههای مالی و اندیکاتورهای تکنیکال
- پشتیبانی از Walk Forward و Expanding Window
- امکان بازگردانی مقیاس خروجی مدل
- نصب و راه اندازی
- نصب از سورس
- شروع سریع با مثالهای کاربردی
- مثال تک متغیره: پیش بینی قیمت بیت کوین
- مثال داده چندمتغیره با ستون هدف
- مفاهیم اصلی در ساخت دنبالههای زمانی
- Lookback و Horizon
- Stride
- تقسیم بندی زمانی
- گزینههای مقیاس دهی
- API های اصلی
- کلاس TimeSeriesDataset
- Sequencer
- Preprocessor
- FinancialLoader
- مثالهای پیشرفته
- مثال ۱: پیش بینی قیمت بیت کوین با LSTM
- مثال ۲: Walk Forward Validation
- مثال ۳: بارگذاری از CSV
- مثال ۴: پیش پردازش سفارشی
- جمع بندی
معرفی کتابخانه Time Series Dataset Creator
این کتابخانه یک ابزار قدرتمند برای ساخت دنبالههای زمانی جهت استفاده در مدلهای یادگیری عمیق است. تمام مراحل مهم مانند ساخت پنجرههای زمانی، نرمال سازی، مدیریت دادههای گم شده، حذف مقادیر پرت، تقسیم بندی زمانی و بازگردانی مقیاس خروجی مدل توسط این ابزار انجام میشود. کاربران میتوانند دادههای تک متغیره، چندمتغیره و مالی را وارد این سیستم کرده و خروجیهای مناسب برای شبکههای عصبی دریافت کنند. ساختار این کتابخانه به صورت ماژولار طراحی شده و شامل کلاسهای اصلی برای ایجاد دیتاست، پری پردازسینگ، ساخت دنباله و لودر مالی است.
ویژگیهای کلیدی Time Series Dataset Creator
ساخت سریع دنبالههای زمانی
این کتابخانه امکان ساخت دنبالههای زمانی را با چند خط کد فراهم میکند و کاربران می توانند از پنجرههای ثابت، پویا یا سفارشی استفاده کنند. این قابلیت برای مدلهای LSTM و GRU بسیار ضروری است و فرآیند ساخت دیتاست را سریعتر میکند.
نرمال سازی و پیش پردازش داخلی
کتابخانه از چندین روش نرمال سازی مانند MinMax، Standard و Robust پشتیبانی میکند و فرآیند مقیاس دهی را برای تمام ویژگیها به صورت یکپارچه انجام میدهد. این ویژگی باعث میشود ورودیهای مدل استاندارد و قابل اعتماد باشند.
تقسیم بندی کاملا زمانی
یکی از ویژگیهای مهم این کتابخانه، تقسیم داده بر اساس زمان است که از نشت داده جلوگیری میکند. دادهها به ترتیب زمانی به سه بخش آموزش، اعتبارسنجی و تست تقسیم میشوند و از جابه جایی تصادفی در داده جلوگیری میشود.
پشتیبانی از دادههای تک متغیره و چندمتغیره
کاربران میتوانند دادههای شامل ده ها ویژگی مختلف را وارد کنند و تنها یک ستون هدف را برای خروجی مدل انتخاب کنند. این قابلیت در پروژههای مالی، صنعتی و هواشناسی اهمیت زیادی دارد.
مدیریت دادههای گم شده و مقادیر پرت
یکی از مشکلات رایج در پروژههای واقعی، وجود دادههای ناقص یا غیرعادی است. این کتابخانه ابزارهایی برای پرکردن دادههای گم شده، حذف مقادیر پرت و استانداردسازی دادهها ارائه میدهد.
عملیات sliding window انعطاف پذیر
امکان تعریف stride، lookback و horizon به کاربر اجازه میدهد الگوهای مختلف زمان را برای مدل تنظیم کند.
پشتیبانی از دادههای مالی و اندیکاتورهای تکنیکال
وجود FinancialLoader امکان بارگذاری دادههای مالی از Yahoo Finance و افزودن اندیکاتورهایی مانند MA، EMA، RSI و MACD را فراهم میکند.
پشتیبانی از Walk Forward و Expanding Window
برای ارزیابی دقیق مدلهای پیش بینی، این کتابخانه از معتبرترین روش های اعتبارسنجی زمانی پشتیبانی می کند تا عملکرد مدل در شرایط واقعی بررسی شود.
امکان بازگردانی مقیاس خروجی مدل
قابلیت inverse transform این امکان را میدهد خروجی مدل به مقیاس اصلی بازگردانده شود و برای تحلیل دقیق عملکرد مدل مورد استفاده قرار گیرد.
نصب و راه اندازی
نصب از سورس
برای توسعه دهندگان، نصب از سورس بهترین روش است:
git clone https://github.com/DeepPythonist/tsdc.git
cd tsdc
pip install -e .
برای امکانات اضافی مانند لودر مالی:
pip install -e ".[examples]"
شروع سریع با مثالهای کاربردی
مثال تک متغیره: پیش بینی قیمت بیت کوین
import numpy as np
from tsdc import TimeSeriesDataset
bitcoin_prices = np.random.randn(1000) * 1000 + 40000
dataset = TimeSeriesDataset(
data=bitcoin_prices,
lookback=60,
horizon=1
)
dataset.prepare()
X_train, y_train = dataset.get_train()
X_val, y_val = dataset.get_val()
X_test, y_test = dataset.get_test()
print(X_train.shape)
print(y_train.shape)
مثال داده چندمتغیره با ستون هدف
import pandas as pd
from tsdc import TimeSeriesDataset
data = pd.DataFrame({
'temperature': [...],
'humidity': [...],
'pressure': [...]
})
dataset = TimeSeriesDataset(
data=data,
lookback=24,
horizon=6,
target_column='temperature',
scaler_type='minmax'
)
dataset.prepare()
X_train, y_train = dataset.get_train()
مفاهیم اصلی در ساخت دنبالههای زمانی
Lookback و Horizon
Lookback تعداد نقاط گذشته است و Horizon تعداد نقاطی است که باید پیش بینی شوند.
lookback=60, horizon=1
lookback=24, horizon=12
Stride
Stride تعیین می کند پنجره ها چه میزان همپوشانی داشته باشند.
stride=1
stride=5
تقسیم بندی زمانی
TimeSeriesDataset(
data=data,
train_split=0.7,
val_split=0.15,
test_split=0.15
)
گزینههای مقیاس دهی
minmax
standard
robust
none
API های اصلی
کلاس TimeSeriesDataset
وظیفه ایجاد دیتاست کامل را بر عهده دارد.
متدهای مهم: prepare، get_train، get_val، get_test، get_all، get_info، inverse_transform_predictions
Sequencer
ساخت پنجره های زمانی با کنترل کامل lookback، horizon و stride را انجام می دهد.
Preprocessor
پشتیبانی از:
- حذف Outlier
- مقیاس دهی
- مدیریت داده های گم شده
- inverse transform
FinancialLoader
بارگذاری داده های مالی:
from tsdc.loaders import FinancialLoader
loader = FinancialLoader()
btc = loader.load("BTC-USD", "2023-01-01", "2024-01-01")
btc = loader.add_technical_indicators(sma_periods=[20,50], ema_periods=[12,26], rsi_period=14, macd=True)
مثالهای پیشرفته
مثال ۱: پیش بینی قیمت بیت کوین با LSTM
from tsdc import TimeSeriesDataset
from tsdc.loaders import FinancialLoader
import numpy as np
loader = FinancialLoader()
btc = loader.load("BTC-USD", "2022-01-01")
dataset = TimeSeriesDataset(
data=btc[['Close','Volume']],
lookback=60,
horizon=1,
target_column='Close',
scaler_type='minmax'
)
dataset.prepare()
X_train, y_train = dataset.get_train()
مثال ۲: Walk Forward Validation
from tsdc.utils.splitters import walk_forward_validation
for X_train, y_train, X_test, y_test in walk_forward_validation(X, y, n_splits=5):
model.fit(X_train, y_train)
مثال ۳: بارگذاری از CSV
dataset = TimeSeriesDataset("data.csv", lookback=30, horizon=7, target_column="sales")
dataset.prepare()
مثال ۴: پیش پردازش سفارشی
from tsdc import Preprocessor
prep = Preprocessor(
scaler_type='robust',
handle_missing='interpolate',
remove_outliers=True,
outlier_threshold=2.5
)
cleaned = prep.fit_transform(raw_data)
جمع بندی
کتابخانه Time Series Dataset Creator یک ابزار حرفهای، ساده و کاملا استاندارد برای ساخت دیتاست سری زمانی است و بسیاری از مراحل پیچیده آماده سازی داده را خودکار میکند. پشتیبانی از دادههای چندمتغیره، لودرهای مالی، اندیکاتورهای تکنیکال، نرمال سازی پیشرفته، تقسیم بندی زمانی صحیح و روش های معتبر ارزیابی باعث شده این ابزار یکی از بهترین انتخابها برای پروژههای یادگیری عمیق باشد. این کتابخانه مناسب تحلیلگران داده، پژوهشگران، معامله گران و برنامه نویسانی است که میخواهند بدون پیچیدگی به ساخت دیتاست سری زمانی استاندارد بپردازند.






