Platt Scaling و Isotonic Regression دو راهِ نگاشتِ نمرهٔ مدل به احتمالاند؛ شکلِ نگاشت و روشِ برازششان فرق دارد. برایِ دیدنِ تفاوت، رویِ هشت نمرهٔ ساختگی یک سیگمویدِ دوپارامتری و یک نگاشتِ یکنوایِ بلوکی را واقعاً برازش میدهیم و چهار ردیفِ جدا را ارزیابی میکنیم. این کد اجرایِ کاملِ الگوریتمِ Platt یا scikit-learn نیست.
دادهٔ کالیبراسیون را از آموزشِ دستهبند جدا کنیم
نمرههایِ اعتبارسنجی از منفیِ سه تا چهار و برچسبها ۰،۰،۱،۰،۱،۰،۱،۱ هستند؛ نویسنده همه را ساخته است. دستهبندِ پایه اینجا آموزش ندیده و تولیدِ این نمرهها به مدلِ واقعی نسبت داده نشده است. چهار ردیفِ جدا هم با نمرههایِ منفیِ ۲٫۵، منفیِ ۰٫۵،۰٫۵ و۲٫۵ داریم؛ برچسبهایشان صفر،صفر،یک ویکاند و در برازش وارد نمیشوند.
در پروژهٔ واقعی، نمرههایِ برازشِ کالیبراتور باید از دادهای بیایند که برایِ آموزشِ دستهبند استفاده نشده است. اگر با همین ردیفها روش و پارامتر را مدام انتخاب کنیم، ارزیابیِ نهاییِ مستقل نداریم. دادهٔ کوچکِ این مثال تنها برایِ دیدنِ حساب است و شاهدِ کیفیتِ عمومی نیست.
سیگمویدِ دوپارامتری چه چیزی یاد میگیرد؟
نگاشتِ ما sigmoid(a×score+b) است. a شیب و b جابهجاییِ نگاشت را تنظیم میکند. کد با گرادیان و Hessianِ زیانِ log-loss و گامِ Newton همراهِ جستوجویِ کاهشِ زیان، هر دو را از هشت ردیف برازش میدهد. تاریخچهٔ واقعیِ زیان و دو پارامتر در JSON آمدهاند؛ ضریبِ a مثبت و b غیرصفر است.
روشِ مشهورِ Platt خانوادهٔ سیگموید را به کار میگیرد، اما جزئیاتِ برازش و هموارسازیِ هدف مهماند. تمرینِ ما بیشینهٔ درستنمایی با برچسبِ خامِ صفر و یک است و target smoothingِ نسخهٔ کاملِ Platt را اجرا نمیکند. علامتِ پارامترها هم به شیوهٔ نوشتنِ sigmoid بستگی دارد؛ آن را بیتبدیل با قراردادِ 1/(1+exp(Af+B)) یکی ننامید.
نگاشتِ Isotonic با ادغامِ بلوکها
نمرهها را بهترتیبِ صعودی داریم. هر برچسب نخست یک بلوک است؛ اگر میانگینِ بلوکِ قبلی از بعدی بزرگتر باشد، دو بلوک ادغام میشوند تا نگاشت نزولی نشود. این روشِ PAV، رویِ همین نمرههایِ یکتایِ مرتب، خطایِ مربعی را با قیدِ یکنوایی برازش میدهد. عددهایِ میانی به نیم تبدیل میشوند و تساویِ چند خروجی ایجاد میشود.
برایِ نمرهٔ تازه، قراردادِ محلیِ ما یک تابعِ پلهایِ چپ است: مقدارِ نزدیکترین نمرهٔ برازششدهٔ کوچکتر یا مساوی را میگیریم و بیرونِ دامنه به دو انتها محدود میکنیم. این قرارداد را رفتارِ interpolationِ sklearn.IsotonicRegression نمینامیم. نمرههایِ تکراری نیز در ورودیِ این تمرین رد میشوند؛ پوششِ عمومیِ همهٔ دادهها ادعا نشده است.
نتیجهٔ اجرا را جدا گزارش کنیم
جدولِ زیر Brier، یعنی میانگینِ مربعِ اختلافِ احتمال و برچسب، را از خودِ اجرایِ سه نگاشت میدهد. تابعِ خام فقط sigmoid(score) است و هیچ پارامترِ تازهای ندارد. دادهٔ جدا در ستونِ دومِ امتیاز، در هیچیک از دو برازش استفاده نشده است.
| نگاشت | Brierِ برازش | Brierِ چهار ردیفِ جدا |
|---|---|---|
| raw_sigmoid | 0.20645 | 0.07415 |
| fitted_sigmoid | 0.18275 | 0.11296 |
| authored_left_step_isotonic | 0.12500 | 0.18750 |
کمترشدنِ Brier بهتنهایی گواهِ بهترشدنِ تمامِ جنبههایِ کالیبراسیون نیست؛ تفکیکپذیری و ویژگیِ داده هم اثر دارند. تعدادِ کمِ ردیفها، نبودِ فاصلهٔ عدمقطعیت و دستسازبودنِ نمرهها دامنهٔ نتیجه را محدود میکنند. از این جدول رتبهبندیِ عمومیِ دو روش یا حداقلِ قطعیِ داده برایِ همهٔ پروژهها نمیسازیم.
با Temperature Scaling چه فرقی دارد؟
تنظیمِ دمایِ کالیبراسیون در مثالِ دودویی یک مقیاسِ مثبت بدونِ جابهجاییِ مستقل دارد؛ اینجا سیگمویدِ دوپارامتری و نگاشتِ غیرپارامتریِ بلوکی برازش شدند. یکنواییِ سختِ سیگمویدِ با شیبِ مثبت ترتیب را نگه میدارد؛ Isotonic میتواند تساوی بسازد. اثرِ واقعی بر رتبهبندی و معیارِ کار باید جدا سنجیده شود.
برایِ پاسخگویی یا تحلیلِ مشتری، معنایِ نمره و خروجیِ مرجع را در بررسیِ نیاز با اپرا روشن کنید. این راهنما اعلامِ روشِ داخلیِ محصول یا تضمینِ احتمالِ درستِ هر پاسخ نیست؛ فایلِ زیر فقط دو برازشِ مشخصِ همین تمرین را بازتولید میکند.
فایل تمرین و منبع
برازشِ واقعیِ سیگمویدِ دوپارامتری و ادغامِ بلوکهایِ PAV · پارامترها، بلوکهایِ یکنوا و امتیازِ دادهٔ جدا
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.