فصل ۱۲: نمودارهای Ceteris Paribus

عنوان اصلی: Ceteris Paribus Plots
منبع: https://christophm.github.io/interpretable-ml-book/ceteris-paribus.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


نمودارهای Ceteris Paribus (CP) (Kuźba و همکاران، ۲۰۱۹) نشان می‌دهند که تغییر در یک ویژگی واحد، پیش‌بینی یک نقطه داده را چطور تغییر می‌دهد.

نمودارهای Ceteris Paribus یکی از ساده‌ترین تحلیل‌هایی هستند که می‌توان انجام داد، با وجود نام لاتین پیچیده‌اش، که به معنای «سایر شرایط مساوی» است1 و یعنی یک ویژگی را تغییر می‌دهیم اما بقیه را دست‌نخورده نگه می‌داریم. این روش آن‌قدر ساده است چون فقط به یک ویژگی در هر لحظه نگاه می‌کند، مقادیر آن را به‌طور نظام‌مند تغییر می‌دهد، و نشان می‌دهد پیش‌بینی در سراسر بازهٔ آن ویژگی چگونه تغییر می‌کند. اما Ceteris Paribus روش مدل‌مستقلی است که برای شروع کتاب عالی است، چون اصول پایه‌ای تفسیر مدل‌مستقل را آموزش می‌دهد. همچنین، سادگی آن نباید فریبتان دهد: با ترکیب خلاقانهٔ چند منحنی Ceteris Paribus2، می‌توانید مدل‌ها را مقایسه کنید، ویژگی‌ها را مقایسه کنید، و مدل‌های دسته‌بندی چندکلاسه را بررسی کنید. منحنی‌های CP بلوک‌های سازندهٔ منحنی‌های Individual Conditional Expectation و نمودارهای وابستگی جزئی هستند، همان‌طور که در شکل ۱۲.۱ نشان داده شده است.

  • نمودارهای ICE، نمودارهای CP هستند که همهٔ منحنی‌های CP را برای کل مجموعه داده در بر دارند.
  • یک نمودار وابستگی جزئی (PDP) میانگین همهٔ منحنی‌های CP یک مجموعه داده است.

Ceteris Paribus، ICE و PDP.

شکل ۱۲.۱: رابطه میان Ceteris Paribus، ICE و PDP.


الگوریتم

بیایید با الگوریتم Ceteris Paribus شروع کنیم. این بخش نمونهٔ کوچکی هم هست از این‌که چطور وقتی از ریاضیات استفاده می‌کنیم، چیزها ممکن است پیچیده‌تر از آنچه واقعاً هستند به نظر برسند. الگوریتم زیر برای ویژگی‌های عددی است:

ورودی: نقطه داده $\mathbf{x}^{(i)}$ برای توضیح و ویژگی $j$

۱. یک شبکه مقادیر با فاصله مساوی بسازید: $z_1, \ldots, z_K$، که معمولاً $z_1 = \min(\mathbf{x}_j)$ و $z_K = \max(\mathbf{x}_j)$ است.

۲. برای هر مقدار شبکه $z_k \in \{z_1, \ldots, z_K\}$:

  • یک نقطه داده جدید بسازید $\mathbf{x}^{(i)}_{x_j := z_k}$.
  • پیش‌بینی $\hat{f}(\mathbf{x}^{(i)}_{x_j := z_k})$ را به دست آورید.

۳. منحنی‌های CP را نمایش دهید:

  • خطی برای نقاط داده $\left\{z_k,\; \hat{f}(\mathbf{x}^{(i)}_{x_j := z_k})\right\}_{k=1}^{K}$ رسم کنید.
  • نقطه‌ای برای نقطه داده اصلی $\left(x_j^{(i)},\; \hat{f}(\mathbf{x}^{(i)})\right)$ رسم کنید.

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

و برای یک ویژگی دسته‌ای:

۱. فهرست دسته‌های منحصربه‌فرد $z_1, \ldots, z_K$ را بسازید.

