ٹیمپورل فیوژن ٹرانسفارمر: ڈیپ لرننگ کے ساتھ ٹائم سیریز کی پیشن گوئی - مکمل ٹیوٹوریل

درست اور قابل تشریح پیشین گوئیاں بنائیں

DALLE کے ساتھ تخلیق کیا گیا [1]

[2] کے مطابق، عارضی فیوژن ٹرانسفارمر ٹائم سیریز کی پیشن گوئی کے لیے تمام نمایاں ڈیپ لرننگ ماڈلز کو پیچھے چھوڑتا ہے۔

ایک متصف سمیت گریڈینٹ بوسٹنگ ٹری ٹیبلر ٹائم سیریز ڈیٹا کے لیے ماڈل۔

لیکن کیا ہے ٹیمپورل فیوژن ٹرانسفارمر (TFT)[3] اور یہ اتنا دلچسپ کیوں ہے؟

اس مضمون میں، ہم مختصر طور پر کی نئی خصوصیات کی وضاحت کرتے ہیں عارضی فیوژن ٹرانسفارمر اور اس پر ایک اینڈ ٹو اینڈ پروجیکٹ بنائیں توانائی کی طلب کی پیشن گوئی. خاص طور پر، ہم احاطہ کریں گے:

  • اپنے ڈیٹا کو TFT فارمیٹ کے لیے کیسے تیار کریں۔
  • TFT ماڈل کی تعمیر، تربیت اور جانچ کیسے کریں۔
  • توثیق کے اعداد و شمار اور نمونے سے باہر کی پیشین گوئیاں کیسے حاصل کی جائیں۔
  • حساب کتاب کرنے کا طریقہ خصوصیت کی اہمیت, موسمی پیٹرن، اور انتہائی واقعات کی مضبوطی بلٹ میں ماڈل کا استعمال کرتے ہوئے قابل تشریح توجہ میکانزم.

میں ڈوبکی!

ٹیمپورل فیوژن ٹرانسفارمر فن تعمیر کے گہرائی سے تجزیہ کے لیے، میرا پچھلا چیک کریں مضمون.

Tاخلاقی Fاستعمال Transformer (TFT) ایک ٹرانسفارمر پر مبنی ماڈل ہے جو متعدد وقت کے سلسلے کی پیچیدہ وقتی حرکیات کو حاصل کرنے کے لیے خود توجہ کا فائدہ اٹھاتا ہے۔

TFT کی حمایت کرتا ہے:

  • ایک سے زیادہ وقت کی سیریز: ہم ایک TFT ماڈل کو ہزاروں غیر متغیر یا ملٹی ویریٹیٹ ٹائم سیریز پر تربیت دے سکتے ہیں۔
  • کثیر افق کی پیشن گوئی: ماڈل ایک یا زیادہ ہدف کے متغیرات کی متعدد قدمی پیشین گوئیاں کرتا ہے — بشمول پیشین گوئی کے وقفے۔
  • متضاد خصوصیات: TFT کئی قسم کی خصوصیات کو سپورٹ کرتا ہے، بشمول ٹائم ویرینٹ اور سٹیٹک خارجی متغیرات۔
  • قابل تعبیر پیشین گوئیاں: پیشین گوئیوں کی تشریح متغیر اہمیت اور موسمی لحاظ سے کی جا سکتی ہے۔

ان خصلتوں میں سے ایک منفرد ہے۔ عارضی فیوژن ٹرانسفارمر. ہم اگلے حصے میں اس کا احاطہ کریں گے۔

DL ٹائم سیریز کے قابل ذکر ماڈلز میں (مثال کے طور پر، ڈیپ اے آر[4])، TFT نمایاں ہے کیونکہ یہ مختلف قسم کی خصوصیات کو سپورٹ کرتا ہے۔ یہ ہیں:

  • وقت کے لحاظ سے مختلف جانا جاتا ہے
  • وقت کے لحاظ سے مختلف نامعلوم
  • وقت بدلنے والا اصلی
  • وقت بدلنے والا دو ٹوک

مثال کے طور پر، تصور کریں کہ ہمارے پاس ایک ہے۔ فروخت کی پیشن گوئی کیس:

