هنگامی که تشخیص دادید که جفتسازی Logit Counterfactual (CLP) تکنیک مناسب برای مورد استفاده شما است، میتوانید با انجام مراحل زیر از آن استفاده کنید:
- یک نمونه از
CounterfactualPackedInputs
با داده های اصلی و خلاف واقع ایجاد کنید . - برای تعیین اینکه آیا مداخله لازم است، نرخ تلنگر و تعداد تلنگر را اندازه بگیرید .
- در صورت نیاز به مداخله، دادههای ورودی اصلی، دادههای خلاف واقع، مدل اصلی و از دست دادن couterfactual را به مدل خلاف واقع منتقل کنید .
- تاثیر CLP را با اندازه گیری نرخ تلنگر و تعداد تلنگر ارزیابی کنید.
برای مشاهده نمونه ای از اعمال CLP در یک مدل Keras، به آموزش استفاده از جفت سازی Logit Counterfactual با Keras مراجعه کنید.
یک نمونه از CounterfactualPackedInputs
ایجاد کنید
برای ایجاد مجموعه داده خلاف واقع، با تعیین شرایط و ویژگیهایی که میخواهید ارزیابی کنید، شروع کنید که وقتی حذف یا جایگزین شود، ممکن است پیشبینی مدل شما را تغییر دهد.
هنگامی که شرایط و ویژگیهای ارزیابی را درک کردید، باید نمونهای از CounterfactualPackedInputs
ایجاد کنید که شامل ورودی اصلی و دادههای خلاف واقع است. ورودی اصلی باید مجموعه داده ای باشد که برای آموزش مدل Keras خود استفاده کرده اید. دادههای خلاف واقع دارای یک مقدار original_x
، یک مقدار counterfactual_x
و یک counterfactual_sample_weight
هستند. مقدار خلاف واقع باید تقریباً با مقدار اصلی یکسان باشد، با این تفاوت که یک یا چند ویژگی حساس حذف یا جایگزین شده است. کیفیت مجموعه داده خلاف واقع مهم است زیرا برای جفت کردن تابع ضرر بین مقدار اصلی و مقدار خلاف واقع با هدف اطمینان از عدم تغییر پیشبینی مدل زمانی که ویژگی حساس متفاوت است استفاده میشود.
برای جزئیات در مورد نحوه توسعه این مجموعه داده خلاف واقع، به دفترچه ایجاد یک مجموعه داده خلاف واقع سفارشی مراجعه کنید.
تعداد و نرخ تلنگر را اندازه گیری کنید
یک تلنگر به عنوان طبقهبندیکنندهای تعریف میشود که وقتی ویژگی حساس اشاره شده در مثال تغییر میکند، تصمیم متفاوتی میگیرد. موقعیتی را که یک طبقهبندی کننده پیشبینی خود را در حضور، غیاب یا تغییر یک ویژگی هویت تغییر میدهد، به تصویر میکشد. هنگام ارزیابی مقدار واقعی (امتیاز) طبقهبندیکننده باید از یک متریک پیوستهتر استفاده شود.
تعداد تلنگر
تعداد تلنگر تعداد دفعاتی را که طبقهبندیکننده در صورت تغییر عبارت هویت در یک مثال مشخص، تصمیم متفاوتی میدهد، اندازهگیری میکند.
- تعداد تلنگر کلی : کل تلنگرهای یک پیش بینی از مثبت به منفی و بالعکس.
- تعداد ورقهای پیشبینی مثبت به منفی : تعداد تلنگرهایی که برچسب پیشبینی از مثبت به منفی تغییر کرده است.
- تعداد تلنگرهای پیشبینی منفی به مثبت : تعداد تلنگرهایی که برچسب پیشبینی از منفی به مثبت تغییر کرده است.
نرخ تلنگر
نرخ چرخش احتمال اینکه طبقهبندی کننده تصمیم متفاوتی را در صورت تغییر عبارت هویت در یک مثال مشخص میدهد را اندازهگیری میکند.
- نرخ تلنگر کلی : تعداد کل تلنگرها نسبت به تعداد کل نمونه ها
- نرخ واژگونی پیشبینی مثبت به منفی : تعداد تلنگر مثبت به منفی نسبت به نمونههای مثبت در مجموعه داده خلاف واقع
- نرخ چرخش پیشبینی منفی به مثبت : تعداد تلنگر منفی به مثبت نسبت به نمونههای منفی در مجموعه داده خلاف واقع
پس از محاسبه نرخ بازگشت و تعداد تلنگر با شاخصهای انصاف ، میتوانید تعیین کنید که آیا طبقهبندیکننده بر اساس یک ویژگی حساس در دادهها، پیشبینی متفاوتی انجام میدهد یا خیر. میتوانید از تعداد مثالها و فواصل اطمینان برای تعیین اینکه آیا دادههای کافی برای اعمال CLP و نتیجهگیری از نرخ تلنگر دارید یا خیر، استفاده کنید. نرخ تلنگر بالا و تعداد تلنگر نشاندهنده وقوع این رفتار است و میتوان از آن برای تصمیمگیری در مورد مناسب بودن CLP برای مورد استفاده شما استفاده کرد. این تصمیم مختص مدل شما است و به عواملی مانند آسیب هایی که ممکن است برای کاربران نهایی وارد شود و محصولی که مدل در آن استفاده می شود، بستگی دارد.
جفتسازی Logit Counterfactual را در مدل Keras خود اعمال کنید
برای استفاده از CLP، به مدل Keras اصلی که به دنبال اصلاح آن هستید، مجموعه داده آموزشی اصلی و مجموعه داده خلاف واقع نیاز دارید. تعیین کنید که چه counterfactual loss
باید برای جفت شدن لاجیت اعمال شود. با این کار میتوانید مدل Counterfactual را با تابع ضرر و تابع ضرر از مدل اصلی خود بسازید.
پس از اعمال CLP، باید نرخ تلنگر و تعداد تلنگر و هرگونه تغییر در سایر معیارها مانند دقت کلی را محاسبه کنید تا بهبود حاصل از اعمال این تکنیک را اندازه گیری کنید.