۲. برای هر دسته $z_k \in \{z_1, \ldots, z_K\}$:

  • یک نقطه داده جدید $\mathbf{x}^{(i)}_{x_j := z_k}$ بسازید.
  • پیش‌بینی $\hat{f}(\mathbf{x}^{(i)}_{x_j := z_k})$ را به دست آورید.

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

اما این توضیح پیچیده‌تر از آنچه لازم بود به نظر می‌رسید. بیایید نمودارهای CP را با چند مثال ملموس‌تر کنیم.


مثال‌ها

برای اولین مثال، به جنگل تصادفی‌ای نگاه می‌کنیم که احتمال مادگی یک پنگوئن را پیش‌بینی می‌کند. اولین پنگوئن در مجموعه داده آزمون را بررسی می‌کنیم، یک پنگوئن که عمق منقارش چند میلی‌متر است (با جنسیت واقعی مشخص). شکل ۱۲.۲ نشان می‌دهد که کاهش عمق منقار این پنگوئن، ابتدا احتمال پیش‌بینی‌شدهٔ مادگی را کمی افزایش می‌دهد، اما سپس آن را به‌شدت کاهش می‌دهد.

نمودار Ceteris Paribus برای عمق منقار و یک پنگوئن.

شکل ۱۲.۲: نمودار Ceteris Paribus برای عمق منقار و یک پنگوئن. خط، مقدار پیش‌بینی‌شده برای این پنگوئن خاص را هنگام تغییر عمق منقار نشان می‌دهد. عمق منقار واقعی پنگوئن با یک نقطه مشخص شده است.

از آن‌جا که این یک وظیفهٔ دسته‌بندی دودویی است، نمایش $\mathbb{P}(Y = \text{male})$ کاری زائد خواهد بود -- چراکه این مقدار فقط معکوس نمودار $\mathbb{P}(Y = \text{female})$ خواهد بود. اما اگر بیش از دو کلاس داشتیم، می‌توانستیم منحنی‌های Ceteris Paribus را برای همهٔ کلاس‌ها در یک نمودار رسم کنیم.

دوباره باید به یاد داشته باشیم که تغییر یک ویژگی می‌تواند وابستگی آن را با ویژگی‌های دیگر بشکند. نگاه‌کردن به همبستگی و دیگر معیارهای وابستگی می‌تواند مفید باشد. عمق منقار با جرم بدن و طول بال‌چه همبسته است. پس هنگام نگاه‌کردن به شکل ۱۲.۲، باید مراقب باشیم کاهش‌های شدید عمق منقار را در این نمودار Ceteris Paribus بیش از حد تفسیر نکنیم.

توضیح مترجم: «Ceteris paribus» عبارتی لاتین به معنای «سایر شرایط ثابت/مساوی» است. این اصطلاح در اقتصاد و علوم اجتماعی هم رایج است و به این معناست که وقتی اثر یک متغیر را بررسی می‌کنیم، فرض می‌کنیم بقیهٔ متغیرها تغییر نمی‌کنند -- دقیقاً همان کاری که این نمودارها انجام می‌دهند: فقط یک ویژگی را تغییر می‌دهند و بقیهٔ ویژگی‌های نقطهٔ داده را ثابت نگه می‌دارند.

فراتر از وابستگی‌های زوجی نگاه کنید

شکل ۱۲.۳ مثالی را نشان می‌دهد که در آن به‌طور مصنوعی ویژگی عمق منقار سبک‌ترین پنگوئن گونهٔ Gentoo را تغییر می‌دهیم. این نقطه داده وقتی فقط به ترکیب جرم بدن و عمق منقار نگاه کنیم، واقع‌بینانه است. همچنین وقتی فقط به عمق منقار و گونه نگاه کنیم نیز واقع‌بینانه است. اما وقتی عمق منقار جدید، جرم بدن و گونه را با هم در نظر بگیریم، غیرواقعی است.

نمودار پراکندگی عمق منقار و جرم بدن. دستکاری عمق منقار یک پنگوئن می‌تواند یک نقطه داده غیرواقعی ایجاد کند.

شکل ۱۲.۳: نمودار پراکندگی عمق منقار و جرم بدن. دستکاری عمق منقار یک پنگوئن می‌تواند یک نقطه داده غیرواقعی ایجاد کند.

