تشخیص ناهنجاری توضیح‌پذیر با RuleFit: راهنمایی شهودی

وقتی نتایج تشخیص ناهنجاری را به ذی‌نفعان خود نشان می‌دهید، همیشه اولین سؤال آن‌ها این است: «چرا؟»

در عمل، صرفاً پرچم‌گذاری یک ناهنجاری کافی نیست. درک اینکه چه چیزی اشتباه بوده، برای تصمیم‌گیری درست در مورد اقدام بعدی بسیار حیاتی است.

با این حال، بیشتر روش‌های یادگیری ماشین در تشخیص ناهنجاری فقط یک امتیاز ناهنجاری تولید می‌کنند. این مدل‌ها ذاتاً «جعبه سیاه» هستند و فهمیدن دلیل خروجی آن‌ها بسیار دشوار است — چرا این نمونه امتیاز ناهنجاری بیشتری نسبت به نمونه‌های مشابه دارد؟

برای حل این چالش، شاید شما هم به سراغ تکنیک‌های معروف XAI (هوش مصنوعی توضیح‌پذیر) رفته‌اید. شاید اهمیت ویژگی‌ها را محاسبه کرده‌اید تا بفهمید کدام متغیرها عامل ناهنجاری هستند یا از تحلیل‌های خلاف‌واقعی (counterfactual) استفاده کرده‌اید تا ببینید یک نمونه چقدر با حالت نرمال فاصله دارد.

این روش‌ها مفید هستند، اما اگر بتوانید کار بیشتری انجام دهید چه؟ اگر بتوانید مجموعه‌ای از قوانین قابل‌تفسیر IF-THEN (اگر-آنگاه) استخراج کنید که رفتار ناهنجاری را به طور دقیق توصیف کنند چه؟

این دقیقاً همان چیزی است که الگوریتم RuleFit [1] وعده می‌دهد.

در این مقاله، ما به شکل شهودی بررسی می‌کنیم که RuleFit چگونه کار می‌کند، چگونه می‌توان آن را برای توضیح ناهنجاری‌ها به کار برد و یک مطالعه موردی عملی را مرور می‌کنیم.


1. RuleFit چگونه کار می‌کند؟

قبل از ورود به جزئیات فنی، بیایید هدف نهایی را مشخص کنیم: ما می‌خواهیم مجموعه‌ای از قوانین IF-THEN داشته باشیم که نمونه‌های ناهنجار را توصیف می‌کنند و همچنین بدانیم کدام قانون مهم‌تر است.

برای رسیدن به این هدف، باید به دو سؤال پاسخ دهیم:

  1. چگونه می‌توانیم قوانین IF-THEN معناداری از داده‌ها تولید کنیم؟

  2. چگونه می‌توانیم اهمیت هر قانون را بسنجیم تا بدانیم کدام‌یک مهم‌تر است؟

الگوریتم RuleFit این مسئله را با دو گام مکمل حل می‌کند: «Rule» و «Fit».


1.1 بخش “Rule” در RuleFit

در RuleFit، یک قانون به شکل زیر است:

sql
IF x1 < 10 AND x2 > 5 THEN 1 ELSE 0

اگر این ساختار را به شکل یک مسیر درخت تصمیم (decision tree) ببینیم، آشنا به نظر می‌رسد.

در واقع، یک قانون فقط مسیر خاصی در یک درخت تصمیم است. RuleFit برای تولید این قوانین از الگوریتم‌های جنگلی مانند Random Forest یا Gradient Boosting استفاده می‌کند تا انواع متنوعی از درخت‌ها ساخته شوند. هر مسیر از ریشه تا برگ در این درخت‌ها، می‌تواند تبدیل به یک قانون شود.

نکته مهم: RuleFit به مقدار پیش‌بینی نهایی در هر گره کاری ندارد؛ فقط از شرایط منتهی به آن گره برای ساخت قانون استفاده می‌کند.


1.2 بخش “Fit” در RuleFit

بعد از ساخت مجموعه‌ای از قوانین، حالا باید بفهمیم کدام‌یک از این قوانین واقعاً مهم هستند.

