یادگیری ماشین به زبان خیلی ساده برای همه!(رگرسیون خطی)

۷۸۶

سلام. علیرضا هستم. پست جدید رو شروع میکنیم. این پست هم مثل پست قبلی به زبان خیلی ساده بیان شده و به نظرم تو هر رشته ای هستید (حتی اگر فکر میکنید رشته شما هیچ ربطی به هوش مصنوعی نداره) این پست رو بخونید.

رگرسیون خطی کاربرد های بسیار زیادی داره ، مثلا در بورس،املاک،فروش،و به طور کلی پیش بینی هر متغیر پیوسته از روی هر متغیر پیوسته دیگه.مثلا اگر شما مدیر فروش هستید یا نویسنده هستید یا محصولی میفروشید، میتونید با رگرسیون خطی فروش محصولات رو از روی هزینه برای تبلیغات به دست بیارید! و قطعا یاد گرفتن یادگیری ماشین توی هر رشته ای که هستید به کارتون میاد!

پیشنهاد میکنم اگر نوشته قبل رو نخوندید اول اون رو بخونید بعد بیاید سراغ این نوشته:

https://virgool.io/@alirezadigi/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%AE%DB%8C%D9%84%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%87%D9%85%D9%87-oyskcbmh7nf5


خب،شروع کنیم!

رگرسیون خطی!

رگرسیون خطی بر خلاف اسم ترسناکی که داره! یه مفهوم خیلی سادست.بزارید این مفهوم رو با یک مثال توی دنیای واقعی به شما توضیح بدم.یک مشاور املاک رو در نظر بگیرید.این آدم روزانه اطلاعات کلی خونه رو توی محله خودشون میبینه.(توی این مطلب قیمت رو تنها وابسته به متراژ میدونیم،دلیلش رو جلوتر میفهمیم!)حالا اگر یک خریدار وارد مغازه اون بشه و ازش قیمت یک خونه ۸۰ متری(یا هر قیمت دیگه ای،حتی قیمتی که قبلا ندیده) رو بپرسه، این آدم با اطلاعات قبلیش یه تخمین خیلی خوب میزنه و قیمت رو به فرد میده.

خب برای یک انسان این کار راحته،ولی برای کامپیوتر چی؟!?

اینجاست که رگرسیون خطی ، زیر شاخه مهم یادگیری ماشین استفاده میشه!


  • رگرسیون خطی چطور کار میکنه؟

برای اینکه از رگرسیون خطی استفاده کنیم باید اطلاعات خودمون رو روی محور نشون بدیم(علت اینکه من قیمت فقط رو وابسته به متراژ‌ گرفتم این بود که میخواستم نمودار دو بعدی بمونه ولی رگرسیون پیشرفته با چند متغیر هم داریم.)خب نمودار متراژ و قیمت خونه هایی که این مشاور قبلا دیده رو روی نمودار میذاریم:

توجه کنید که ما روی محور X ها همیشه ورودی ها رو مشخص میکنیم و روی محور Y ها همیشه خروجی ها رو! یکاها دلخواه هستن ولی من یکای متراژ رو متر و یکای قیمت رو میلیارد قرار دادم.

قیمت و متراژ‌ خونه ها روی محور
قیمت و متراژ‌ خونه ها روی محور

خب ،نقاط رو قرار دادیم!رگرسیون خطی توی این مرحله بهترین خط ، یعنی خط با کمترین هزینه (هزینه رو مفصل توی نوشته بعدی توضیح میدم) رو پیدا میکنه.بهترین خط به زبان ساده خطیه که کمترین فاصله رو از عرض نقاط داره.به این خط خط مدل کننده میگن.

خط مدل کننده
خط مدل کننده

پس برای رگرسیون خطی باید مراحل زیر رو انجام بدیم:

  1. اطلاعاتی که از قبل داریم رو به صورت نقطه ، روی محور قرار می دهیم.(ورودی ها (متراژ) روی محور X ها و خروجی ها (قیمت) روی محور Y ها)
  2. رگرسیون خطی ،با یک روش خاص، نزدیک ترین خط به نقاط رو پیدا میکنه!
  3. از روی معادله خط ، با قرار دادن ورودی به جای X ، خروجی (Y) رو به دست میاریم!

این خط یک معادله داره و طبق این معادله میتونیم هر متراژی که داریم رو تبدیل به قیمت کنیم!به همین سادگی!معادله خط مدل کننده،معادله زیر هست:

Y = 0.026*X -0.22

حالا مثلا خریدار قیمت خونه ۸۹ متری رو میپرسه،متراژ رو با همون یکایی که توی داده های قبلی استفاده کردیم توی معادله قرار میدیم:

Y = 0.026 * 89 + 0.22 = 2.094

بنابراین قیمت این خونه تقریبا ۲ میلیارد و ۹۴ میلیون هست!

شکل زیر هم کاری که ما انجام دادیم رو نشون میده:

پیدا کردن قیمت خونه ۸۹ متری از روی خط!
پیدا کردن قیمت خونه ۸۹ متری از روی خط!

این نکته رو هم مد نظر داشته باشید که هر چقدر تعداد داده های خورانده شده به کامپیوتر،یعنی تعداد خونه هایی که مشاور املاک اطلاعاتشون رو میدونست و اون نقاط رو روی محور نشون دادیم، بیشتر باشه خط ما دقیق تر به دست میاد و پیش بینی ما دقیق تر میشه(کامپیوتر دقیقا عین یک مشاور املاک با تجربه میشه!)


توی نوشته بعدی یک مثال واقعی رو بررسی میکنیم که خیلی جالبه!پیش بینی تعداد دنبال کننده های صفحه شما از روی تعداد افراد دنبال شونده در ویرگول!

در ادامه پست بعد هم محاسبه هزینه رو بررسی میکنیم.امیدوارم از این مطلب لذت برده باشید.تا مطلب بعدی خدا نگهدار.

راستی! به نظر شما چطور باید هزینه یک خط رو حساب کرد؟اصلا چطور میشه بهترین خط رو پیدا کرد؟