فایل اولیه‌ی تمرین را می‌توانید از این لینک دانلود کنید.

شرکت AeroGen Dynamics یکی از بزرگترین اپراتورهای مزارع بادی در منطقه است. قلب هر توربین بادی، یک مجموعه گیربکس پیچیده و گران‌قیمت به نام "مجموعه گیربکس سیاره‌ای G-78" است. خرابی ناگهانی این قطعه می‌تواند منجر به توقف کامل توربین برای هفته‌ها، هزینه‌های تعمیر چند صد هزار دلاری و آسیب به سایر اجزای توربین شود.

تاکنون، این شرکت از استراتژی نگهداری و تعمیرات پیشگیرانه (مبتنی بر برنامه زمانی ثابت) استفاده می‌کرده است که اغلب منجر به تعویض زودهنگام قطعات سالم و هزینه‌های غیرضروری می‌شود. اکنون، AeroGen Dynamics قصد دارد با استفاده از داده‌های جمع‌آوری شده از سیستم‌های مانیتورینگ (SCADA)، به سمت نگهداری و تعمیرات پیش‌بینانه (Predictive Maintenance) حرکت کند.

شما به داده‌های عملیاتی ناشناس‌سازی شده از ناوگانی از توربین‌های این شرکت دسترسی دارید. این داده‌ها شامل خوانش‌های سری زمانی از سنسورهای مختلف (مانند دما، لرزش، فشار روغن و...) و همچنین مشخصات فنی هر توربین است. هدف شما ساختن یک مدل یادگیری ماشین است که بتواند با تحلیل تاریخچه داده‌های یک توربین، سطح ریسک عملیاتی آن را در یکی از پنج دسته زیر طبقه‌بندی کند:

  • کلاس 0 (ریسک پایین): توربین در وضعیت عملیاتی سالم قرار دارد.

  • کلاس 1 (هشدار اولیه): سیگنال‌های اولیه از فرسودگی مشاهده شده است. نیاز به نظارت بیشتر.

  • کلاس 2 (ریسک متوسط): فرسودگی به مرحله قابل توجهی رسیده است. برنامه‌ریزی برای بازرسی در آینده نزدیک توصیه می‌شود.

  • کلاس 3 (ریسک بالا): علائم جدی خرابی مشاهده می‌شود. نیاز به بازرسی فوری.

  • کلاس 4 (ریسک بحرانی): خرابی قریب‌الوقوع است. توربین باید فوراً از مدار خارج شود.

مدل شما به شرکت کمک خواهد کرد تا با پیش‌بینی دقیق ریسک، تعمیرات را بهینه‌سازی کرده، عمر مفید قطعات را به حداکثر رسانده و از توقف‌های فاجعه‌بار جلوگیری کند.

کمک به بحران برق


شرح مجموعه داده‌ها

مجموعه داده در اختیار شما به سه بخش اصلی تقسیم شده است: آموزش (Train)، اعتبارسنجی (Validation) و آزمون (Test). هر بخش شامل فایل‌های داده‌ای متفاوتی است که در ادامه توضیح داده می‌شوند.

نکات کلیدی در مورد داده‌های عملیاتی:

  1. گمنام‌سازی داده‌ها (Anonymization): به منظور حفظ اسرار تجاری، نام و عملکرد دقیق سنسورها و ویژگی‌ها ناشناس شده‌اند. شما با شناسه‌های عددی و حروفی به جای نام‌های فیزیکی مواجه خواهید شد. این بدان معناست که شما باید الگوها را مستقیماً از روی داده‌ها و بدون دانش دامنه قبلی استخراج کنید.

  2. فرمت داده‌های هیستوگرام: بخشی از داده‌های سنسورها به جای یک عدد واحد، در قالب هیستوگرام ارائه شده‌اند. ستون‌هایی با پیشوند عددی یکسان (مانند166_0, 166_1, 166_2,...) همگی به یک سنسور تعلق دارند و با هم یک هیستوگرام را تشکیل می‌دهند. هر ستون (166_0, 166_1,...) یک "bin" یا بازه از مقادیر آن سنسور را نشان می‌دهد. این ساختار به جای ثبت یک مقدار لحظه‌ای، توزیع رفتار یک سنسور را در یک بازه زمانی کوتاه ثبت می‌کند و اطلاعات بسیار غنی‌تری در مورد نوسانات و الگوهای عملکردی آن ارائه می‌دهد.

متغیر هدف شما، یعنی همان کلاس‌های ریسک ۰ تا ۴، بر اساس فاصله زمانی آخرین خوانش سنسور تا لحظه واقعی خرابی گیربکس تعریف شده‌اند. این فاصله بر اساس یک «گام زمانی عملیاتی» (Operational Time Step) که می‌تواند معادل ساعت کارکرد باشد، محاسبه می‌شود:

  • کلاس 0: خوانش در فاصله بیش از 48 گام زمانی قبل از خرابی قرار دارد.

  • کلاس 1: خوانش در فاصله 48 تا 24 گام زمانی قبل از خرابی قرار دارد.

  • کلاس 2: خوانش در فاصله 24 تا 12 گام زمانی قبل از خرابی قرار دارد.

  • کلاس 3: خوانش در فاصله 12 تا 6 گام زمانی قبل از خرابی قرار دارد.

  • کلاس 4: خوانش در فاصله 6 تا 0 گام زمانی قبل از خرابی قرار دارد.