RuleFit هر قانون را به صورت یک ویژگی باینری جدید در نظر می‌گیرد (0 یا 1 بر اساس اینکه قانون برای نمونه برقرار است یا نه). سپس، با استفاده از رگرسیون خطی تنک (Lasso)، یک مدل را روی ترکیب ویژگی‌های خام + قوانین باینری می‌سازد.

ویژگی‌های با اهمیت کم توسط Lasso حذف می‌شوند (ضریب آن‌ها صفر می‌شود). بنابراین قوانینی که باقی می‌مانند، همان‌هایی هستند که واقعاً در پیش‌بینی هدف مؤثر بوده‌اند. اندازه ضرایب، میزان اهمیت آن‌ها را نشان می‌دهد.


1.3 جمع‌بندی

الگوریتم RuleFit به‌صورت زیر عمل می‌کند:

  1. Rule: استخراج قوانین با ساخت مجموعه‌ای از درخت‌های تصمیم.

  2. Fit: استفاده از رگرسیون تنک برای انتخاب قوانین مهم.

در پایان، قوانینی که ضریب آن‌ها صفر نیست، برای تفسیر ناهنجاری‌ها ارزش دارند.

اما اگر با تشخیص ناهنجاری کار می‌کنیم که یک مسئله بدون نظارت (unsupervised) است، چطور می‌توانیم RuleFit را به کار ببریم؟


2. توضیح ناهنجاری با RuleFit

2.1 الگوی کاربرد

برای استفاده از RuleFit در یک مسئله بدون نظارت، ابتدا باید آن را به مسئله‌ای با نظارت تبدیل کنیم.

بعد از اجرای الگوریتم تشخیص ناهنجاری (مثل LOF یا Autoencoder)، می‌توانیم برچسب‌هایی تعریف کنیم: ۱ برای نمونه‌های ناهنجار و ۰ برای نمونه‌های نرمال. این برچسب‌ها به‌عنوان «هدف» برای RuleFit عمل می‌کنند.

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

  • با برچسب باینری → چه چیزی باعث ناهنجاری می‌شود؟

  • با امتیاز → شدت ناهنجاری چقدر و به خاطر چه عواملی است؟

در عمل، استفاده از برچسب باینری برای تفسیر ناهنجاری رایج‌تر است.


2.2 مطالعه موردی

بیایید از مجموعه داده معروف Iris استفاده کنیم.

  • Setosa و Versicolor به‌عنوان داده‌های نرمال (100 نمونه)

  • 10 نمونه از Virginica به‌عنوان ناهنجار

ما مدل LOF را برای شناسایی ناهنجاری‌ها اجرا می‌کنیم. سپس، از RuleFit استفاده می‌کنیم تا بفهمیم LOF چگونه تصمیم گرفته که یک نمونه ناهنجار است.

پس از اجرای RuleFit، مدلی داریم که بر اساس قوانین IF-THEN قابل تفسیر، پیش‌بینی ناهنجاری می‌کند. این مدل کاملاً با خروجی LOF منطبق است.

یکی از قوانین نهایی به این شکل است:

اگر طول گلبرگ بیشتر از 5.45 سانتی‌متر و عرض آن بیشتر از 2 سانتی‌متر باشد، احتمال اینکه نمونه ناهنجار باشد ۸۵ برابر می‌شود.

این قانون با ضریب بزرگ‌ترین، تمام ۵ نمونه ناهنجار شناسایی‌شده را توضیح می‌دهد.


3. نتیجه‌گیری

در این مطلب، با الگوریتم RuleFit آشنا شدیم و دیدیم که:

  • چگونه قوانین قابل‌تفسیر از داده‌ها استخراج می‌کند.

  • چگونه می‌توان از آن برای توضیح ناهنجاری‌های شناسایی‌شده استفاده کرد.

  • یک مثال عملی با مجموعه داده Iris را بررسی کردیم.

RuleFit یک راهکار قدرتمند برای افزودن لایه‌ای از توضیح‌پذیری به مدل‌های تشخیص ناهنجاری است و به ما کمک می‌کند بفهمیم «چه چیزی باعث ناهنجاری شده».

فهرست مطالب

پیمایش به بالا