بسم الله والحمد لله والصلاة والسلام على رسول الله
أهلا وسهلا فيكم بالمحاضرة الثانية في ال regression
وهنا هنتكلم عن ال multiple regression كنا في
المحاضرة الماضية اتكلمنا عن ال simple linear
regression وقلنا simple linear regression معناته
انا عندي معادلة خط مستقيم واحد فقط اللي هي Y عفوا
خليني ادهر ال pointer
قلنا في معادلة الخط المستقيم أن الـ Y تساوي الـ M
X زائد الـ B وقلنا أن الـ M عندها تساوي
مجميع X I ناقص وتوسط Xمضروبة في Y I ناقص متوسط الـ
Y على مجموع
X I ناقص متوسط الـ X كل تربيع والـ B
متوسط Y ناقص M
الـ X فشوفنا مع بعض كيف احنا وصلنا للمعادلة او
اشتغلنا مع بعض وشوفنا ال simple linear regression
اليوم ان شاء الله تعالى هنتكلم على ال multiple زي
ما وعدناكم هنتكلم على ال multiple regression وما
زلت بتكلم على ال simple linear regression ال
regression لكنه بتكلم على المultiple الان لما انا
بتكلم على ال multiple regression معناته انا بدى
اتنبأ بالعلاقة زي ما قلنا سابقا بين ال multiple
attributes او multiple variables في عندي more than
one independent attribute وقلنا من الأمثلة
الموجودة عليها ال income و ال education أو تأثير
ال income و ال education و ال living area على
تأثير
قيمة الدخل و التعليم على المنطقة اللي يعيش فيها
الشخص اللي موجود عندها طبعا لما بتكلم على زيادة
عدد ال variables أو عدد ال independent variables
معناته أنا بزيد من تعقيد عملية ال prediction لأنه
انا فعليا بدي اتكلم على .. بدي اوجد علاقة ما بين
كل ال attributes هذه مجتمعها طبعا يا جماعة الخير
عشان بس قبل ما انا اتكلم شغلة ليش احنا بالتحديد
قولنا linear regression معادلة خطية لأنه الرتبة
تبعتها هي لاحظوا يا جماعة الخير انا بتكلم
لما كنت بتكلم على الـ simple regression عفوا بالـ
simple regression عندي x و y ففي الآخر المعادلة
تبعت سواء كانت خط مستقيم أو polynomial بغض النظر
عن طبيعتها أنا في الآخر بتكلم في العلاقة في الـ 2D
ليش؟ لأن في عندي two attributes تمام طب لو كانوا
في عندي three attributes two independent و one
dependent معناته بتكلم على 3D طب لو كانوا four
طبعا، لاحظوا معايا في الـ linear .. linear هنصف
بقول خط طيب، هل ممكن يكون في عندي linear multiple
attributes؟ أه ممكن طبعا، تعالي خلينا نتخيل
المعادلة تبعتي بالشكل هذا ال multiple regression
لما يكون في عندك K independent attributes، هيوم
إيش هكونها؟ طبعا، بتكلم عن linear regression لأن
أعلى قيمة أو أعلى أصلة X بتكون واحد، هاي المفهوم
ال linearالان الـ predicted y بيتساوي ال intercept
B0 زائد ال mail M1 في X1 زائد M2 في X2 زائد زائد
Mk أو Bk في Xk ولمّا أنا بدي أجي أرسم معادلة بشكل
هذا أبسط المعادلات اللي ممكن أستوعبها أنا في الرسم
بعد هيكلما يكون لدي two independent variables ها
هي X1 و X2 two independent variables مع ال
dependent variables صاروا three attributes عشان
اقدر امثلهم انا او اتخيلهم صح بدي اتخيل ال 3D
space ممتاز طيب المعادلة الخطية في ال 3D space
معناته هي بتتكلم على surface سطح والسطح هذا
الومنين ميل هيكونمع الـ X و ميلم بيكون مع الـ X
التاني أو المحور التاني بما أن أنا في عيني الـ 2X
X1 و X2 و الـ Y ثابتة لأن الـ Y هي الـ predicted
value و أنا في عندي X1 و X2 بما أن في عندي ميلم مع
X1 و X2 وبناءً عليه أنا بتتكلم على معادلة خطية
لكنها في الـ 3D تمام، الآن لو أنا أفضل أو أعمل
predictionبالـ python بتمنى هذه الجزئية تكون سهلة
يعني مافيش فيها كلام انت بدك تستوعب طب لو كان في
عندي انا four attribute three independent
attribute جماعة الخير three independent attribute
و one independent attribute يعني صاروا اربعة ايش
الشكل تبعي اللي احب اتخيله في ال space في ال 4D
بسيط بتكلم على space مكعب ممكن تكون هذا ال space
cubeالمفروض عندما أزيد عدد الـ Attributes سأزيد
مخيلتي لكي أتكلم عليها لكن بفضل الله تبارك وتعالى
نحن بعد الـ 3D بنبطل نستوعب أيش اللي ممكن أصير
الآن بتعالي نشوف بالـ Python بدي أشغل على نفس
الطريقة أو نفس الفكرة السابقة استخدمت الـ NumPy
وروح وقلت له أنا في عندي Array لكن كل رو في الـ
Array بيحتوي على two attributes أو two variables
خمسة و ثلاثة يعني ال attribute X1 خمسة في الصف
الأول X2 ثلاثة X1 سبعة X2 خمسة و هكذا و ال Y ده هي
ال value تبعتهم لاحظوا ماتغيرش معايا ولا حاجة انا
غير انه غيرت بس ال X ال attributes تبعتي صارت في
ال 2D dimension 2D array و لاحظوا ماكنت لشري shape
لأنه خلاص ليش لأن انا كنت بده حلقت في صفوففي صفوف
وانتهى الأمر هنا مافيش داعي ان اعمله Reshape الـ y
.unarray وهي ال target attribute تبعتي نفس الكلام
from ASCII learn.linear model import linear
regression بنيت الموديل وعملته له fit فهنا راح
تعرف او بنى الموديل وحدد ال interceptأحدد قيمة الـ
slope للـ attribute الأول والـ attribute التاني أو
الـ coefficient للـ attribute الأول والـ attribute
التاني لو أنا طبعت بنفس القالية السابقة قلت له ال
model.coefficient و ال model.intercept طبع ليهم،
لاحظوا أنه طبع ليها ال model.coefficient جاب ليهم
على إنهم مصفوفة لأ و فيها two variablesأو two
values ليش؟ لأن أنا فعليًا عندي two independent
attributes X1 و X2 فانا روحت بس جملتها أكتر و
فصلتهم و طبعتهم بالشكل هذا قلت له model
.coefficient 0 عشان أجيب القيمة الأولى ضربتها في
X1 as a text زائد عشان أطبع معادلة الخط ال .. أو
بلاش ال .. ال linear space اللي موجود عندي هذا
تمام وبالتالي ما اتغيرش عندى في الشغل ولا حاجة انه
غير انه data set طب لو انا بعد data set بعد شو بدأ
اساوي بدل ما كنت انا تصيت او اخدت عمود واحد الآن
بدأ اخد عمودين او تلاتة او اربع عشان ال linear
regression اللي مولود خلينا ننتقل لل nonlinear مش
ضايل كتير عندنا في ال slides nonlinear regression
nonlinear معناته انا بتكلم على nonlinear line انا
في عندي خط لكن الخط هذا غير مستقيمأو ممكن يكون في
عندي surface ال surface هذا ممكن يكون على شكل
دائرة
مائلة أو slow أو ellipse بالشكل هذا فانا الآن بقلت
تتكلم على خط مستقيم الآن لما ال data مابتظهرش عندي
linear dependency
معناته انا ممكن ادور على accurate او احصل على
accurate model لو في حالة ان كان في عندي non
linear regression يعني بين قرصين الجامعة التخيار
انا ممكن اجرب و اجرب ال linear و اجرب ال non
linear و اشوف ايش المعادلة الأفضل example لو انا
قلتلك هى في عندى y تساوي w0 ال intercept لو انا
بدى اتكلم على معادل خط اللى هى نقطة التقاطع مع ال
yيوجد الـ Y و الـ W الـ coefficient تبع المتغير
الأول العلاقة الخطية الـ Y و W الـ W الـ Y و W الـ
W الـ Y و W الـ W الـ Y و W الـ Y و W الـ Y و W
الـ Y و W الـ Y و W الـ Y و W الـ Y و W الـ Y و W
الـ Y و W الـالـ equation تبعتي بتاخد different
forms أشكال مختلفة زي ما شوفنا في ملف ال Excel و
هنرجع لها على السريع في ملف ال Excel لما قلت له ال
line trend أو ال trend line كان فيه عنده
exponential عنده linear عنده logarithmic عنده
polynomial عنده power إلى آخره الآن أنا فيه عنده
ال exponential والعلاقة ما بين ال y و ال xإن الـ X
موجودة كأُص للـ exponential value E أُص B ضرب X و
الـ B هي الـ intercept اللي احنا بتكلم عليها يعني
ال coefficient تبعت ال X ال power value برضه
أنا ما زلت بتتكلم هنا هذه
المعادلة اللي موجودة عندي هنا ال growth saturation
model تبعتيو في عندى ال polynomial اللى احنا
شوفناها قبل لحظات polynomial هذا الرسمة لو كان
عندى بيانات و روحت رسمتها و قلت لها ارسملي ال
trend اللى موجود ارسملي المعادلة اللى موجودة مش
هكون في عندي مشكلة لان هذه مستحيل انا الاقي خط
مستقيم ما بين النقطة هاي نقفون النقطة هاي و النقطة
هاي مباشرةلحظه ليش؟ لأن الخط المستقيم أبعد لكن لو
انت قلتله والله انا ممكن اتكلم عن خط مستقيم في
المنطقة high نسبة الخطأ أقل لكن في الأول مستحيل
يكون لكن واضح ان ال trend تبعها non-linear
يعني انا بدي اجرب و احاول للفهم لل data و علاقة ال
attributes اللي اشتغل عليها هو اللي بيحدد انا فعلا
هشغل على linear ولا على non-linear طيب في الموضوع
ال evaluation يا جماعة الخير في الموضوع ال
evaluation انا بدي في عندي prediction في عندي true
values هي لأن خليناأهم metric لقياس ال regression
هو الـ root mean square error والبعض يعتمد فقط على
الـ mean square error وليس فارق كتير لأنني أريد
فرق و أزيل الجذر بعد ذلك لكن الـ root mean square
error ماهو ال error اللي موجود عندي؟ ال error هي
عبارة عن ال actual valueنقص الـ Predicted Value
لان انا بتكلم على continuous بتكلم على continuous
value انا عمال ال prediction و ال actual value
لازم تكون continuous الفرق بينهم هو نسبة الخطأ
اللي موجود عندها لو بدي اجي للرسم يا جماعة الخير
هذه النقطة بتمثل ال actual point النقطة الحقيقية
مصبوط؟ طيب و ال predicted value تبعتها اللي هتكون
هنا اللي على الخطكذلك هنا، لاحظوا الـ distance
المسافة اللي هنا بحسب الـ Euclidean distance اللي
احنا شوفناها لـ predicted value ناقص ل true value
تربيه، بصبوط؟ هاي الـ Euclidean الآن لو انا روح
اتجمعت كل المسافات هايوجسمتها على عدد النقاط اللي
موجودة عندها أنا بكون حصلت على الـ main square
error الـ main square error rotated بحطهم تحت
الجذر اللي موجود عندهاطبعا الـ Residual المقصود
فيها المسافة أو الـ Error الموجود بين العناصر اللي
موجودة عندك يعني بكل بساطة باخد الفروقات ما بين
الـ Predicted Value و الـ Actual Value بربعهم بجمع
الفروقات هذه بعد مربعات الفروقات و بجسمها على عدد
ال test value أو ال test set اللي موجودة عندها
طبعا لما تكونالفرق بينهم Zero معناته أنا فعليًا
أوصلت Actually للقيمة الحقيقية اللي موجودة عندهان
طبعًا الآن في عندي ال observation القيمة الحقيقية
طبعًا هو عمله بغير للرسم high كل ال X أو النقطة
السودة هي الحقيقية والخط اللي وقع الخط الأحمر
الكلام اللي أنا شرحته سابقًا هي فعليًا ال
predicted value اللي موجودة عندها وبالتالي مع كل
observation أنا فعليًا عندي ال Y الحقيقية ال
actual تساوي ال predictedزائد قيمة الخطأ اللي
موجود بينهم تمام okay معناته انا sum of error لو
انا بدى اجمع قيمة الخطأ فقط بجمعهم لكن احنا بنشتغل
على squared error تعالى نشوف ال implementation
ونشوف فعليا شغل مع data base موجودة في عندي data
base موجودة في ال .. ال .. الascular ال diabetes
اللي هي علاقة بمرض السكريfrom ascii learn import
dataset linear model اعملت import لهدول الشغلتين
مع بعض انا ال diabetes تساوي diabetes dot load
diabetes اعملت load لل dataset و اذا بقيت اطباعها
مش مشكلة روحت اعملت import لل non-bi طبعا انا كنت
بدي اعمل cut عشان اخد ال X لحالة و ممكن اخده طريقة
تانية بعيدا عن ال non-bi مش هستخدمها الآن X تساوي
ال diabetes dot
data 2.3 وكان شغالها على ال first attribute فقط اه
احنا بنشغل على ال linear نحصها على ال simple
linear فأخدت ال first attribute اللي هو ترقيه هيه
المحصور ما بين ال index 2 و index 3 خدت one
attribute فقطالان روحت في ال forum ال scale model
selection روحت ال data set عملت لها split صار في
عند X train او X test و Y train و Y test حسب ما
بنعرف و نسبة 30% لل test set ال data set اللي
موجود عندى يعني فيها حوالي 5000 record او اكتر
شوية modelلينيار موديل اللي انا عملته لها
important فوق لينيار regression اعمل fit حصلت على
ال coefficient اللي موجود عندهان روحت و قلت له ال
y predictه ساوي الموديل ده ت predict و زودته بال X
test اللي موجود عندهان قلت له هيه جيب لي ال label
هدول طبعا ال label ال predicted label ال actual
label هيه موجود عندهان تمام فانا روحت بعد هيه قلت
له اطبع لل interceptوالـ coefficient عشان اتأكد او
افحص المعادلة الخطية اللى موجودة عندى وفي الآخر
from asclean dot matrix import ال main square
error ال main square error او ال rooted main
squared error حسب احنا الآن هطبقها ال main square
errorاللي في ال slide السابق هنا أنا كنت بتكلم على
ال route route اللي هي الجدر الترديعي اللي موجود
عندي هنا فممكن انت تستدعي كذلك ال print ال mean
square error percent to F عشان بقى جيبلي ال two
digits بعد الفاصلة العشرية ال mean square error هي
الدالة اللي استدعيتها هنا او ال metric اللي
استدعيته وزودته بالy test و ال y predicted و
يدّيني ال value اللي موجودة عندنا وبهيك بنكون احنا
فعليا انتهينا من موضوع ال regression شبتر زريف و
خفيف نشتغل عليه بتمنى يكون .. بقدر توصل الفكرة
بشكل كويس بل في عندنا شغل اخرى اللي علاقة بال
assignmentلما أتكلم عن ال assignment أنا مش عارف
مش عامله hide اتكلم بال assignment انه جامعة الخير
لازم احنا نشتغل و نطبق مع بعض لازم لازم لازم الان
ايش مطلوب منك انت في عندك data set عندك data set و
ال data set تبعتك مخصصة لل regressionلينيار
ريجريشن او نون لينيار ريجريشن احنا لسه عما بتعرف
بدك تروح على ال data set اللى موجود عندكوا و تفحص
تتعرف على ال data set اللى بشكل كويس وبعد هيك تروح
تختار multiple multiple attribute
تعمل تعمل تعمل تعمل regression تعمل تعمل تعمل تعمل
تعمل تعمل تعمل تعمل تعمل تعمل تعمل تعمل تعمل تعمل
تعمل تعمل تعمل تعمل تعمل تعمل
ت
تقارن بين كل الحالات اللي موجودة يعني بالتفصيل
بالآخر بالتفصيل بدك تروح تجرب linear regression
simple linear regression و multiple linear
regression ماشي الحال على one attribute وعلى two
attributes ال multiple اعتبرها two والsimple
الاعتبرها one لكن ال multiple تكون two attributes
at leastبتطبق عليها Linear وتطبق عليها Unlinear
طبعا المفروض هذا يتسلم يوم اتناش اتنين لكن بما ان
التواريخ كلها تشجلبت فهيكون في عناياش التبتيب تاني
للتسليم وحوضح اكتر ان شاء الله تعالى ان خلال ال
modelبتمنى لكم التوفيق واتمنى يكون الموضوع ال
regression واضح بالنسبة لكم وإذا في أي استفسار
الموديل من خلال الموديل أو ال email أو جلسات
النقاش اللي هنعملها لاحقا السلام عليكم ورحمة الله
وبركاته