ہم کہتے ہیں کہ ہمیں 3 مصنوعات کی فروخت کی پیشن گوئی کرنی ہے۔ دی num sales ہدف متغیر ہے. دی CPI index یا number of visitors ہیں وقت مختلف نامعلوم خصوصیات کیونکہ وہ صرف پیشین گوئی کے وقت تک معلوم ہوتے ہیں۔ البتہ، holidaysاور special days ہیں وقت کے لحاظ سے مختلف معلوم ہوتا ہے۔ واقعات

۔ product id is ایک وقت کا متغیر (جامد) زمرہ خصوصیت دوسری خصوصیات جو عددی ہیں اور وقت پر منحصر نہیں ہیں جیسے yearly_revenue کے طور پر درجہ بندی کیا جا سکتا ہے وقت متغیر حقیقی.

اپنے پراجیکٹ پر جانے سے پہلے، ہم سب سے پہلے ایک چھوٹے ٹیوٹوریل دکھائیں گے کہ آپ کے ڈیٹا کو میں کیسے تبدیل کیا جائے۔ توسیع شدہ ٹائم سیریز فارمیٹ.

نوٹ: اس مضمون میں تمام تصاویر اور اعداد و شمار مصنف کے ذریعہ تخلیق کیے گئے ہیں۔

اس ٹیوٹوریل کے لیے، ہم استعمال کرتے ہیں۔ TemporalFusionTransformer سے ماڈل PyTorch کی پیشن گوئی لائبریری اور پائ ٹارچ لائٹننگ:

pip install torch pytorch-lightning pytorch_forecasting

پورے عمل میں 3 چیزیں شامل ہیں:

  1. ہمارے ٹائم سیریز ڈیٹا کے ساتھ ایک پانڈاس ڈیٹا فریم بنائیں۔
  2. ہمارے ڈیٹا فریم کو a میں لپیٹیں۔ ٹائم سیریز ڈیٹا سیٹ مثال.
  3. ہمارے پاس ٹائم سیریز ڈیٹا سیٹ مثال کے طور پر TemporalFusionTransformer.

۔ ٹائم سیریز ڈیٹا سیٹ بہت مفید ہے کیونکہ یہ ہمیں یہ بتانے میں مدد کرتا ہے کہ آیا خصوصیات وقت کے لحاظ سے مختلف ہیں یا جامد۔ پلس، یہ واحد فارمیٹ ہے۔ TemporalFusionTransformer قبول کرتا ہے۔

آئیے یہ دکھانے کے لیے ایک کم سے کم تربیتی ڈیٹاسیٹ بنائیں کہ کیسے ٹائم سیریز ڈیٹا سیٹ کام کرتا ہے:

ہمیں اپنے ڈیٹا کو مندرجہ ذیل طریقے سے فارمیٹ کرنا چاہیے: ہر رنگین باکس ایک مختلف ٹائم سیریز کی نمائندگی کرتا ہے، جس کی نمائندگی اس کے group قدر.

شکل 1: نمونہ_ڈیٹا پانڈا ڈیٹا فریم

ہمارے ڈیٹا فریم کا سب سے اہم کالم ہے۔ time_idx - یہ نمونوں کی ترتیب کا تعین کرتا ہے۔ اگر کوئی لاپتہ مشاہدات نہیں ہیں، تو قدروں میں اضافہ ہونا چاہیے۔ +1 ہر ٹائم سیریز کے لیے۔

اگلا، ہم اپنے ڈیٹا فریم کو a میں لپیٹتے ہیں۔ ٹائم سیریز ڈیٹا سیٹ مثال:

تمام دلائل خود وضاحتی ہیں: The max_encoder_length تلاش کی مدت کی وضاحت کرتا ہے اور max_prediction_length بتاتا ہے کہ کتنے ڈیٹا پوائنٹس کی پیش گوئی کی جائے گی۔ ہمارے معاملے میں، ہم 3 پیشین گوئیوں کو آؤٹ پٹ کرنے کے لیے ماضی میں 2 بار پیچھے دیکھتے ہیں۔

۔ ٹائم سیریز ڈیٹا سیٹ مثال اب ڈیٹا لوڈر کے طور پر کام کرتی ہے۔ آئیے ایک بیچ پرنٹ کریں اور چیک کریں کہ ہمارا ڈیٹا TFT کو کیسے منتقل کیا جائے گا:

اس بیچ میں تربیتی اقدار شامل ہیں۔ [0,1] پہلی بار سیریز سے (group 0) اور جانچ کی اقدار[2,3,4]. اگر آپ اس کوڈ کو دوبارہ چلاتے ہیں، تو آپ کو مختلف قدریں ملیں گی کیونکہ ڈیٹا کو بطور ڈیفالٹ شفل کیا جاتا ہے۔

