القائمة الرئيسية

الصفحات

خوارزمية الأنحدار الخطي Linear Regression

 

قبل أن نتكلم عن مفهوم الأنحدار الخطي Linear Regression وماهية عمله،حريُ بنا أن نتعرف ماهو الأنحدار ومما يتكون،لأننا أذا تعرفنا على مفهوم الأنحدار بشكل جيد وكامل سيمكننا أن نفهم كيف يعمل الأنحدار الخطي Linear Regression وكيف سيتم تدريب هذه الخوارزمية ليتم عملها بكفاءة تامة.


خوارزمية الأنحدار الخطي Linear Regression 

قبل أن نتكلم عن مفهوم الأنحدار الخطي Linear Regression وماهية عمله،حريُ بنا أن نتعرف ماهو الأنحدار ومما يتكون،لأننا أذا تعرفنا على مفهوم الأنحدار بشكل جيد وكامل سيمكننا أن نفهم كيف يعمل الأنحدار الخطي Linear Regression وكيف سيتم تدريب هذه الخوارزمية ليتم عملها بكفاءة تامة.

ماهو الأنحدار Regression؟

هو طريقة نمذجة ألقيمة ألمستهدفة أعتماداً على تنبؤات مستقلة.هذه الطريقة تعمل على أيجاد علاقة واضحة بين المتغيرات لمعرفة تأثير أحداهما على الأخرى لهدف معين.
وتكون طرق الأنحدارRegression مختلفة وذلك لأنها تعتمد على عدد المتغيرات المستقلة Independent Variables ونوع العلاقة بين المتغيرات المستقلة Independent Variables والمتغيرات غير المستقلة Dependent Variables.

ويُستخدم الأنحدار Regression في كثير من التطبيقات،فمثلاً يمكن التنبؤ بحالة الطقس المتوقع خلال الأيام المقبلة بلأستفادة من بيانات سابقة لأيام ماضية.وتقدير سعر المنازل بلأعتماد على المساحة وعدد الغرف.لخ.


الأنحدار الخطي Linear Regression

ويُعتبر من أبسط خوارزميات التعلم الآلي Machine Learning ضمن فئة ألتعلم المراقب Supervised Learning ألذي يقوم بنمذجة مفهوم الأنحدار Regression.وهناك نوعان من الأنحدار الخطي هما الأنحدار الخطي البسيط Simple Linear Regression ويحتوي على متغير مستقل واحد،لذلك ستكون هنالك علاقة خطية بين المتغير المستقل Independent Variable والمتغير غير المستقل Dependent Variables.والنوع الثاني الأنحدار الخطي المتعدد Multiple Linear Regression ويحتوي على متغيرات مستقلة عدة.



في الصورة أعلاه يوضح علاقة خطية بسيطة بين متغيرين،(X) يمثل عدد سنوات خبرة،(Y) يمثل مقدار مرتب الشخص،النقاط الخضراء تمثل البيانات ألتي لدينا والخط الأحمر يمثل نموذج الأنحدار الخطي ألذي سيقوم بالتنبؤ لمقدار مرتب الشخص حسب سنوات خبرته.


معادلة الأنحدار الخطي Linear Regression:

يتم تدريب نموذج الأنحدار الخطي Linear Regression وفق المعادلة أدناه لكي يحقق الخط (كما رأيناه في ألصورة السابقة والذي كان متمثل باللون الأحمر) أفضل ملائمة للبيانات ألتي لدينا،وبالتالي سيحقق تنبؤ صحيح للبيانات المستقبلية.

والآن لنتعرف على مكونات معادلة الأنحدار الخطي Linear Regression:


X: تمثل البيانات المدخلة وألذي نسميه متغير مستقل Independent Variable
Y: ألـ Labelألخاص بالبيانات (لأن الخوارزمية ضمن فئة التعلم المراقبSupervised Learning)
Ѳ1: باراميتر وهو مقدار ثابت (من خلال خبرتي في هذا المجال فهذا البراميتر مسؤول عن أزاحة الخط في المستوى الرأسي y-axis).
Ѳ2: باراميتر الخاص بالمتغير x.
عندما يتم تدريب الخوارزمية على أفضل ملائمة الخط للبيانات فهذا يعني أننا نجد أفضل قيم للباراميترات Ѳ1, Ѳ2 ليتم التنبؤ للبيانات بدقة جيدة.

كيف يتم تحديث قيم الباراميترات Ѳ1, Ѳ2 للحصول على أفضل ملائمة للبيانات؟

عندما نقول أن النموذج يحصل على أفضل ملائمة للبيانات عند مرور الخط فيها فهذا يعني أننا قمنا بأيجاد أفضل قيم للباراميترات،وبما أن خوارزمية الأنحدار الخطي Linear Regression هي ضمن فئة التعلم المراقب Supervised Learning ، ذلك يعني أن البيانات تحتوي على label خاص بها،أذن عندما تتم عملية التدريب وأختبارها على بيانات الأختبار فأننا نحصل على القيمة المتوقعة وألتي تسمى^y.
ولكي نعرف مدى صحة ألتوقع ألذي حصلنا عليه أثناء عملية التدريب،نقوم بحساب ألفرق بين label ألذي لدينا من البيانات وألذي يمثل y والقيمة المتوقعة ألتي حصلنا عليها أثناء عملية التدريب وألتي تمثل ^y من خلال المعادلة الآتية:

