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

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

در کد و شکل زیر می توانید ببینید که مجموعه داده های دیابت به برنامه بارگذاری شده و سپس توسط خصوصیت DESC یک توصیف از آن نشان داده شده است. همانطور که در شکل نیز مشخص شده، ۱۰ ستون اول این مجموعه داده، همان ویژگی ها یا متغیرهای مستقل (خصوصیت ها یا Attribute) هستند و ستون یازدهم برچسب (متغیر وابسته) است.

مطابق کد و شکل های زیر ابتدا یک مجموعه داده جدید به نام diabets_X از روی مجموعه داده اصلی ایجاد می کنیم. این کار توسط اسلایس بندی آرایه های numpy صورت می گیرد. هدف از به کاربردن np.newaxis تغییر بعد آرایه (یا همان تک ستون) از یک بعدی به دو بعدی است. در مطلب قبلی به یاد دارید که گفتیم ورودی متد ()fit باید آرایه ای باشد که هر عنصر آن یک آرایه است. بنابراین با np.newaxis آرایه یک بعدی به دو بعدی تبدیل شد که هر چون مسئله ما رگرسیون خطی ساده (تک متغیره) است، پس هر عنصر درون آرایه diabets_X به صورت یک آرایه تک مقداری است.

دومین کاری که باید انجام دهیم ایجاد دو زیر مجموعه یادگیری (Training Data) و مجموعه آزمایش (Test Data) است. در این مطلب این کار توسط اسلایس بندی آرایه های NumPy انجام می شود به طوری که توسط دستور [diabetes_X[:-20 از سطر صفر تا پیش از ۲۰ سطر آخر به عنوان داده های یادگیری و از ستون ۲۰ سطر مانده به آخر تا انتهای آرایه diabets_X به عنوان مجموعه آزمایش جدا شده و به ترتیب در متغیرهای diabets_X_train و diabets_X_test ذخیره می شوند.

در نهایت و در گام سوم باید فرایند بالا را برای برچسب ها انجام دهیم. اگر مطلب بارگذاری داده ها در کتابخانه Scikit-Learn را خوانده باشید، می دانید که در مجموعه داده های پیش فرض کتابخانه Scikit-Learn از طریق خصوصیت data می توانیم به تمامی داده های بارگذاری شده و از طریق خصوصیت target می توانیم به ستون برچسب های داده های بارگذاری شده دسترسی پیدا کنیم. همچنین خروجی خصوصیت target یک آرایه تک بعدی است.

اسلایس بندی آرایه های NumPy

تغییر ابعاد آرایه های NumPy

پس از انجام گام های بالا نوبت به ایجاد یک مدل از روی مجموعه داده های یادگیری می رسد. توجه کنید در این مطلب و توسط اسلایس بندی آرایه های NumPy دو مجموعه یادگیری به نام های diabetes_X_train و diabetes_y_train ایجاد کرده ایم و لازم است مطابق کدهای زیر ابتدا یک شی از کلاس LinearRegression را ایجاد کرده و سپس توسط متد ()fit و فرستادن این دو متغیر به آن مدل را ایجاد کنیم.

در نهایت توسط متد ()predict و مجموعه داده های آزمایشی diabets_X_test مدل ایجاد شده را مورد ارزیابی قرار می دهیم. در واقع در این مطلب با شکستن مجموعه داده diabets_X به دو زیر مجموعه یادگیری diabets_X_train و آزمایش diabets_y_test با مجموعه آزماش که بخشی از همان داده های اصلی است که در ابتدا بارگذاری کرده بودیم، می خواهیم ورودی هایی را به مدل بدهیم تا بتوانیم عملکرد و میزان دقت (Acuuracy) مدل را ارزیابی کنیم.