ہمارا پروجیکٹ استعمال کرے گا۔ الیکٹرسٹی لوڈڈیاگرامس20112014 ہے [5] UCI سے ڈیٹاسیٹ۔ اس مثال کے لیے نوٹ بک یہاں سے ڈاؤن لوڈ کی جا سکتی ہے۔ یہاں:

اس ڈیٹاسیٹ میں 370 منٹ کی فریکوئنسی کے ساتھ 15 کلائنٹس/صارفین کے بجلی کے استعمال (KWs میں) شامل ہیں۔ ڈیٹا کا دورانیہ 4 سال (2011–2014)۔

کچھ صارفین 2011 کے بعد بنائے گئے تھے، اس لیے ابتدائی طور پر ان کا بجلی کا استعمال صفر ہے۔

ہم ڈیٹا پری پروسیسنگ کے مطابق کرتے ہیں۔ ہے [3]:

  • ہمارے ہدف متغیر کو جمع کریں۔ power_usage گھنٹے کے حساب سے
  • ہر ٹائم سیریز کے لیے ابتدائی تاریخ تلاش کریں جہاں پاور غیر صفر ہو۔
  • نئی خصوصیات بنائیں: month, day, hour اور day_of_week.
  • کے درمیان تمام دن منتخب کریں۔ 2014–01–01 اور 2014–09–07.

شروع کرتے ہیں:

ڈیٹا ڈاؤن لوڈ کریں۔

wget https://archive.ics.uci.edu/ml/machine-learning-databases/00321/LD2011_2014.txt.zip
!انزپ کریں۔
LD2011_2014.txt.zip

ڈیٹا پروپوزل کی گذارش

ہر کالم صارف کی نمائندگی کرتا ہے۔ سب سے ابتدائی power_usage قدریں 0 ہیں۔

اگلا، ہم فی گھنٹہ ڈیٹا کو جمع کرتے ہیں۔ ماڈل کے سائز اور پیچیدگی کی وجہ سے، ہم اپنے ماڈل کو صرف 5 صارفین پر تربیت دیتے ہیں (ان کے لیے جن کی قدر صفر نہیں ہے)۔

اب، ہم اپنا ڈیٹاسیٹ تیار کرتے ہیں۔ ٹائم سیریز ڈیٹا سیٹ فارمیٹ یاد رکھیں کہ ہر کالم مختلف ٹائم سیریز کی نمائندگی کرتا ہے۔ لہذا، ہم اپنے ڈیٹا فریم کو 'پگھل' دیتے ہیں، تاکہ تمام ٹائم سیریز افقی کی بجائے عمودی طور پر اسٹیک ہو جائیں۔ اس عمل میں، ہم اپنی نئی خصوصیات بناتے ہیں۔

حتمی پری پروسیسڈ ڈیٹا فریم کہا جاتا ہے۔ time_df. آئیے اس کے مواد کو پرنٹ کریں:

۔ time_df کے لیے اب مناسب فارمیٹ میں ہے۔ ٹائم سیریز ڈیٹا سیٹ. جیسا کہ آپ نے ابھی تک اندازہ لگایا ہے، چونکہ گرانولریٹی فی گھنٹہ ہے، hours_from_start متغیر ہوگا ٹائم انڈیکس.

تحقیقی ڈیٹا کا تجزیہ

5 صارفین/ ٹائم سیریز کا انتخاب بے ترتیب نہیں ہے۔ دی power usage ہر ٹائم سیریز کی مختلف خصوصیات ہیں، جیسے کہ اوسط قدر:

time_df[['consumer_id','power_usage']].groupby('consumer_id').mean()

آئیے ہر ٹائم سیریز کا پہلا مہینہ پلاٹ کریں:

ساخت، پیکر 2: تمام 5 ٹائم سیریز/صارفین کا پہلا مہینہ۔

کوئی قابل توجہ رجحان نہیں ہے، لیکن ہر ٹائم سیریز میں قدرے مختلف موسمی اور طول و عرض ہوتا ہے۔ ہم مزید تجربہ کر سکتے ہیں اور سٹیشناریٹی، سگنل کی سڑن وغیرہ کی جانچ کر سکتے ہیں، لیکن ہمارے معاملے میں، ہم صرف ماڈل بنانے کے پہلو پر توجہ مرکوز کرتے ہیں۔