سپس، مدل SVM‌ای را بررسی می‌کنیم که تعداد دوچرخه‌های اجاره‌شده را بر اساس اطلاعات آب‌وهوایی و فصلی پیش‌بینی می‌کند. یک روز از یک فصل خاص را با شرایط آب‌وهوایی معین انتخاب می‌کنیم و می‌بینیم تغییر ویژگی‌ها چگونه پیش‌بینی را تغییر می‌دهد. اما این بار آن را برای همهٔ ویژگی‌ها نمایش می‌دهیم، به شکل ۱۲.۴ نگاه کنید. تغییر تعداد دوچرخه‌های اجاره‌شده در ۲ روز قبل، بیشترین تأثیر را بر پیش‌بینی می‌گذارد. همچنین، دمای بالاتر برای اجارهٔ دوچرخهٔ بیشتر بهتر بوده است. اگر پیش‌بینی برای یک روز غیرکاری بود، مدل SVM تعداد اجارهٔ کمتری پیش‌بینی می‌کرد.

نحوهٔ تغییر پیش‌بینی تعداد اجارهٔ دوچرخه با تغییر تک‌تک ویژگی‌ها.

شکل ۱۲.۴: نحوهٔ تغییر پیش‌بینی تعداد اجارهٔ دوچرخه با تغییر تک‌تک ویژگی‌ها.

نسخهٔ مینیمال با Sparkline

نمودارهای CP را می‌توان در قالب Sparkline بسته‌بندی کرد؛ یک نمودار خطی مینیمالیستی که با کار (Tufte، ۱۹۸۳) رایج شد.

به‌طور کلی، نمودارهای CP نشان می‌دهند که تغییرات ویژگی -- از تغییرات کوچک تا تغییرات بزرگ در همهٔ جهت‌ها -- چگونه روی پیش‌بینی اثر می‌گذارد. با مقایسهٔ همهٔ ویژگی‌ها در کنار هم با یک محور عمودی مشترک، می‌توانیم ببینیم کدام ویژگی تأثیر بیشتری بر پیش‌بینی این نقطه داده دارد. با این حال، همبستگی میان ویژگی‌ها یک نگرانی است، به‌خصوص هنگام تفسیر منحنی CP دور از مقدار اصلی (که با نقطه مشخص شده است). برای مثال، افزایش دما تا ۳۰ درجهٔ سلسیوس اما ثابت نگه‌داشتن فصل، کاملاً غیرواقعی خواهد بود.

نمودارهای Ceteris Paribus بسیار انعطاف‌پذیرند. می‌توانیم منحنی‌های CP را برای مدل‌های مختلف محاسبه کنیم تا بفهمیم آن‌ها چگونه با ویژگی‌ها متفاوت رفتار می‌کنند. در شکل ۱۲.۵، نمودارهای Ceteris Paribus را برای مدل‌های مختلف در پیش‌بینی کرایهٔ دوچرخه مقایسه می‌کنیم.

منحنی‌های Ceteris Paribus برای وظیفهٔ پیش‌بینی کرایهٔ دوچرخه در مدل‌های مختلف: مدل خطی، جنگل تصادفی، SVM و درخت تصمیم.

شکل ۱۲.۵: منحنی‌های Ceteris Paribus برای وظیفهٔ پیش‌بینی کرایهٔ دوچرخه در مدل‌های مختلف: مدل خطی، جنگل تصادفی، SVM و درخت تصمیم.

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

در مقایسه‌ها خلاق باشید

نمودارهای Ceteris Paribus ساده‌اند، اما وقتی چند منحنی CP را با هم ترکیب کنید، به‌طرز شگفت‌انگیزی روشنگرند:

  • ویژگی‌ها را مقایسه کنید.
  • مدل‌های حاصل از الگوریتم‌های یادگیری ماشین متفاوت یا با تنظیمات فراپارامتری متفاوت را مقایسه کنید.
  • احتمال کلاس‌ها را مقایسه کنید.
  • نقاط داده متفاوت را مقایسه کنید (به منحنی‌های ICE هم نگاه کنید).
  • داده را زیرمجموعه‌بندی کنید (مثلاً بر اساس یک ویژگی دودویی) و منحنی‌های CP را مقایسه کنید.

