در این مطلب می خواهیم با استفاده از مثال ساده، روند ایجاد مدل رگرسیون خطی ساده (تک متغیره) را نشان دهیم. هدف از این مطلب معرفی توابعی هستند که برای ایجاد مدل تا پیش بینی خروجی جدید استفاده می شوند. در مطلب بعدی در مورد پیش بینی دیابت بوسیله مجموعه داده های درون Scikit-Learn صحبت کرده ایم.

در کدهای زیر دو متغیر به نام X و y تعریف شده است که متغیر X نقش ویژگی ها (متغیرهای مستقل) و متغیر y نقش برچسب ها (متغیرهای وابسته) را ایفا می کنند. توجه کنید هر کدام از عنصرهای این دو متغیر به صورت یک لیست تک رقمی هستند. همچنین چون مسئله مطرح شده در این مطلب از نوع رگرسیون خطی ساده (تک متغیره) است، پس هر درایه متغیر X به صورت یک لیست تک عددی است.

همچنین توجه کنید چون رگرسیون خطی از نوع الگوریتم های یادگیری نظارت شده است، پس باید اندازه دو متغیر X و y یکسان باشند، زیرا در الگوریتم های یادگیری نظارت شده، به ازای هر یک یا چند ویژگی درون مجموعه داده، باید یک پاسخ (برچسب) وجود داشته باشد، بنابراین شما می توانید این طور فرض کنید هر درایه از متغیر X با هر درایه متناظر خودش در متغیر y یک خط از مجموعه داده ها (مثلا فایل CSV) هستند. همچنین اگر مسئله به صورت رگرسیون خطی چند متغیره باشد، پس هر درایه از متغیر X باید به صورت لیستی باشد که بیش از یک عدد داشته باشند.

هر نقطه نمودار نیز مختصات (x, y) را نشان می دهد به این معنی که به ازای هر کدام از X ها، یک مقدار y وجود دارد که به صورت نقطه ها در نمودار نمایش داده شده اند. حال نوبت به ایجاد مدل از روی متغیرهای X و y است.

در کدهای زیر ابتدا کلاس LinearRegression از ماژول sklearn.linear_model به درون برنامه ضمیمه شده است و سپس یک نمونه از آن به نام متغیر regressionModel ایجاد شده است. سپس توسط متغیر regressionModel به متد ()fit از کلاس LinearRegression دسترسی پیدا شده تا بتوانیم مدل را ایجاد کنیم.  توجه کنید آرگومان اول متد ()fit مجموعه ویژگی ها و آرگومان دوم، مجموعه برچسب ها است. سپس توسط متد ()predict یک پیش بینی انجام شده است و به این معنی است که حال می خواهیم با یک ورودی (متغیر مستقل) جدید، خروجی را پیش بینی کنیم.

به یاد دارید که مدل رگرسیون به دنبال رسم بهترین خط رگرسیون است که بیشترین نقطه های روی نمودار را پوشش دهد و این خط از روی پارامترهای رگرسیون خطی، یعنی شیب خط و عرض از مبدا بوجود می آید، پس می توانیم نتیجه بگیریم که کلاس رگرسیون خطی و به ویژه متد ()fit به دنبال پیدا کردن بهترین مقدار برای این دو پارامتر از روی داده های متغیرهای X و y است. در کدهای زیر می توانید این دو مقدار محاسبه شده را توسط خصوصیت های _coef و _intercept را ببینید.

در واقع خصوصیت _coef همان ضریب یا شیب خط و _intercept همان عرض از مبدا است که توسط متد ()fit محاسبه شده تا در نهایت از طریق آنها بتوان بهترین خط رگرسیون رسم شود تا بیشترین نقطه های روی نمودار پوشش داده شوند. در شکل زیر می بینید که با توجه به ورودی عدد ۱۲ که پیش از این و در و شکل بالا به متد ()predict فرستادیم، عدد ۱۳.۶۸۱۰۳۴۴۸ برگشت داده شد. حال که مدل دو پارامتر رگرسیون خطی ساده (تک متغیره) را پیدا کرده است، می توانیم همانند کد و شکل زیر از آنها برای ایجاد معادله و سپس فرستادن هر مقداری به آن استفاده کنیم.