راز داده‌های گمشده: راه‌حلی خفن با جنگل تصادفی برای ارزیابی‌های شناختی

خب رفقا، امروز می‌خوام براتون درباره یکی از اون مشکلات پر دردسر دنیای آمار و داده‌ها حرف بزنم: این که وقتی داده‌هامون ناقص میشه، چه جوری درست و حسابی ترمیمشون کنیم؟ مخصوصاً توی آزمون‌های تشخیص شناختی (Cognitive Diagnosis Assessments) که قراره بفهمیم فرد چه مهارتی بلده یا بلد نیست.

یه تیم به اسم You و همکاراش تو سال ۲۰۲۳ یه روشی ساختن به اسم Random Forest Threshold Imputation یا همون RFTI. این اسم طولانی رو اگه بخوام راحت بگم، یعنی روشی که با کمک جنگل تصادفی (Random Forest) میاد داده‌های جاافتاده رو حدس می‌زنه و جایگزین می‌کنه. جنگل تصادفی هم یه مدل کامپیوتریه که کلی درخت تصمیم (Decision Tree یعنی مدل‌هایی که می‌خوان پیش‌بینی کنن بر اساس داده‌های قبلی) رو با هم ترکیب می‌کنه تا نتیجه بهتری بگیره.

تو روش RFTI گفتن که اگه مدلت به داده‌ای امتیاز بالای ۰.۵ داد، یه یا همون ۱ می‌ذاریم، و اگه کمتر بود، صفر. ولی این که همیشه این خط رو رو ۰.۵ بذاریم یکم باعث می‌شه مطمئن نباشیم که واقعا درست‌ترین حدسه یا نه.

اینجا بود که ماجرا جالب‌تر شد! یه روش جدید آوردن به اسم Random Forest Dynamic Threshold Imputation یا RFDTI که خیلی باحال‌تره، چون آستانه (Threshold یعنی اون خطی که تعیین می‌کنیم از اینجا به بعد عدد تغییر کنه) رو دیگه سفت و ثابت ۰.۵ نگه نمی‌داره. به جاش، بسته به هر شرایط و داده، این آستانه رو عوض می‌کنه – بهش می‌گن آستانه پویا، یعنی Dynamic Threshold.

حالا چیکار می‌کنه این روش RFDTI؟ اومدن یه سری شبیه‌سازی (Simulation یعنی تقلید کردن شرایط واقعی با کامپیوتر) راه انداختن و نشون دادن که وقتی با این روش داده‌های ناقص رو تکمیل می‌کنی، مدل‌ها معمولاً بهتر کار می‌کنن – حتی بهتر از چهار روش قدیمی که کلی ساله مردم دارن استفاده می‌کنن. اون چهار تا چی بودن؟

  • شخصی‌سازی میانگین فردی (Person Mean Imputation)
  • جایگذاری دومحوره (Two-way Imputation)
  • الگوریتم توقع-بیشینه یا Expectation–Maximization که خلاصه بهش EM میگن (یه الگوریتم ریاضی برای برآورد کردن داده‌های ناقص)
  • جایگذاری چندگانه یا Multiple Imputation (که یعنی به جای یک بار، چندین بار داده ناقص رو با حدس‌های متفاوت پر کنیم)

نتایج چی شد؟ غالباً روش جدید یعنی RFDTI بهتر جواب داد، مخصوصاً برای داده‌هایی که گم‌شدنشون به صورت تصادفی اتفاق افتاده یا بستگی به بقیه داده‌ها نداره (مثلاً MCAR یا MAR؛ MCAR یعنی Missing Completely At Random، یعنی داده‌ها بی‌دلیل گم شده‌ان؛ MAR یعنی Missing At Random، یعنی گم‌ شدنشون یه ربطی به بقیه چیزا داره اما نه به خودشون). البته اگه داده‌ها خودسر گم شده باشن یا یه بخش از مخلوط حالت‌ها رو تشکیل بدن (MNAR یا MIXED؛ MNAR یعنی Missing Not At Random و یعنی داده‌ها بی‌دلیل خودشون غیب شدن)، این روش یه کمی از روش اصلی RFTI ضعیف‌تر شد، به‌خصوص وقتی کلی داده گم شده بود. ولی هنوز از اون روش‌های قدیمی قدیمی خیلی بهتر بود!

تازه، یه مثال واقعی هم زدن و نشون دادن برای داده‌های دارای حالت MNAR هم RFDTI همچنان عملکردش تقریباً مثل RFTI بود، ولی از بقیه روش‌ها حسابی سرتر بود. برای اینکه همه بتونن راحت از این روش استفاده کنن، یه ابزار آماده توی زبان برنامه‌نویسی R هم منتشر کردن تا هر کسی بخواد مجبور نباشه کد نویسی عجیب غریب کنه.

خلاصه بچه‌ها: اگه تا حالا واسه اینکه داده‌هاتون ناقص بودن حرص می‌خوردین، حالا یه راه‌حل خفن و هوشمندانه اینجاست که با دوتا آستانه پویا و جنگل تصادفی، می‌تونه با خیال راحت داده‌هاتون رو پر کنه. هم امتحانش باحاله، هم نتیجه میده! 😉

منبع: +