1⃣ گام اول: بررسی موارد سطح اول
🟠 داده رو درست تقسیم شده؟ ممکنه حواسمون نباشه و داده تست و ترین یکی باشه.
داده رو درست ساختم؟ اگر خودتون دارید داده رو میخونید یا ویژگی استخراج میکنید، ممکنه داده های یه گروه رو یه چیز پَرت بسازید. مثلا برای من خیلی پیش اومده که دیدم شمارنده حلقه رو در آدرس دهی آرایه ها اعمال نکردم، و همه سمپل های یک گروه از یک نمونه کپی شده اند!
🟡 آیا مدلی که طراحی شده درسته! ساختارو مجدد چک کنید و مطمئن بشید که ساختار، ورودی و خروجی ها درست اند. اگر مدل شما خیلی پیچیده باشه، احتمالش هست که overfitting رخ داده باشه.
🔴 داده متعادل هست یا نامتعادل: اگر داده نامتعادل باشه احتمالش خیلی زیاده که مدل به سمت داده ای که تعداد نمونه زیادی داره بایاس شده و همه رو اون گروه تشخیص داده! و چون تعداد گروه دیگه کم هست، خطای خیلی ناچیزی ایجاد میشه! مثلا یک گروه 10000 نمونه است، گروه دوم 100 تا!
2⃣ گام دوم: بررسی موراد سطح دوم
🟣آیا نشتی داده (data leakage) اتفاق افتاده؟
نشتی داده یعنی مدل در زمان آموزش به اطلاعاتی دست پیدا کرده که تشخیص هدف رو خیلی راحت کرده ولی در عمل همچین اطلاعاتی نخواهد بود و مدل خیلی بد عمل خواهد کرد. مثلا شما میخواهید سیستمی طراحی کنید که تشخیص بده یک بیمار به بیمارستان مجدد مراجعه خواهد کرد یا نه، اگر شما وضعیت بیمار رو به عنوان ویژگی بدهید، نشتی داده رخ خواهد داد.
نکته: در ارزیابی مدلهای یادگیری ماشین، مخصوصا در پروژه های سری زمانی، از روش random subsampling استفاده نکنید، چون منجر به دقت خیلی بالا میشه به خاطر data leakage، ولی در عمل دقت بسیار پایینی بدست خواهید آورد. همون روش k-fold cross validation که مورد تایید اکثر محققین است برای ارزیابی استفاده کنید.
🔵 اگه در پروژتون انتخاب ویژگی، کاهش بعد، یا نرمالیزشن انجام دادید، باید ببینید که به صورت استاندارد انجام شده یا نه. راه استاندارد اینه که همه کارها فقط با کمک داده آموزش انجام بشه. یعنی مثلا در کاهش بعد با PCA شما بردارهای ویژه رو با کمک داده آموزشی بدست بیارید و بعد اونارو روی داده تست و آموزش جهت کاهش بعد یا حذف افزونگی استفاده کنید.
3⃣گام سوم: ایرادی ندیدم! مجدد چک کنید.
🏢 آکادمی آنلاین مهندسی پزشکی و هوش مصنوعی
@Onlinebme