یه روز بارونی توی دهه ۱۹۰۰ یه دانشمند به اسم فرانسیس گالتون، دنبال راهی بود که قد بچهها رو بر اساس قد والدینشون پیشبینی کنه. اون با یه عالمه داده سر و کار داشت و نمیدونست چطور میتونه از این اطلاعات استفاده مفیدی بکنه. اینجا بود که یه فکر بکر به ذهنش رسید: آیا میشه یه رابطه ریاضی بین این دادهها پیدا کرد؟
گالتون فهمید که با یه خط ساده که از بین نقاط دادهها میگذره، میتونه یه الگوی تقریبی برای پیشبینی قد بچهها پیدا کنه. این ایده که بعدها به "رگرسیون خطی" معروف شد، یکی از اصول اساسی آمار و یادگیری ماشین شد.
رگرسیون خطی یه روش تحلیل آماریه که برای پیشبینی مقدار یه متغیر بر اساس مقدار یه متغیر دیگه استفاده میشه. متغیری که میخوای پیشبینی کنی بهش میگن متغیر وابسته و متغیری که ازش برای پیشبینی استفاده میکنی میگن متغیر مستقل.
این روش تحلیل سعی میکنه ضرایب یه معادله خطی رو پیدا کنه که با داشتن یک یا چند متغیر مستقل، بهترین پیشبینی رو برای مقدار متغیر وابسته به دست بیاره. رگرسیون خطی یه خط مستقیم یا سطحی رو پیدا میکنه که اختلاف بین مقادیر پیشبینیشده و واقعی رو به حداقل برسونه. ماشین حسابهای ساده رگرسیون خطی از روش "کمترین مربعات" برای پیدا کردن بهترین خط برای دادههای دو تایی استفاده میکنن. بعدش میتونی مقدار X (متغیر وابسته) رو از Y (متغیر مستقل) تخمین بزنی.
حالا بذار با یه مثال مفهوم رگرسیون خطی و کاربردش رو برات سادهتر کنم؛
فرض کن تو یه بستنیفروشی داری و میخوای بدونی تو روزای گرم چندتا بستنی میفروشی. مثلا اگه دما ۳۰ درجه باشه، چندتا بستنی فروش داری؟ اینجاست که رگرسیون خطی به کارت میاد.
فرض کن چند روز گذشته دمای هوا و تعداد بستنیهایی که فروختی رو یادداشت کردی. مثلا دادههات اینجوریه:
حالا میخوای ببینی اگه دما ۲۸ درجه باشه، چندتا بستنی میتونی بفروشی. اینجاست که رگرسیون خطی میاد وسط و بهت کمک میکنه یه خط راست پیدا کنی که بهترین رابطه بین دما و فروش بستنی رو نشون بده.
چطوری کار میکنه؟
رگرسیون خطی یه خط صاف پیدا میکنه که بهترین توضیحدهنده رابطه بین دما (متغیر مستقل) و فروش بستنی (متغیر وابسته) باشه. فرمول این خط به شکل زیره:
y=mx+by = mx + by=mx+b
چطوری ازش استفاده کنیم؟
با استفاده از دادههایی که داری، میتونی ضرایب mmm و bbb رو حساب کنی. مثلا فرض کن محاسبات نشون بده:
y=4x+10y = 4x + 10y=4x+10
این یعنی برای هر درجه افزایش دما، ۴ تا بستنی بیشتر میفروشی و وقتی دما صفره، ۱۰ تا بستنی میفروشی. حالا اگه بخوای بدونی تو دمای ۲۸ درجه چندتا بستنی میفروشی، فقط کافیه دما رو بذاری تو فرمول:
y=4(28)+10=112+10=122y = 4(28) + 10 = 112 + 10 = 122y=4(28)+10=112+10=122
پس تو دمای ۲۸ درجه، احتمالاً ۱۲۲ تا بستنی میفروشی.
رگرسیون خطی کمک میکنه تا بتونی بر اساس دادههای گذشته، پیشبینی کنی که در شرایط مختلف چه اتفاقی میافته. این روش تو خیلی از زمینهها مثل فروش، پزشکی، اقتصاد و حتی علوم اجتماعی کاربرد داره. با استفاده از این روش، میتونی تصمیمهای بهتری بگیری و بهتر برنامهریزی کنی.
مدلهای رگرسیون خطی نسبتا سادهان و یه فرمول ریاضی قابل فهم بهت میدن که میتونه پیشبینیهایی انجام بده. این روش تو خیلی از زمینهها مثل علوم زیستی، رفتاری، محیطی، اجتماعی و کسبوکار کاربرد داره. مدلهای رگرسیون خطی یه روش اثبات شده برای پیشبینی علمی و قابل اعتماد آینده هستن. از اونجایی که این روش یه روش آماری قدیمیه، ویژگیهای مدلهای رگرسیون خطی خوب درک شدن و میتونن خیلی سریع آموزش ببینن.
رگرسیون خطی به رهبران کسبوکار و سازمانها کمک میکنه تصمیمات بهتری بگیرن. سازمانها حجم زیادی از دادهها رو جمعآوری میکنن و رگرسیون خطی بهشون کمک میکنه از این دادهها برای مدیریت بهتر واقعیت استفاده کنن، به جای اینکه به تجربه و حدس تکیه کنن. میتونی حجم زیادی از دادههای خام رو بگیری و تبدیل به اطلاعات کاربردی کنی.
همچنین میتونی از رگرسیون خطی برای فهم بهتر الگوها و روابطی که همکارانت تو کسبوکارتون قبلا دیده و فکر میکردن میدونن، استفاده کنی. مثلا، تحلیل دادههای فروش و خرید میتونه بهت کمک کنه الگوهای خرید خاص تو روزها یا زمانهای مشخص رو کشف کنی. اطلاعاتی که از تحلیل رگرسیون به دست میاد، میتونه به رهبران کسبوکار کمک کنه زمانهایی که محصولات شرکتشون تقاضای بالایی دارن رو پیشبینی کنن.
رگرسیون خطی یکی از اون ابزارهایی هست که وقتی بفهمی چطوری کار میکنه، میتونی ازش تو خیلی از زمینهها استفاده کنی. بیایید با هم چند تا از کاربردهای جذابش رو بررسی کنیم.
فرض کن میخوای پیشبینی کنی یه فروشنده در طول یک سال چقدر فروش داره. با استفاده از رگرسیون خطی میتونی متغیرهای مختلفی مثل سن، تحصیلات و سالهای تجربه رو در نظر بگیری و ببینی که هر کدوم چقدر روی فروش تاثیر دارن. اینجوری میتونی بفهمی که چه عواملی باعث افزایش فروش میشن.
رگرسیون خطی میتونه کمک کنه بفهمی که چه عواملی باعث میشه مشتریها بیشتر خرید کنن. مثلاً اگه یه رستوران داری، میتونی تحلیل کنی که تبلیغات تلویزیونی، تخفیفها یا حتی روزهای خاص هفته چقدر روی تعداد مشتریها تأثیر داره.
مثال:
فرض کن دادههای شما اینجوری باشه:
با استفاده از رگرسیون خطی، میتونی بفهمی که ترکیب این عوامل چطور روی تعداد مشتریها تأثیر میذاره.
وقتی قیمت یه محصول تغییر میکنه، معمولاً رفتار مصرفکنندهها هم تغییر میکنه. رگرسیون خطی میتونه کمک کنه بفهمی که این تغییرات قیمت چقدر روی مصرف تاثیر میذاره. مثلاً اگه قیمت یه محصول خاص مدام تغییر کنه، با رگرسیون میتونی ببینی که آیا مصرف کم میشه یا نه. اگه مصرف به طور چشمگیری کم نشه، میتونی بفهمی تا چه قیمتی مردم حاضرن اون محصول رو بخرن. این اطلاعات برای مدیران فروشگاهها خیلی مفیده.
شرکتهای بزرگ مثل گوگل و فیسبوک از رگرسیون خطی برای بهینهسازی تبلیغات استفاده میکنن. اونا با تحلیل دادههای گذشته میتونن بفهمن که چه نوع تبلیغاتی در چه زمانی بیشترین تأثیر رو داره.
مثال:
اگه دادههای تبلیغاتی شما نشون بده که تبلیغات صبحگاهی بهتر از تبلیغات عصرگاهی جواب میده، میتونی بودجه تبلیغاتیت رو بیشتر روی صبحها متمرکز کنی.
رگرسیون خطی توی حوزههای مالی و بورس هم خیلی کاربرد داره. سرمایهگذارا از این روش استفاده میکنن تا روند قیمت سهام و اوراق بهادار رو پیشبینی کنن و تصمیمات بهتری بگیرن.
در زمینه پزشکی، رگرسیون خطی میتونه برای پیشبینی روند بیماریها و تأثیر درمانها استفاده بشه. مثلاً میشه رابطه بین دوز دارو و کاهش علائم بیماری رو بررسی کرد.
رگرسیون خطی توی تحلیل ریسک هم خیلی کاربرد داره. مثلاً یه شرکت بیمه میتونه از این روش برای تحلیل و برآورد هزینههای خسارت بیمهنامههای مختلف استفاده کنه. با این تحلیل، مدیران شرکت میتونن تصمیم بگیرن که کجاها ریسک بیشتری بپذیرن و کجاها محتاطتر باشن.
رگرسیون خطی فقط برای کسبوکار نیست؛ توی ورزش هم خیلی کاربرد داره. مثلاً ممکنه بخوای بدونی که تعداد بازیهای برده یه تیم بسکتبال در فصل، به تعداد امتیازاتی که در هر بازی میگیرن مربوطه یا نه. با رگرسیون خطی میتونی این رابطه رو تحلیل کنی. همچنین میتونی ببینی که آیا تعداد بازیهای برده با میانگین امتیازاتی که حریفهاشون میگیرن رابطه داره یا نه. با یه مدل خوب، میتونی پیشبینی کنی که یه تیم چقدر احتمال بردن بازیها رو داره.
رگرسیون خطی یه ابزار قدرتمند و سادهست که میتونه توی خیلی از زمینهها بهت کمک کنه. از پیشبینی فروش گرفته تا تحلیل رفتار مشتری و حتی پیشبینی روند بازار و تحلیلهای پزشکی، این روش همیشه یه راهکار خوب ارائه میده. با یادگیری و استفاده از رگرسیون خطی، میتونی تصمیمات بهتری بگیری و کسبوکار یا تحقیقاتت رو بهبود بدی.
برای اینکه بتونی یه تحلیل رگرسیون خطی موفق داشته باشی، باید چندتا فرضیه رو در نظر بگیری:
قبل از اینکه بخوای رگرسیون خطی رو انجام بدی، باید مطمئن شی که دادههات قابل تحلیل با این روش هستن. دادههات باید از چندتا فرضیه رد بشن.
این موارد رو بررسی کنی، میتونی مطمئن بشی که دادههات برای رگرسیون خطی مناسب هستن و تحلیل دقیقتری داشته باشی.
رگرسیون خطی یه ابزار آماری محبوب توی دادهکاوی و علوم دادهست و دلایل خوبی هم برا این محبوبیت داره. بیایید با هم چند تا از مزایای اصلیش رو بررسی کنیم.
رگرسیون خطی از نظر محاسباتی خیلی سادهست و نیاز به کارهای پیچیده و اضافه قبل یا بعد از راهاندازی مدل نداره. یعنی میتونی با کمترین دردسر ازش استفاده کنی و نگهداریش هم آسونه.
برخلاف مدلهای پیچیدهتر مثل شبکههای عصبی، رگرسیون خطی خیلی سر راست و قابل فهمه. این یعنی میتونی به راحتی بفهمی کدوم متغیر ورودی باعث تغییر توی متغیر خروجی میشه، چیزی که توی مدلهای پیچیدهتر مثل یه جعبه سیاهه.
رگرسیون خطی از نظر محاسباتی سبکوزنه، پس برای مواقعی که مقیاسبندی مهمه، خیلی خوب جواب میده. مثلا وقتی که حجم دادهها زیاد میشه (کلان دادهها)، این مدل همچنان کارایی خوبی داره.
از اونجایی که محاسبات رگرسیون خطی خیلی راحته، میتونی ازش تو محیطهای آنلاین هم استفاده کنی. این مدل میتونه با هر مثال جدید آموزش ببینه و در زمان واقعی پیشبینی کنه. برخلاف شبکههای عصبی یا ماشینهای بردار پشتیبان که محاسبات سنگین و زمان زیادی برای بازآموزی نیاز دارن، رگرسیون خطی سریع و مقرون به صرفهست و برای کاربردهای آنلاین خیلی مناسبه.
این ویژگیها نشون میده که چرا رگرسیون خطی یه مدل محبوب برای حل مسائل دنیای واقعی توی یادگیری ماشین و علوم دادهست.
بذار یه مثال بزنیم تا بهتر بفهمیم. فرض کن یه دیتاست داریم که اندازه RAM و هزینهشون رو پوشش میده.
تو این مثال، دیتاست دو ویژگی داره: حافظه (ظرفیت) و هزینه. هر چی RAM بیشتر باشه، هزینه خریدش هم بیشتر میشه.
اگه RAM رو روی محور X و هزینهش رو روی محور Y بذاریم، یه خط از گوشه پایین چپ نمودار به گوشه بالا راست میکشه که رابطه بین X و Y رو نشون میده. اگه این دادهها رو روی نمودار پراکندگی رسم کنیم، همچین نموداری میگیریم:
حالا نسبت حافظه به هزینه ممکنه بسته به تولیدکنندهها و نسخههای مختلف RAM متفاوت باشه، ولی روند دادهها یه الگو رو نشون میده. دادههای گوشه پایین چپ نمودار RAMهای ارزونتر با حافظه کمتر رو نشون میده و خط ادامه پیدا میکنه تا گوشه بالا راست نمودار که RAMهای با ظرفیت بالاتر و هزینه بیشتر قرار دارن.
مدل رگرسیون یه تابع خطی بین متغیرهای X و Y تعریف میکنه که بهترین نمایش دهنده رابطه بین این دو باشه. این تابع همون خط مورب تو نموداره که هدفش پیدا کردن یه "خط رگرسیون" بهینهست که بهترین تناسب رو با همه نقاط داده داشته باشه.
از نظر ریاضی، این خطوط مورب از این معادله پیروی میکنند:
Y=mX+bY = mX + bY=mX+b
اما متخصصان یادگیری ماشین یه نشانهگذاری متفاوت دارن:
y(x)=p0+p1∗xy(x) = p0 + p1 * xy(x)=p0+p1∗x
که در اینجا:
بنابراین، مدلسازی رگرسیون همهاش درباره پیدا کردن مقادیر پارامترهای نامعلوم معادلهست، یعنی مقادیر p0p0p0 و p1p1p1 (وزنها).
این فرآیند برای رگرسیون خطی ساده که یه ویژگی یا متغیر مستقل داره، به کار میره. اما میشه مدل رگرسیون رو برای چندین ویژگی هم استفاده کرد و معادله رو برای تعداد متغیرهای موجود در دیتاست گسترش داد.
معادله برای رگرسیون خطی چندگانه مشابه معادله برای رگرسیون خطی سادهست، یعنی:
y(x)=p0+p1x1y(x) = p0 + p1x1y(x)=p0+p1x1
به اضافه وزنها و ورودیهای دیگه برای ویژگیهای مختلف که به صورت p(n)x(n)p(n)x(n)p(n)x(n) نمایش داده میشه. فرمول برای رگرسیون خطی چندگانه به این شکل خواهد بود:
y(x)=p0+p1x1+p2x2+…+p(n)x(n)y(x) = p0 + p1x1 + p2x2 + \ldots + p(n)x(n)y(x)=p0+p1x1+p2x2+…+p(n)x(n)
مدل یادگیری ماشین از این فرمول و مقادیر وزنهای مختلف برای رسم خطوطی که به بهترین شکل با دادهها منطبق میشن، استفاده میکنه.
علاوه بر تابع پیشبینی، مدل رگرسیون از یه تابع هزینه هم استفاده میکنه تا وزنها رو بهینه کنه. تابع هزینه در رگرسیون خطی به صورت خطای میانگین مربعات (MSE) یا خطای میانگین مربعات ریشهای تعریف میشه.
اساساً، MSE تفاوت میانگین مربعات بین مقادیر واقعی و پیشبینی شدهی مشاهدات رو اندازهگیری میکنه. خروجی تابع هزینه یا امتیاز مرتبط با مجموعه وزنهای فعلیست و معمولاً یه عدد واحده. هدف اینجا کاهش MSE برای افزایش دقت مدل رگرسیونه.
با داشتن معادله ساده خطی y=mx+by = mx + by=mx+b، میتونیم مقادیر MSE رو محاسبه کنیم:
که در اینجا:
علاوه بر تابع هزینه، از الگوریتم "Gradient Descent" هم برای کاهش MSE و پیدا کردن خط بهترین تناسب برای یه مجموعه داده آموزشی استفاده میشه، و این باعث بهبود کلی کارایی مدل رگرسیون میشه.
معادله برای رگرسیون خطی میتونه به این صورت تصویرسازی بشه:
رگرسیون خطی یکی از پایههای اصلی در بسیاری از کاربردهای هوش مصنوعی و دادهکاویه. این تکنیک آماری به کسبوکارها کمک میکنه تا روندها رو ارزیابی کنن و پیشبینیهای دقیقی انجام بدن. بیایید با هم انواع مختلف رگرسیون خطی رو بررسی کنیم.
رگرسیون خطی ساده رابطه بین یک متغیر وابسته (ورودی) و یک متغیر مستقل (خروجی) رو نشون میده. این نوع رگرسیون بیشتر برای بررسی این موارد استفاده میشه:
رگرسیون خطی چندگانه رابطه بین دو یا چند متغیر مستقل و یک متغیر وابسته رو مشخص میکنه. این نوع رگرسیون به پیشبینی روندها و تعیین ارزشهای آینده کمک میکنه.
مثال: برای محاسبه فشار خون، میتونیم قد، وزن و میزان ورزش رو به عنوان متغیرهای مستقل در نظر بگیریم و با استفاده از رگرسیون خطی چندگانه رابطه بین این سه متغیر مستقل و فشار خون رو تحلیل کنیم.
رگرسیون لجستیک (یا مدل لجستیک) زمانی استفاده میشه که یک متغیر وابسته و چندین متغیر مستقل داریم. تفاوت اصلی بین رگرسیون چندگانه و لجستیک اینه که در رگرسیون لجستیک، متغیر وابسته مقداری گسسته (باینری یا مرتبهای) داره.
مثال: احتمال قبول یک پیشنهاد روی وبسایت شما (متغیر وابسته) رو میتونیم با ویژگیهای مختلف بازدیدکنندگان مثل سایتهایی که از اونجا اومدن، تعداد بازدیدها و فعالیتهایشون روی سایت (متغیرهای مستقل) بررسی کنیم. این کار به شما کمک میکنه تصمیم بگیرید که آیا پیشنهاد رو تبلیغ کنید یا نه.
رگرسیون ترتیبی شامل یک متغیر وابسته دوگانه و یک متغیر مستقله که میتونه ترتیبی یا اسمی باشه. این روش به تعامل بین متغیرهای وابسته با سطوح مرتب و یک یا چند متغیر مستقل کمک میکنه.
مثال: در یک نظرسنجی که پاسخدهندگان باید به سوالات با گزینههای "موافق" یا "مخالف" پاسخ بدن، میتونیم سطوح بیشتری مثل "کاملاً موافق"، "موافق"، "مخالف" و "کاملاً مخالف" اضافه کنیم تا ترتیب طبیعی در پاسخها رو ببینیم. رگرسیون ترتیبی به پیشبینی متغیر وابسته با دستههای مرتب کمک میکنه.
رگرسیون لجستیک چندگانه زمانی استفاده میشه که متغیر وابسته اسمی و دارای بیش از دو سطح باشه. این روش رابطه بین یک متغیر وابسته اسمی و یک یا چند متغیر مستقل پیوسته رو مشخص میکنه.
مثال: انتخاب برنامه تحصیلی توسط دانشآموزان مدرسه رو میتونیم با استفاده از این روش مدلسازی کنیم. برنامههای تحصیلی میتونن شامل برنامههای فنی، ورزشی و آکادمیک باشن. با در نظر گرفتن ویژگیهایی مثل توانایی خواندن و نوشتن دانشآموزان، جنسیت و جوایز دریافتی، میتونیم نوع برنامه تحصیلی انتخابی رو پیشبینی کنیم.
در اینجا، متغیر وابسته انتخاب برنامههای تحصیلی با سطوح مختلف (نامرتب) است. تکنیک رگرسیون لجستیک چندگانه برای پیشبینی در چنین مواردی استفاده میشه.
رگرسیون خطی یه روش آماریه که برای مدلسازی رابطه بین یه متغیر وابسته و یک یا چند متغیر مستقل استفاده میشه. این روش به ما کمک میکنه تا پیشبینیهای دقیقی انجام بدیم.
وقتی بخوایم رابطه خطی بین متغیرها رو بررسی کنیم و ازش برای پیشبینی استفاده کنیم، رگرسیون خطی بهترین گزینهست. این روش توی تحلیلهای مالی، پزشکی، صنعتی و خیلی از حوزههای دیگه کاربرد داره.
محدودیتهای رگرسیون خطی شامل اینه که فرض میکنه رابطه بین متغیرها خطیه، به دادههای خارج از محدوده حساسه و برای تعداد زیادی متغیرها مناسب نیست. این روش برای روابط پیچیده و غیرخطی خیلی مناسب نیست.
برای افزایش دقت مدل رگرسیون خطی میتونی از تبدیلات ریاضی، حذف دادههای خارج از محدوده و استفاده از رگرسیون چندگانه استفاده کنی. این کارها به بهبود دقت مدل کمک میکنه.
رگرسیون خطی ساده فقط یه متغیر مستقل داره، ولی رگرسیون خطی چندگانه چند تا متغیر مستقل داره. رگرسیون چندگانه برای مدلسازی روابط پیچیدهتر استفاده میشه.
همونطور که متوجه شدید، مدلهای رگرسیون خطی بر اساس یک فرمول ریاضی ساده و قابل فهم هستن که به ما کمک میکنن پیشبینیهای دقیقی انجام بدیم. این مدلها توی حوزههای مختلف کسبوکار و رشتههای علمی مثل علوم اجتماعی، مدیریت، محیط زیست و علوم کامپیوتر کاربرد دارن.
رگرسیون خطی با پایه علمی خودش، تونسته بهطور قابل اعتمادی روندهای آینده رو پیشبینی کنه. این مدلها به خاطر سادگی و قابلیت فهمیدن راحت، خیلی سریع آموزش داده میشن و به همین دلیل بهطور گستردهای استفاده میشن.
آیا این مقاله بهت کمک کرد تا رگرسیون خطی رو بهتر بفهمی؟ نظر تو برامون مهمه! زیر همین مطلب کامنت بذار. خوشحال میشیم ازت بشنویم!
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: