رگرسیون لسو یا رگرسیون طنابی یکی از انواع رگرسیونهای خطی است. با استفاده از این رگرسیون میتوان مهمترین ویژگیها را از میان تمام ویژگیهای موجود در مساله انتخاب کرد و ابعاد مساله را کاهش داد.در این مقاله به معرفی اجمالی این روش رگرسیونی میپردازیم. در این مقاله نیز میتوانید در مورد انواع روشهای رگرسیون مطالعه کنید.
سادهسازی
برای حل هر مسئله پیچیده اولین ایدهای که به نظر میرسد سادهسازی مسئله است. با سادهسازی میتوانیم از تحلیلهای خود نتایج بهتری به دست آوریم. برای انتخاب بهترین متغیرها یکی از سادهترین راهها محاسبه تابع هزینه به ازای تمام زیرمجموعههای ممکن از متغیرها و انتخاب زیرمجموعه بهینه با کمترین میزان هزینه است. در این روش مسئله رگرسیون خطی باید به ازای تمامی زیرمجموعهها، یعنی \(2^{m}\) بار، حل شود. این روش معمولاً برای مسائلی که دادههای زیادی دارند و یا تعداد متغیرهای مستقل آن زیاد است، راهکار مناسبی نیست. پس به سراغ رگرسیون Lasso میرویم که روش بهتری است.
کاربرد
رگرسیون لسو از آنجایی با نام رگرسیون طنابی نیز شناخته میشود که در این روش گویی متغیرهای مناسب با طنابی از سایر متغیرها جدا میشوند. در واقع روش مدلسازی در رگرسیون لسو مانند رگرسیون خطی است تنها با این تفاوت که در رگرسیون لسو، متغیرهای مستقل با همبستگی بالا حذف میشوند. چرا که متغیرهای وابسته با همبستگی بالا به نوعی دادههای اضافی (redundant) هستند که اطلاعات چندانی را در بر ندارند. در بسیاری از موارد، تعداد متغیرهای موجود در دیتاست عملی به قدری زیاد است که استفاده از رگرسیون لسو و حذف تعدادی از پارامترهایی که اطلاعات چندانی را در بر ندارند منطقی به نظر میرسد.
مکانیزم
حال سوال اینجاست که رگرسیون لسو چطور این کار را انجام میدهد؟ رگرسیون لسو علاوه بر کاهش جمع مربعات خطا، مجموع قدر مطلق ضرایب را نیز به گونهای کاهش میدهد که کمتر از مقدار معین \(s\) شود. بدین ترتیب، برخی ضرایب برابر \(0\) میشوند. متغیرهایی که ضریبشان صفر شده است، متغیرهایی هستند که همبستگی زیادی با سایر متغیرهای مستقل داشته و ارزش اطلاعاتیشان بسیار ناچیز است.

شکل بالا را در نظر بگیرید. در این شکل، نمودار Contour قرمز، تابع هزینه (که در صدد کمینه کردن آن هستیم) و ناحیه فیروزهای، محدوده نرم پارامترها را نشان میدهد که قرار است از مقدار معینی کمتر باشد. تابع هزینه مجموع توان دوم تفاضل مقدارهای واقعی و مقادیر پیش بینی شده است که به دلیل اینکه توان 2 دارد به شکل بیضوی است. ناحیهی فیروزهای نیز چون از یک معادلهی حاوی قدر مطلق به دست میآید به شکل لوزی در آمده است. به دلیل لوزی شکل بودن ناحیه فیروزهای، گوشههایی در محورها وجود دارد که هر وقت ناحیه بیضوی به نقطههای گوشه لوزی برخورد کند یکی از ویژگیها کاملاً از بین میرود. برای مثال در این شکل، ضریب \(\beta_{2}\) صفر شده است.
به طور کلی رگرسیون لسو برای ایجاد مدل بهینه با تعداد ویژگیهای متناسب استفاده میشود. ایده این مدل کاملاً کلی است و میتواند در مدلهای آماری متنوعی مانند رگرسیونهای عمومی و مدلهای درختی ایفای نقش کند.
تکه کد زیر پیادهسازی این مدل با استفاده از کتابخانهی scikit-learn را نشان میدهد.
from sklearn import linear_model clf = linear_model.Lasso(alpha=0.1) clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2]) print(clf.coef_) print(clf.intercept_)
خروجی
# Output [0.85 0. ] 0.15000000000000002