در مطلب های قبلی در مورد ایجاد مدل های رگرسیون خطی ساده (تک متغیره) توسط کلاس LinearRegression از کتابخانه Scikit-Learn صحبت کردیم. در این مطلب و توسط مجموعه داده های Boston House می خواهیم مدا رگرسیون چند متغیره را برای پیش بینی قیمت خانه پیاده سازی کنیم. پس همانند مطلب قبل ابتدا لازم است تا مجموعه داده ها را درون برنامه بارگذاری کنیم.

بر خلاف مطلب پیش بینی دیابت با رگرسیون خطی و Scikit-Learn که از آرایه های NumPy استفاده کردیم، در این مطلب می خواهیم از DatadFrame ها برای ایجاد مجموعه داده ها استفاده کنیم. مطابق کد و شکل زیر ابتدا از روی داده های مجموعه داده Boston House یک DataFrame ایجاد می کنیم که فاقد ستون PRICE است. ستون PRICE در مجموعه داده Boston House به عنوان برچسب است.

همانطور که می دانید رگرسیون خطی از الگوریتم های یادگیری نظارت شده است، پس نیاز به افزودن برچسب (یعنی ستون PRICE از مجموعه داده Boston House) به DataFrame است. در کد و شکل زیر می بینید که ستون PRICE به عنوان آخرین ستون به DataFrame اضافه شده است ولی مجدد و توسط متد ()drop از آن پاک شده است تا در نهایت دیتافریم جدیدی به نام boston_X ایجاد شود. در کدهای بعدی از این متغیر به عنوان ویژگی های ورودی به متد ()fit استفاده می کنیم.

بارگذاری داده ها در کتابخانه Scikit-Learn

ایجاد DataFrame توسط ماژول Pandas در پایتون

در نهایت باید مطابق کدهای زیر ابتدا یک نمونه از کلاس LinearRegression ایجاد و سپس توسط متد ()fit مدل را ایجاد می کنیم. توجه کنید آرگومان اول، یعنی متغیر boston_X همان ویژگی ها (متغیرهای مستقل) و آرگومان دومی ستون PRICE از DataFrame است که به عنوان برچسب می خواهیم استفاده کنیم.

در نهایت یک دیکشنری جدید ایجاد کرده ایم که هر کدام از کلیدهای نام ستون های مجموعه داده Boston House (به جز ستون PRICE) است و مقدار هر کدام به صورت یک لیست است که در کد و شکل زیر تنها تک مقدار دارند ولی شما می توانید عددهای بیشتری را برای هر کدام وارد کنید. توجه کنید که به این دلیل ستون PRICE در این دیکشنری نیست، زیرا می خواهیم با ورودی های جدید و با استفاده از مدل ایجاد شده، پیش بینی انجام دهیم و قاعدتا در این ورودی های جدید نباید پاسخ ها یا همان برچسب ها از قبل وجود داشته باشند. به عبارت دیگر توسط ایجاد مدل به دنبال پیدا کردن پاسخ ها برای ورودی های جدید هستیم.