در مجموعه آزمون، شما باید برای هر توربین یک برچسب کلاس پیش‌بینی کنید. برای اینکه مدل خود را آموزش دهید، باید بتوانید این برچسب‌ها را برای داده‌های آموزشی بسازید. فایل train_time_to_event.csv کلید این کار است. این فایل به شما می‌گوید که هر توربین در مجموع چه مدت کار کرده (length_of_study_time_step) و آیا در این مدت خراب شده است یا خیر (in_study_repair). برای توربین‌هایی که دچار خرابی شده‌اند، length_of_study_time_step لحظه دقیق خرابی است. با مقایسه time_step هر خوانش سنسور در فایل train_operational_data.csv با این لحظه خرابی، می‌توانید "زمان باقی‌مانده تا خرابی" را برای هر ردیف محاسبه کرده و برچسب کلاس مربوطه را به آن اختصاص دهید. توربین‌هایی که هرگز خراب نشده‌اند، همیشه در کلاس ۰ (ریسک پایین) قرار دارند.

ساختار فایل‌های داده

  1. مجموعه داده آموزش (Train Set):

    • train_operational_data.csv: این فایل اصلی‌ترین و بزرگترین بخش داده‌هاست و شامل تاریخچه کامل خوانش‌های سنسورها در طول زمان برای هر توربین است.

    • train_specifications.csv: این فایل شامل ویژگی‌های ثابت و دسته‌ای برای هر توربین است که مشخصات فنی آن را توصیف می‌کند. به عبارت ساده‌تر اینکه، هر توربین از چه قطعاتی ساخته شده است. توربین 7 قطعه اصلی دارد که در این فایل، ما می‌توانیم ببینیم اون قطعه اصلی از چه نوعی است.

    • train_tte.csv: این فایل اطلاعات نهایی هر توربین را ارائه می‌دهد: کل طول عمر عملیاتی مشاهده شده و اینکه آیا در این دوره دچار خرابی شده است یا خیر. این فایل برای ساخت متغیر هدف در مجموعه آموزش استفاده می‌شود.

  2. مجموعه داده اعتبارسنجی (Validation Set):

    • validation_operational_data.csv: برخلاف مجموعه آموزش، این فایل شامل تاریخچه ناقص داده‌های عملیاتی است. برای هر توربین، داده‌ها در یک نقطه زمانی تصادفی قطع شده‌اند تا یک سناریوی پیش‌بینی واقعی شبیه‌سازی شود.

    • validation_specifications.csv: مشخصات فنی توربین‌های موجود در مجموعه اعتبارسنجی.

    • validation_labels.csv: این فایل حاوی برچسب کلاس واقعی (۰ تا ۴) برای آخرین خوانش موجود از هر توربین در مجموعه اعتبارسنجی است. شما از این فایل برای ارزیابی و تنظیم مدل خود استفاده خواهید کرد.

  3. مجموعه داده آزمون (Test Set):

    • test_operational_data.csv: مشابه مجموعه اعتبارسنجی، این فایل نیز شامل تاریخچه ناقص داده‌های عملیاتی برای مجموعه‌ای جدید از توربین‌هاست.

    • test_specifications.csv: مشخصات فنی توربین‌های موجود در مجموعه آزمون.

    • خروجی نهایی شما: شما باید برای هر توربین در این مجموعه، یک فایل خروجی با یک پیش‌بینی نهایی برای class_label ارائه دهید. عملکرد نهایی شما بر اساس همین پیش‌بینی‌ها سنجیده خواهد شد.


ارزیابی مسئله

برای ارزیابی این مسئله و مدل شما، از »ماتریس هزینه و پاداش» زیر استفاده می‌کنیم. به ازای هر سطر مقدار امتیاز خام (Raw Score) شما محاسبه شده و در نهایت براساس فرمول ذکر شده امتیاز نهایی (Final Score) بدست می‌آید.

کلاس واقعی (Actual) پیش‌بینی 0 (سالم) پیش‌بینی 1 (هشدار) پیش‌بینی 2 (متوسط) پیش‌بینی 3 (بالا) پیش‌بینی 4 (بحرانی)
0 (سالم) 2.5 2- 4- 8- 12-
1 (هشدار) 15- 20+ 3- 6- 10-
2 (متوسط) 30- 15- 40+ 5- 8-
3 (بالا) 50- 30- 15- 80+ 5-
4 (بحرانی) 80- 50- 30- 15- 150+

فرمول نهایی محاسبه امتیاز:

\[ Final\ Score = 100 \times \frac{\max\!\left(0, Raw\ Score\right)}{Maximum\ Possible\ Score} \]


فرمت پاسخ

شما باید با توجه به فایل test_operational_data.csv، به ازای هر vehicle_id موجود در دیتاست test، آخرین وضعیت دستگاه را (که در چه کلاسی قرار می‌گیرد) را پیش‌بینی کنید.

خروجی شما باید شامل یک فایل submission.csv باشد که آخرین وضعیت دستگاه را مشخص می‌کند. یعنی به ازای هر vehicle_id تنها یک سطر در فایل submission.csv باید داشته باشیم.

  • ستون‌ها باید شامل vehicle_id و class_label باشند. همچنین فایل نهایی به ترتیب صعودی vehicle_id مرتب شده باشد.
vehicle_id class_label
1 ؟
6 ؟
... ...
33638 ؟

در نهایت submission.csv به همراه نوت‌بوک مربوطه را zip کرده و ارسال نمایید.

توجه

در طول مسابقه امتیازی که مشاهده می‌کنید، فقط نتیجه‌ی ارزیابی مدل شما روی ۳۰ درصد از داده‌های آزمون است. بعد از پایان زمان مسابقه، امتیاز نهایی شما روی ۷۰ درصد مابقی محاسبه می‌شود.

این کار به منظور جلوگیری از بیش‌برازش (overfitting) و حفظ عمومیت مدل انجام می‌شود تا مطمئن شویم مدل‌هایی که دچار بیش‌برازش شده‌اند، در امتیازدهی نهایی، افت می‌کنند.

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.