| فایل اولیهی دادگان آموزش و آزمون را میتوانید از [این لینک](/contest/assignments/89137/download_problem_initial_project/303235/) دانلود کنید. |
| ----------------------------------------------------------------------------------------- |
در دنیای امروزی، سیستمهای صنعتی با استفاده از سنسورهای متعددی پایش میشوند تا از وقوع خرابیهای پرهزینه جلوگیری شود. در این سوال باید با استفاده از دادههای چهار سنسور **دما** (°C)، **فشار** (kPa)، **شتاب ارتعاش** (m/s²) و **سرعت ارتعاش** (mm/s) مربوط به یک پمپ، تشخیص دهید که آیا در هر لحظه نشانهای از خرابی وجود دارد یا خیر. دادهٔ آموزشی شامل برچسبی به نام `faulted` است که مقدار آن یا `normal` (عادی) است یا `faulted` (معیوب). هدف شما آموزش مدلی است که بتواند برچسب دادههای آزمون را پیشبینی کند.
### توضیحات داده
**نکتهٔ مهم:** در این سؤال **فقط** دادههای جداگانهٔ هر سنسور ارائه میشود. برای هر سنسور یک جفت فایل با فرمت زیر در اختیار دارید:
+ `SensorName_train.csv` و `SensorName_test.csv`
جزئیات هر فایل:
+ هر فایل شامل ستونهای `timestamp` (زمان ثبت داده) و مقدار همان حسگر است.
+ در نسخهی **train**، برچسب خطا (`faulted`) فقط در فایلی قرار دارد که **بیشترین نرخ نمونهبرداری** را دارد. سایر فایلهای train فاقد این ستون هستند.
+ نرخ نمونهبرداری هر حسگر متفاوت است (برخی هر ۱ ثانیه، برخی هر ۲، ۵، ۱۰ یا ۱۵ ثانیه داده تولید میکنند). در نتیجه، برای تحلیل چندحسگری لازم است دادهها بر اساس `timestamp` همگامسازی شوند.
### هدف
مدلی طراحی کنید که با استفاده از این چهار حسگر، قادر باشد خرابی پمپ را تشخیص دهد و برای دادههای آزمون، برچسب هر رکورد را پیشبینی کند. خروجی شما باید دقیقاً به اندازهی تعداد ردیفهای حسگری باشد که بالاترین نرخ نمونهبرداری را دارد، زیرا برچسبها در همان نقاط زمانی تعریف میشوند.
### معیار ارزیابی
برای ارزیابی عملکرد مدلها از **Macro-F1** (میانگین F1 برای کلاسهای `normal` و `faulted`) استفاده میشود:
$$F1_{macro} = \frac{1}{2} (F1_{normal} + F1_{faulted})$$
<details class="red">
<summary>
**حداقل امتیاز**
</summary>
> در صورتی که Macro‑F1 شما کمتر از ۰٫۵ باشد، نمرهٔ نهایی صفر خواهد بود.
</details>
<details class="red">
<summary>
**داده ارزیابی**
</summary>
در طول مسابقه امتیازی که مشاهده میکنید، تنها نتیجهی ارزیابی مدل شما روی ۳۰ درصد از دادههای آزمون است. پس از پایان مسابقه، **امتیاز نهایی** بر روی ۷۰ درصد باقیمانده محاسبه میشود. این فرآیند به منظور جلوگیری از بیشبرازش (`overfitting`) و اطمینان از قابلیت تعمیم مدلها انجام میشود.
</details>
<details class="red">
<summary>
**خروجی مورد انتظار**
</summary>
خروجی شما باید دقیقاً به اندازهی تعداد ردیفهای فایلی باشد که بالاترین نرخ نمونهبرداری را دارد، زیرا برچسبها در همان نقاط زمانی تعریف میشوند.
</details>
### نحوه ارسال پاسخ
باید یک فایل `result.zip` ارسال کنید که شامل موارد زیر باشد:
1. **`submission.csv`**: خروجی مدل شما برای **تمام رکوردهای فایل تست سنسوری با بیشترین نرخ نمونهبرداری**، شامل یک ستون به نام `prediction` که مقدار هر سطر آن `normal` یا `faulted` است.
2. **`notebook.ipynb`**: نوتبوکی که مراحل پیشپردازش (ادغام دادهها بر اساس `timestamp`، مدیریت نرخ نمونهبرداری متفاوت و مقادیر گمشده)، آموزش مدل و تولید خروجی نهایی را مستند میکند.