تسمى هذه المعادلة (cost function(J وهي دالة (Root Mean Squared Error (RMSE بين القيمة المتوقعة ^y والقيمة الحقيقيةy.
عندما يظهر لدينا مقدار دالة الخطأ كبير،علينا محاولة تقليل هذا المقدار جهد الأمكان،ويتم ذلك عن طريق التحكم بقيم البارامترات Ѳ1, Ѳ2 وتغييرها للوصول ألى أقل قيمة للخطأ.
طريقة تغيير البارامترات Ѳ1, Ѳ2 للوصول ألى أفضل قيم تتم بواسطة خوارزمية هبوط التدرج Gradient Descent ألتي تبدأ بأعطاء قيم أبتدائية عشوائية للبارامترات ومن ثم تحول أختيار قيم مناسبة لتكون دالة الخطأ أقل مايمكن.

تطبيق خوارزمية الأنحدار الخطي Linear Regression بلغة بايثون:

سنقوم بتطبيق خوارزمية الأنحدار الخطي من نوع الأنحدار الخطي المتعددMultiple Linear Regression،لكي يتسنى لنا فهم عمل هذه الخوارزمية بالكامل.
نبدأ بأستخدام بيانات Graduate Admission dataset ألتي تحتوي على بيانات لشروط مهمة لقبول الطلاب ،وألتي تتألف من 500 عينة و9 ميزات.وهدفنا في هذا التطبيق هو للتنبؤ بقبول ألطلاب في الجامعات ألتي تعتمد شروط معينة متوفرة ضمن هذه البيانات وألتي يكون على أساسها قبول هؤلاء الطلاب.
يمكنكم تحميل البيانات من هنا.

(يمكن تحميل الكود كاملاً من أيقونة التحميل أسفل المقالة) 

لنبدأ بكتابة الكود البرمجي:

نقوم بأستدعاء المكتبات ألمهمة ألتي نحتاجها لعمل خوارزمية الأنحدار الخطيLinear Regression.

Admission_dataset= pd.read_csv('E:/A.I/ANN/Datasets/Admition for regression/Admission_Predict_Ver1.1.csv')
نقوم بأستدعاء بيانات Graduate Admission من خلال المسار ألذي وضعنا فيه هذه البيانات.
أذا أردنا معرفة أبعاد هذه البيانات،يمكننا عن طريق الأيعاز:
print(Admission_dataset.shape)

ألذي سيظهرها بالشكل (500, 9) وهذا ناتج صحيح لأن لدينا 500 عينة و 9 ميزات.
أذا أردنا أن نرى العلاقة بين أحدى الميزات ولتكن TOEFL Score وبين التوقع Chance of Admit فيمكننا رسم شكل ثنائي 2D من خلال الكود أعلاه.
وسيكون الشكل الآتي هو ألذي سيظهر لدينا:





نقوم بتهيئة البيانات وتكون على شكل مصفوفة Arrayوتم خزنها في متغير X، وlabel يكون على شكل متجه Vectorوتم خزنها في متغير y.بعد ذلك نقوم بتقسيم هذه البيانات الى بيانات تدريب وبيانات أختبار ويتم توزيعها على متغيرات الأربعة الموجودة في السطر الثالث من الكود.
والان نأتي لعملية التدريب ونقوم بأستدعاء النموذج من خلال الأيعاز ()LinearRegression وبعد ذلك نقوم بعملية التدريب من خلال الأيعاز ()Linear_regressior.fit.

نقوم بأجراء عملية التنبؤ بواسطة بيانات الأختبار ألتي لدينا وخزن تلك العملية بالمتغير y_pred.أذا أردنا مشاهدة قيمة التنبؤ والقيمة الحقيقة ألتي لدينا ويتم ذلك من خلال السطر ألثاني والثالث ليكون الناتج بالشكل الآتي:


Actual Value  Predicted Value
0          0.64         0.660625
1          0.85         0.834679
2          0.80         0.778032
3          0.91         0.880545
4          0.68         0.601266
5          0.54         0.643566
6          0.54         0.530814
7          0.65         0.695813
8          0.52         0.524947
9          0.79         0.747119

وأخيراً نقوم بأظهار دقة عمل الخوارزمية Accuracy وأيضاً RMS ويكون الناتج بالشكل الأتي:
Accuracy: 0.7664048993199387
Root Mean Squared Error: 0.06387237301527242
نلاحظ أن الدقة تقريباً 0.766 وهي دقة ليست ممتازة وذلك بسبب أن حجم البيانات ألتي قمنا بأستعمالها صغير،ولحل هذه المشكلة يجب علينا أستخدام حجم كبير للبيانات للوصول ألى الدقة المطلوبة.

يمكن تحميل كود البايثون كاملاً من أيقونة التحميل الآتية: 



م.م رسول حسن






reaction:

تعليقات

4 تعليقات
إرسال تعليق

إرسال تعليق