اس کے علاوہ، دیکھیں کہ دوسرے ٹائم سیریز کی پیشن گوئی کے طریقے جیسے اریما۔ کچھ تقاضوں کو پورا کرنا ضروری ہے (مثال کے طور پر، ٹائم سیریز کو پہلے سٹیشنری ہونا چاہیے۔) TFT کے ساتھ، ہم اپنے ڈیٹا کو ویسے ہی چھوڑ سکتے ہیں۔

ڈیٹا لوڈرز بنائیں

اس مرحلے میں، ہم اپنے پاس time_df کرنے کے لئے ٹائم سیریز ڈیٹا سیٹ فارمیٹ جو بے حد مفید ہے کیونکہ:

  • یہ ہمیں اپنا ڈیٹا لوڈر لکھنے سے بچاتا ہے۔
  • ہم یہ بتا سکتے ہیں کہ TFT ڈیٹاسیٹ کی خصوصیات کو کیسے ہینڈل کرے گا۔
  • ہم اپنے ڈیٹاسیٹ کو آسانی سے معمول بنا سکتے ہیں۔ ہمارے معاملے میں، نارملائزیشن لازمی ہے کیونکہ ہر وقت کی ترتیب شدت میں مختلف ہوتی ہے۔ اس طرح، ہم استعمال کرتے ہیں گروپ نارملائزر ہر ٹائم سیریز کو انفرادی طور پر معمول پر لانے کے لیے۔

ہمارا ماڈل اگلے 7 گھنٹوں میں بجلی کے استعمال کی پیشین گوئی کرنے کے لیے ایک ہفتے (24*24) کی لک بیک ونڈو کا استعمال کرتا ہے۔

اس کے علاوہ، نوٹ کریں کہ hours_from_start ٹائم انڈیکس اور وقت کے لحاظ سے مختلف فیچر دونوں ہیں۔ دی power_usage ہمارا ہدف متغیر ہے۔ مظاہرے کی خاطر، ہماری توثیق سیٹ کا آخری دن ہے:

بیس لائن ماڈل

اگلا، وہ قدم جسے تقریباً ہر کوئی بھول جاتا ہے: ایک بنیادی ماڈل۔ خاص طور پر ٹائم سیریز کی پیشن گوئی میں، آپ حیران ہوں گے کہ ایک بولی پیش گوئی کرنے والا کتنی بار ایک فینسی ماڈل سے بھی آگے نکل جاتا ہے!

ایک سادہ بنیاد کے طور پر، ہم پچھلے دن کے بجلی کے استعمال کے منحنی خطوط کی پیش گوئی کرتے ہیں:

ٹیمپورل فیوژن ٹرانسفارمر ماڈل کی تربیت

ہم واقف کا استعمال کرتے ہوئے اپنے TFT ماڈل کو تربیت دے سکتے ہیں۔ ٹرینر PyTorch Lightning سے انٹرفیس۔

درج ذیل چیزوں پر توجہ دیں:

  • ہم استعمال کرتے ہیں EarlyStopping توثیق کے نقصان کی نگرانی کے لیے کال بیک۔
  • ہم استعمال کرتے ہیں ٹینسر بورڈ ہماری تربیت اور توثیق کے میٹرکس کو لاگ کرنے کے لیے۔
  • ہمارا ماڈل استعمال کرتا ہے۔ کوانٹائل نقصان - نقصان کی ایک خاص قسم جو پیشین گوئی کے وقفوں کو آؤٹ پٹ کرنے میں ہماری مدد کرتی ہے۔ Quantile Loss فنکشن پر مزید کے لیے، اس مضمون کو چیک کریں.
  • ہم 4 استعمال کرتے ہیں۔ توجہ کے سراصل کاغذ کی طرح۔

اب ہم اپنے ماڈل کی تعمیر اور تربیت کے لیے تیار ہیں:

یہی ہے! 6 دوروں کے بعد، EarlyStopping شروع ہو جاتی ہے اور تربیت روک دیتی ہے۔

بہترین ماڈل لوڈ اور محفوظ کریں۔

اپنے ماڈل کو محفوظ کرنا نہ بھولیں۔ اگرچہ ہم اسے اچار کر سکتے ہیں، سب سے محفوظ آپشن یہ ہے کہ بہترین عہد کو براہ راست بچایا جائے:

