رگرسیون ریج

رگرسیون ریج (به انگلیسی: Ridge regression) یکی از نسخه‌های رگرسیون خطی است که در مسائلی با متغیرهای مستقل دارای همبستگی بالا برای تخمین ضرایب استفاده می‌شود و مشکل هم‌خطی چندگانه را کاهش می‌دهد. ریج، همچنین یکی از روش‌های تنظیم مدل است که از بیش‌برازش در رگرسیون جلوگیری می‌کند. در این روش، نُرمِ  ضرایب به تابع هزینه مجموع مربعات خطا حین فرایند آموزش مدل، افزوده می‌شود. با این کار وزن‌های مدل تا حد امکان کوچک نگه داشته می‌شوند.

تعریف ریاضی 
فرض کنید در مسئله رگرسیون، مجموعه داده‌ها شامل  جفت متغیر پیشگو و متغیر پاسخ به صورت  باشد. هدف بدست آوردن  به عنوان ترکیبی خطی از   است یعنی  . رگرسیون خطی معمولی به شکل زیر در پی یافتن و بهینه است به طوری که مجموع مربعات خطا را کمینه کند:

در رگرسیون ریج ضریبی از نُرمِ  به تابع هزینه اضافه می‌شود:

پارامتر   میزان جریمه روی نُرمِ  را مشخص می‌کند. اضافه کردن ضریبی از نُرمِ   به تابع هزینه معادلِ ایجاد محدودیتی بر روی نُرمِ  است:

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

فرم بستهٔ جواب 
برای به دست آوردن فرم بستهٔ جواب به فرم ماتریسی تابع هزینه را توجه کنید:

کافیست نسبت به  مشتق بگیریم:

در نتیجه:

مصورسازی 
برای مصورسازی روش رگرسیوت ریح توجه کنید که جمع خطای مربعات، به شکل خطوط تراز بیضوی نمایش داده می‌شود. به علاوه در مسألهٔ رگرسیون ریج، ناحیه‌ای که ضرایب مدل را مشخص می‌کند از رابطه زیر به دست می‌آید:

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

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

پیاده‌سازی (پایتون) 
با استفاده از کتابخانهٔ Sickit-Learn زبان برنامه‌نویسی پایتون می‌توان رگرسیون ریج را به سادگی، به صورت زیر پیاده‌سازی کرد:from sklearn.linear_model import Ridge

ridge = Ridge(alpha=0.1)
ridge.fit(X_train, y_train)
prediction= lasso.predict(X_test)پارامتر تنظیم مدل در این مثال ساده برابر با  در نظر گرفته شده و پس از آموزش، از مدل برای پیش‌بینی روی دادهٔ جدید استفاده شده‌است.

یادداشت‌ها

منابع 

الگوریتم‌های یادگیری ماشینی
تحلیل رگرسیون