نقاط قوت

نمودارهای Ceteris Paribus فوق‌العاده ساده برای پیاده‌سازی و درک هستند. این ویژگی آن‌ها را نقطهٔ شروع خوبی برای مبتدیان می‌سازد، اما همچنین برای انتقال تفسیرپذیری مدل‌مستقل به دیگران، به‌خصوص افراد غیرمتخصص، مناسب است.

نمودارهای CP می‌توانند محدودیت‌های روش‌های تخصیص‌محور را جبران کنند. روش‌های مبتنی بر تخصیص مانند SHAP یا LIME نشان نمی‌دهند تابع پیش‌بینی نسبت به تغییرات محلی چقدر حساس است. نمودارهای Ceteris Paribus می‌توانند مکمل تکنیک‌های تخصیص‌محور باشند و هنگام تفسیر پیش‌بینی‌های فردی، تصویری کامل ارائه دهند.

نمودارهای Ceteris Paribus بلوک‌های سازندهٔ انعطاف‌پذیری هستند. آن‌ها بلوک‌های سازندهٔ سایر روش‌های تفسیر هستند، اما همچنین می‌توانید در ترکیب این خطوط در میان مدل‌ها، کلاس‌ها، تنظیمات فراپارامتری و ویژگی‌ها خلاقیت به خرج دهید تا بینش‌های ظریفی دربارهٔ پیش‌بینی‌های مدل ایجاد کنید.

محدودیت‌ها

نمودارهای Ceteris Paribus فقط تغییر یک ویژگی را در هر لحظه نشان می‌دهند. این یعنی نمی‌بینیم دو ویژگی چگونه با هم تعامل دارند. البته می‌توانید دو ویژگی را تغییر دهید، به‌خصوص اگر یکی پیوسته و دیگری دودویی باشد، و آن‌ها را در همان نمودار CP رسم کنید. اما این فرآیندی دستی‌تر است.

وقتی ویژگی‌ها همبسته باشند، تفسیر آسیب می‌بیند. وقتی ویژگی‌ها همبسته‌اند، همهٔ بخش‌های منحنی محتمل نیستند یا حتی ممکن است کاملاً غیرواقعی باشند. این مشکل را می‌توان با محدودکردن بازهٔ نمودارهای Ceteris Paribus به بازه‌های کوتاه‌تر، دست‌کم برای ویژگی‌های همبسته، کاهش داد. اما این هم به معنای آن است که به یک مدل یا رویه‌ای نیاز داریم که به ما بگوید این بازه‌ها چه هستند.

به‌طور کلی، باید در تفسیر علّی محتاط بود؛ یا اگر تفسیر علّی می‌خواهید، مطمئن شوید خودِ مدل علّی است. این مشکل در همهٔ روش‌های تفسیر وجود دارد، اما خطر تفسیر علّی نادرست ممکن است در نمودارهای CP بیشتر باشد، چون آستانهٔ نمایش این نمودارها به افراد غیرمتخصص پایین‌تر است.

نرم‌افزار و جایگزین‌ها

همهٔ نمودارهای این فصل با بستهٔ R به نام ceterisParibus ساخته شده‌اند. این بسته پیاده‌سازی Python هم دارد. همچنین می‌توانید با هر ابزاری که بتواند نمودارهای ICE تولید کند، مانند ICEBox و iml، نمودارهای CP نیز بسازید؛ کافی است یک «مجموعه داده» ارائه دهید که فقط شامل همان یک نقطه دادهٔ موردنظر باشد. با این حال، بستهٔ ceterisParibus مناسب‌تر است چون مقایسهٔ منحنی‌های Ceteris Paribus را ساده‌تر می‌کند.

1

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

2

منظور از «منحنی CP» یک خط واحد است، و منظور از «نمودار CP» نموداری است که یک یا چند منحنی CP را نشان می‌دهد.