!zip -r model.zip lightning_logs/lightning_logs/version_1/*

ماڈل کو دوبارہ لوڈ کرنے کے لیے، ان زپ کریں۔ ماڈل زپ اور درج ذیل پر عمل کریں - صرف بہترین ماڈل کا راستہ یاد رکھیں:

ٹینسر بورڈ چیک کریں۔

Tensorboard کے ساتھ تربیت اور توثیق کے منحنی خطوط پر گہری نظر ڈالیں:

ماڈل کی تشخیص

توثیق کے سیٹ پر پیشین گوئیاں حاصل کریں اور اوسط کا حساب لگائیں۔ P50 (کوانٹائل میڈین) بند:

آخری 2 ٹائم سیریز میں تھوڑا سا زیادہ نقصان ہوا ہے کیونکہ ان کی نسبت کی شدت بھی زیادہ ہے۔

توثیق کے ڈیٹا پر پلاٹ کی پیشن گوئیاں

اگر ہم پاس کرتے ہیں۔ mode=raw پر پیشن گوئی () طریقہ، ہم مزید معلومات حاصل کرتے ہیں، بشمول تمام سات مقداروں کے لیے پیشین گوئیاں۔ ہمیں توجہ کی اقدار تک بھی رسائی حاصل ہے (اس کے بارے میں مزید بعد میں)۔

پر ایک قریبی نظر ڈالیں raw_predictions متغیر:

ہم استعمال کرتے ہیں پلاٹ_پیش گوئی() ہمارے پلاٹ بنانے کے لیے۔ بلاشبہ، آپ اپنی مرضی کے مطابق پلاٹ بنا سکتے ہیں۔ پلاٹ_پیش گوئی() توجہ کی اقدار کو شامل کرنے کا اضافی فائدہ ہے۔

نوٹ: ہمارا ماڈل اگلے 24 ڈیٹا پوائنٹس کی پیش گوئی کرتا ہے۔ ایک ہی بار میں. یہ ایک رولنگ پیشن گوئی کا منظر نامہ نہیں ہے جہاں ایک ماڈل پیش گوئی کرتا ہے۔ ایک ہر بار قدر کریں اور تمام پیشین گوئیوں کو ایک ساتھ 'ٹانکے'۔

ہم ہر صارف کے لیے ایک پلاٹ بناتے ہیں (مجموعی طور پر 5)۔

ساخت، پیکر 3: MT_002 کے لیے تصدیقی ڈیٹا پر پیشین گوئیاں
ساخت، پیکر 4: MT_004 کے لیے تصدیقی ڈیٹا پر پیشین گوئیاں
ساخت، پیکر 5: MT_005 کے لیے تصدیقی ڈیٹا پر پیشین گوئیاں
ساخت، پیکر 6: MT_006 کے لیے تصدیقی ڈیٹا پر پیشین گوئیاں
ساخت، پیکر 7: MT_008 کے لیے تصدیقی ڈیٹا پر پیشین گوئیاں

نتائج کافی متاثر کن ہیں۔

ہماری عارضی فیوژن ٹرانسفارمر ماڈل موسمی اور شدت دونوں کے لحاظ سے تمام 5 ٹائم سیریز کے رویے کو پکڑنے کے قابل تھا!

اس کے علاوہ، نوٹ کریں کہ:

  • ہم نے کوئی ہائپر پیرامیٹر ٹیوننگ نہیں کی۔
  • ہم نے کوئی فینسی فیچر انجینئرنگ تکنیک نافذ نہیں کی۔

اگلے حصے میں، ہم دکھاتے ہیں کہ ہائپر پیرامیٹر کی اصلاح کے ساتھ اپنے ماڈل کو کیسے بہتر بنایا جائے۔

ایک مخصوص وقت کی سیریز کے لیے پلاٹ کی پیشین گوئیاں

پہلے، ہم استعمال کرتے ہوئے توثیق کے ڈیٹا پر پیشین گوئیاں پلاٹ کرتے ہیں۔ idx دلیل، جو ہمارے ڈیٹاسیٹ میں تمام ٹائم سیریز میں دہراتی ہے۔ ہم ایک مخصوص ٹائم سیریز پر زیادہ مخصوص اور آؤٹ پٹ پیشین گوئیاں کر سکتے ہیں:

ساخت، پیکر 7: کے لئے دن آگے کی پیشن گوئی MT_004 تربیتی سیٹ پر

In شناخت 7، ہم دن سے آگے کی منصوبہ بندی کرتے ہیں۔ MT_004 صارف برائے ٹائم انڈیکس = 26512۔

یاد رکھیں، ہمارا ٹائم انڈیکسنگ کالم hours_from_start 26304 سے شروع ہوتا ہے اور ہم 26388 کے بعد سے پیشین گوئیاں حاصل کر سکتے ہیں (کیونکہ ہم پہلے سیٹ کرتے ہیں min_encoder_length=max_encoder_length // 2 جو برابر ہے 26304 + 168//2=26388

نمونہ سے باہر کی پیشین گوئیاں

آئیے نمونے سے باہر کی پیشین گوئیاں بنائیں، توثیق کے اعداد و شمار کے حتمی ڈیٹا پوائنٹ سے آگے - جو ہے 2014–09–07 23:00:00

ہمیں صرف ایک نیا ڈیٹا فریم بنانا ہے جس میں شامل ہیں:

  • کی تعداد N=max_encoder_length ماضی کی تاریخیں، جو لک بیک ونڈو کے طور پر کام کرتی ہیں۔ انکوڈر ڈیٹا TFT اصطلاحات میں
  • سائز کی مستقبل کی تاریخیں۔ max_prediction_length جس کے لیے ہم اپنی پیشین گوئیوں کا حساب لگانا چاہتے ہیں۔ ڈیکوڈر ڈیٹا.

ہم اپنی تمام 5 ٹائم سیریز، یا صرف ایک کے لیے پیشین گوئیاں بنا سکتے ہیں۔ چترا 7 صارفین کے لیے نمونے سے باہر کی پیشین گوئیاں دکھاتا ہے۔ MT_002:

ساخت، پیکر 7: MT_002 کے لیے دن آگے کی پیشین گوئی

درست پیشن گوئی ایک چیز ہے، لیکن وضاحت کی صلاحیت بھی آج کل بہت اہمیت رکھتی ہے۔

اور یہ ڈیپ لرننگ ماڈلز کے لیے اور بھی بدتر ہے، جنہیں بلیک باکس سمجھا جاتا ہے۔ طریقے جیسے لائم اور شاپ وضاحتی قابلیت فراہم کر سکتا ہے (کسی حد تک) لیکن ٹائم سیریز کے لیے اچھا کام نہیں کرتا۔ اس کے علاوہ، وہ خارجی پوسٹ ہاک طریقے ہیں اور کسی خاص ماڈل سے منسلک نہیں ہیں۔

عارضی فیوژن ٹرانسفارمر تین قسم کی تشریح فراہم کرتا ہے:

  • موسم کے لحاظ سے: TFT اپنے ناول کا فائدہ اٹھاتا ہے۔ قابل تعبیر کثیر سر توجہ پچھلے وقت کے اقدامات کی اہمیت کا حساب لگانے کا طریقہ کار۔
  • خصوصیت کے لحاظ سے: TFT اس کا فائدہ اٹھاتا ہے۔ متغیر سلیکشن نیٹ ورک ہر خصوصیت کی اہمیت کا حساب لگانے کے لیے ماڈیول۔
  • انتہائی واقعات کی مضبوطی: ہم تحقیق کر سکتے ہیں کہ نایاب واقعات کے دوران ٹائم سیریز کیسے برتاؤ کرتی ہے۔

اگر آپ کے اندرونی کاموں کے بارے میں گہرائی سے جاننا چاہتے ہیں۔ قابل تعبیر کثیر سر توجہ اور متغیر سلیکشن نیٹ ورک، میرا پچھلا مضمون چیک کریں۔.

موسم کے لحاظ سے تشریح

TFT گزشتہ وقت کے مراحل میں وقتی نمونوں کو سمجھنے کے لیے توجہ کے وزن کو تلاش کرتا ہے۔

پچھلے تمام پلاٹوں میں سرمئی لکیریں توجہ کے اسکور کی نمائندگی کرتی ہیں۔ ان پلاٹوں کو دوبارہ دیکھیں - کیا آپ کو کچھ محسوس ہوا؟ چترا 8 کے نتائج کو ظاہر کرتا ہے۔ چترا 7 اور توجہ کے اسکور کے لیے بھی اکاؤنٹس:

ساخت، پیکر 8: MT_001 کے لیے دن کی پیشین گوئی موسم کے ساتھ دکھائی گئی ہے۔

توجہ کے اسکور سے پتہ چلتا ہے کہ جب ماڈل اپنی پیشن گوئی کو آؤٹ پٹ کرتا ہے تو وہ وقت کے اقدامات کتنے مؤثر ہوتے ہیں۔ چھوٹی چوٹیاں روزمرہ کی موسم کی عکاسی کرتی ہیں، جب کہ آخر کی طرف اونچی چوٹی شاید ہفتہ وار موسم کی عکاسی کرتی ہے۔

اگر ہم تمام ٹائم اسٹیپس اور ٹائم سیریز میں توجہ کے منحنی خطوط کو اوسط کرتے ہیں (صرف 5 نہیں جو ہم نے اس ٹیوٹوریل میں استعمال کیے ہیں) چترا 9 TFT کاغذ سے:

ساخت، پیکر 9: بجلی کے ڈیٹاسیٹ کے لیے دنیاوی نمونے (ماخذ)

: سوال یہ کیا اچھا ہے؟ کیا ہم ACF پلاٹ، ٹائم سگنل سڑنے وغیرہ جیسے طریقوں سے موسمی نمونوں کا اندازہ نہیں لگا سکتے؟

جواب: سچ ہے۔ تاہم، TFT کے توجہ کے وزن کا مطالعہ کرنے کے اضافی فوائد ہیں:

  1. ہم اس بات کی تصدیق کر سکتے ہیں کہ ہمارا ماڈل ہمارے سلسلے کی ظاہری موسمی حرکیات کو حاصل کرتا ہے۔
  2. ہمارا ماڈل پوشیدہ نمونوں کو بھی ظاہر کر سکتا ہے کیونکہ موجودہ ان پٹ ونڈو کے توجہ کا وزن تمام ماضی کے ان پٹس پر غور کرتا ہے۔
  3. توجہ کے وزن کا پلاٹ ایک خودکار تعلق کے پلاٹ جیسا نہیں ہے: خودکار تعلق پلاٹ ایک خاص ترتیب سے مراد ہے، جب کہ یہاں توجہ کا وزن تمام کوویریٹس اور ٹائم سیریز کو دیکھ کر ہر ٹائم اسٹپ کے اثرات پر فوکس کرتا ہے۔

خصوصیت کے لحاظ سے تشریح

۔ متغیر سلیکشن نیٹ ورک TFT کا جزو آسانی سے اندازہ لگا سکتا ہے۔ خصوصیت کی اہمیت:

ساخت، پیکر 10: توثیق کے ڈیٹا پر خصوصیات کی اہمیت

In چترا 10، ہم مندرجہ ذیل نوٹس کرتے ہیں:

  • ۔ hour اور day_of_week ماضی کے مشاہدات اور مستقبل کے ہم آہنگی دونوں کے طور پر مضبوط اسکور رکھتے ہیں۔ اصل کاغذ میں بینچ مارک ایک ہی نتیجہ کا اشتراک کرتا ہے۔
  • ۔ power_usage واضح طور پر سب سے زیادہ اثر انگیز مشاہدہ کیا گیا covariate ہے۔
  • ۔ consumer_id یہاں بہت اہم نہیں ہے کیونکہ ہم صرف 5 صارفین استعمال کرتے ہیں۔ TFT پیپر میں، جہاں مصنفین تمام 370 صارفین کو استعمال کرتے ہیں، یہ متغیر زیادہ اہم ہے۔

نوٹ: اگر آپ کا گروپنگ سٹیٹک متغیر اہم نہیں ہے، تو یہ بہت ممکن ہے کہ آپ کے ڈیٹاسیٹ کو بھی ایک ہی ڈسٹری بیوشن ماڈل (جیسے ARIMA) کے ذریعے یکساں طور پر اچھی طرح سے ماڈل بنایا جا سکے۔

انتہائی واقعہ کا پتہ لگانا

ٹائم سیریز غیر معمولی واقعات کے دوران اپنی خصوصیات میں اچانک تبدیلیوں کے لئے حساس ہونے کے لئے بدنام ہیں (جسے کہا جاتا ہے جھٹکا).

اس سے بھی بدتر بات یہ ہے کہ وہ واقعات بہت پرجوش ہیں۔ تصور کریں کہ کیا آپ کا ہدف متغیر ایک مختصر مدت کے لیے اتار چڑھاؤ کا شکار ہو جاتا ہے کیونکہ ایک covariate خاموشی سے رویے کو تبدیل کرتا ہے:

کیا یہ کوئی بے ترتیب شور ہے یا کوئی پوشیدہ مستقل نمونہ جو ہمارے ماڈل سے بچ جاتا ہے؟

TFT کے ساتھ، ہم ان کی قدروں کی حد میں ہر انفرادی خصوصیت کی مضبوطی کا تجزیہ کر سکتے ہیں۔ بدقسمتی سے، موجودہ ڈیٹاسیٹ اتار چڑھاؤ یا نایاب واقعات کو ظاہر نہیں کرتا ہے — جن کے مالی، سیلز ڈیٹا وغیرہ میں پائے جانے کا زیادہ امکان ہے۔ پھر بھی، ہم ان کا حساب کتاب کرنے کا طریقہ دکھائیں گے:

کچھ خصوصیات کی توثیق ڈیٹاسیٹ میں ان کی تمام اقدار موجود نہیں ہیں، لہذا ہم صرف دکھاتے ہیں۔ hour اور consumer_id:

ساخت، پیکر 11: پیشین گوئیاں بمقابلہ حقیقی (معمول کے مطابق) گھنٹے پر
ساخت، پیکر 12: صارف_id پر پیشین گوئیاں بمقابلہ حقیقی (معمول کے مطابق)

دونوں اعداد و شمار میں، نتائج حوصلہ افزا ہیں۔ میں چترا 12، ہم دیکھتے ہیں کہ صارف MT_004 دوسرے صارفین کے مقابلے میں قدرے کم کارکردگی دکھاتا ہے۔ ہم اس کی تصدیق کر سکتے ہیں اگر ہم ہر صارف کے P50 کے نقصان کو ان کے اوسط پاور استعمال کے ساتھ معمول پر لائیں جس کا ہم نے پہلے حساب لگایا تھا۔

سرمئی سلاخیں ہر متغیر کی تقسیم کو ظاہر کرتی ہیں۔ ایک چیز جو میں ہمیشہ کرتا ہوں وہ یہ ہے کہ کن اقدار کی تعدد کم ہے۔ پھر، میں چیک کرتا ہوں کہ ماڈل ان علاقوں میں کیسے کارکردگی کا مظاہرہ کرتا ہے۔ لہذا، آپ آسانی سے پتہ لگا سکتے ہیں کہ آیا آپ کا ماڈل نایاب واقعات کے رویے کو پکڑتا ہے۔

عام طور پر، آپ اس TFT فیچر کو استعمال کر کے اپنے ماڈل کی کمزوریوں کی تحقیقات کر سکتے ہیں اور مزید تفتیش کے لیے آگے بڑھ سکتے ہیں۔

ہم بغیر کسی رکاوٹ کے استعمال کر سکتے ہیں۔ عارضی فیوژن ٹرانسفارمر ساتھ آپٹونا ہائپر پیرامیٹر ٹیوننگ انجام دینے کے لیے:

مسئلہ یہ ہے کہ چونکہ TFT ٹرانسفارمر پر مبنی ماڈل ہے، اس لیے آپ کو اہم ہارڈ ویئر وسائل کی ضرورت ہوگی!

عارضی فیوژن ٹرانسفارمر بلاشبہ ٹائم سیریز کمیونٹی کے لیے ایک سنگ میل ہے۔

ماڈل نہ صرف SOTA کے نتائج حاصل کرتا ہے بلکہ پیشین گوئیوں کی تشریح کے لیے ایک فریم ورک بھی فراہم کرتا ہے۔ ماڈل میں بھی دستیاب ہے۔ ڈارٹس python لائبریری، جو PyTorch Forecasting لائبریری پر مبنی ہے۔

آخر میں، اگر آپ کے فن تعمیر کے بارے میں جاننے کے لئے دلچسپی رکھتے ہیں عارضی فیوژن ٹرانسفارمر تفصیل سے، چیک کریں ساتھی مضمون اصل کاغذ پر.

ٹیمپورل فیوژن ٹرانسفارمر: ڈیپ لرننگ کے ساتھ ٹائم سیریز کی پیشن گوئی — مکمل ٹیوٹوریل ماخذ سے دوبارہ شائع کیا گیا https://towardsdatascience.com/temporal-fusion-transformer-time-series-forecasting-with-deep-learning-complete-tutorial-d32c1e51cd91?= rss—-7f60cf5620c9—4 https://towardsdatascience.com/feed کے ذریعے

<!–

->

ٹائم اسٹیمپ:

سے زیادہ بلاکچین کنسلٹنٹس