بسم الله والحمد لله والصلاة والسلام على رسول الله
أهلا وسهلا فيكم في محاضرتنا المستمر .. في
محاضراتنا المستمرة في مساق ال data mining وما زلنا
بنتكلم في باب ال classification و بالتحديد هنتكلم
اليوم على decision tree induction كنا في المحاضرات
السابقة أو المحاضرة الأخيرة أضفنا شغلة جديدة كنا
بنتكلم على النايف بياسوالـ Naive bias كانت فعليًا
هي واحدة من الـ Probabilistic approach المستخدمة
في ال machine learning من أجل ال classification
وقلنا احنا بيلزمني ان اعمل حسبة لمجموعة من ال
probabilities انا في عند ال instance اللي بدي ..
اللي هي ال unseen instance اللي انا بدي اعملها
classification بناء على ال .. وبالتالي ال class
طبعة ال instance هاي الموجودة عندى تساوي ال
maximum probabilityلل probabilities of the class
في احتمالية ان تكون ال instance هذه مع ال class
المعين و لما هروحنا بالتفصيل قلت انا فعليا بحاجة
انه هي data set اروح انشئ الجدول هذا بحيث انه انا
فالأروح حسبت ال probability لكل element أو لكل
classes اللي موجودة عندى ومن ثم انتقلنا في الخطوة
اللي بعدها جسمت أخدت ال attributes اللي المفروض
اللي المفروض عندها nominal attributes أخدت
distinct values وعملت حساب لكل واحدة فيهم وانتبه
دائما وانتبه دائما ان انا فعليا هان قاعد باشتغلعلى
ان ال probability نفسها يعني الآن عدد ال yes في ال
data 6 اللي عندي هنا 4 على 10 ومن ثم مع كل route
او كل attribute تحت ال yes هيكون 4 وكل مجموع
العناصر تحت كل no هيكون 6 و هكذا و هذا مفتاح
النجاح للعناصر الموجودة و لما اجينا بدنا نصنفالـ
sunny و ال mild و ال height قلنا حسبت ال
probability لل yes اللي كانت 4 على 10 في ال
probability لل sunny على ال yes و قلنا هذا الجدول
الأساس في الموضوع هي sunny و yes هيها 4 على 10
مضروبة فيه العنصر التاني كانت mild ال probability
تبعت ال mild يعني بين جسين هي ال yes ها دي مضروبة
في هيفي الـ mild في الـ high وهذه العناصر كانت
بتمثل ال probability فانا حسبت ال probability لل
different classes اللي موجودة عندى واخدت ال
maximum probability على ان هذه هي الاكتر احتمالا
في موضوع ان هذا العنصر او هذه ال instance تنتمي لل
class اللي موجود عندها الان اليوم ان شاء الله
تعالى هننتقلالموضوع الجديد اللي هو موضوع ال
decision tree في التعامل او ك different classifier
ال decision tree هي واحدة من ال classifiers المهمة
جدا المستخدمة في موضوع ال classification وهميتها
نبتكمن ان ممكن انا ارسم الشجرة وبالتالي بصير تفسير
ال model اللي موجود عندى او فهم ال model اللي عندى
اكثر منغيره على سبيل المثال احنا قولنا في ال
classifier الماضي اللي هو naive bias ان انا فعليا
عند ال classifier هذا مهم او جيد لأنه انا بقدر
افسر ليش النتيجة طلعت معايا هيك بناء انا على
الاحتمالات اللي موجودة في ال decision tree كذلكفي
decision tree هي عبارة عن انه انا فعليا حبني
decision tree جماعة الخير لما انا بتكلم على
decision tree اتذكروا خلينا نتذكر بشكل سريع ال
binary search tree مابديش اكتر من هيك ال binary
search tree كانت العناصر تبعتها انه كل node على
الاكثر عندها two childمظبوط هذه هي ال binary tree
وكان فيه rule بيحكمها ال rule انه انا في ال binary
search tree ان كل القيم اللي على اليمين هان هتكون
اكبرمن ال element وكل القيم اللي موجود عندها هن
هتكون أصغر طب القيم المتساوية مالهاش وجود المكررة
مالهاش وجود وبالتالي ال element مع كل node ال node
اللي عنده القيم اللي موجودة هن هتكون أصغر من القيم
اللي موجودة هن وهذه طبيعتها هتكون أصغر من القيم
اللي موجودة عندها بمعنى أخر أن ال structure تبع ال
decision tree أنا already بعرفها هي عبارة عن
مجموعة من ال nodes و ال connection أو ال connected
أو الgraph with no circuit زي ما كنا نسميها في الـ
discrete mathematics أشبه بالـ flow chart زي ما
قلنا سابقا في عند الـ internal node و اللي أنا
فعليا هي ال value تبعت .. هتمثل ال value تبعت ال
attribute اللي هحمل عليها الفحص هسأل قداش ال GPA
أكبر أو تساوي كذا بروح يمين أقل أو false بروح يسار
و هكذا فهذه ال internal node اللي هي عادة non-leaf
بتحدد ال test تبع ال attribute ال branch بيمثل ال
outcome وصولا لل leaf اللي موجودة عندى و ال leaf
node بتمثل ال class و طبعا لازم كل شجرة يكون لها
root node تعالى نشوف ال data set البسيطة اللى
موجودة عندها ال data set هاي مكونة من 14 rowالـ
Age و ال income و ال student و ال credit rating و
ال class تبعتي و طبعا جماعة الخير لما احنا بنروح
باتجاه ال binary class يعني two classes الأمر اللي
أسهل عشان استوعب إيش اللي بيصير لإنه لما تصير في
عندي تلاتة هتتشعب الأمور شوية في الحسبة لكن هي
عبارة عن تكرار لما سبق الآن أنا هذا .. عندي مجموعة
من الطلاب أو بيانات مجموعة من الناس اللي اشترت
حاسبات و ال data set كانت قديمة في ال 2000فكان
بيسأل هل هذا الشخص مؤهل أو ممكن مع احتمال ان يشتري
جهاز ولا لأ بناء على حالته ال age لاحظ ال age أنا
بتكلم على discrete او categorial data ال income
high و low و medium طالب ولا غير طالب yes or no و
ال credit ratingعادي او معتد الولا excellent
بالنسبة للمتوسط الراتب تبعته وفي الآخر ال class
اللي موجود عندهم الان لما انا بدي ابني tree ال
tree هتاخد بالشكل هذا خلينا بس عشان ناخد على
السريع ناخد ال role أول عشان نتذكر و نشوف كيف بدي
اتعامل مع ال tree او كيف تشغل ك calisphere yes يث
و high و no fair
الـ target تبعتي؟ لا هذا أول روح بس أنا عشان أغير
بدي أحق هنا yes عشان تصير هذا ال data أشبه بال
unseen و أشوف بال classification تبعتها كيف بدها
تكون الآن زي ما قلنا اللي يفهد ال age ال income
student
و في الآخر اللي هي ال credit
rate حاجة على decision tree ال decision tree او ال
model لما تم بناءه جالبه بيقول اهم element في
القرار عندي ال edge و هنتعرف كمان لحظات ان شاء
الله تعالى كيف احنا اختارنا ال edge ليش ماكنتش ل
student او ل credit rating اللي هي ال attributes
التانية و لاحظة ان في عندي بالكامل في عندي
attribute غايب اللي هي موضوعالـ income في الـ
decision tree اللي موجود عندي يعني هو كأنه بيقول
ال income هان مش صاحب تأثير كتير على ال decision
أو على القرار اللي موجود عندي طب كيف هذا الكلام
صار؟ هنشوفه كمان شوية ليش؟ في دلالة تانية هان بيجي
بيقول إنه ال high الأقل تأثيرا أو مالش تأثير يعني
بقدر أنا أشيله أو أستغني عنه بجمع البيانات التانية
بتكون أسهل الآن ال ageYouth, middle age و senior
فى عندى تفرعات غير هيك لأ هدولة ال three discrete
values اللى موجودة عندى بال age تمام حسب ال role
عندهان يف هي ال يف إذا أنا سألته يف يعني خلاص كل
branch السابق هاي ماليش دخل فيها إذا كان هو
student غالبا هيشتري ومش هدور على الفيرم مش
هتلزمني تعال طلع معايا عندهان
و هذا الطالب بيكون هيشتري كمبيوتر لإيش؟ لأن إذا
كان هو في ال middle ايه؟ أو في اليث صغير أو شاب
يافع و طالب في نفس الوقت يعني طالب جامعة فغالبا
هذا هيحتاج كمبيوتر و من ثم هيروح يشتريه لو أنا بدي
أرجع لل data set اللي موجودة عندي هان وان اليث و
student و fair yes يث student و fair
عشان تلاحظ ان هدولة التنتين هما اللي كانوا اكتر
تأثيرا في حالة ال elements اللي مولودة وهكذا لو
كان still age في ال middle age مباشرة هيكون هيشتري
ال attribute لو كان senior
وال income rate اللي عنده fair غالبا مش هيشتريه
وهذه هيك بتصير موضوع ال decision او موضوع ال
classification يعني ال leaves اللي عندي في ال node
او عفوا في ال .. في ال trees ال leaf nodes بتمثل
ال classes اللي انا بقى ادور عليها وطبعا عمق
الشجرة وحجمها مرتبط بعدد ال attributes وحجم ال
data set اللي موجودة عندى
الأن ال algorithm المستخدم مع ال decision tree
اللي هو ال basic algorithm بنسميه C4.5 وهذا بيشتغل
في مبدأ ال top-down recursive divide and conquer
الان الناس اللي أخدت خوارزميات حتما مر عليها مصطلح
divide and conquer الفكرة في ال algorithm هذا ان
المشكلة الكبيرة جزئها بتقدر تسيطر عليهايعني
بنجوسين حل جزء جزء من ال data set اللي موجودة عندك
هنا و هنشوف كمان شوية و هذا المبدأ هو مبدأ ال
greedy طبعا و من ثم ال algorithm هذا أخد ال greedy
algorithm شو يعني greedy يعني الطماع فكرته بكل
بساطة أنه أنا بنظر لل best solution في ال current
stage ماليش على المدى البعيد إيش اللي بيصير عندي؟
هبدأ مع كل examples هاخد مع ال data ال attributes
لكل ال data set و اروح عشان اوجدها او اوجد من
خلالها ال route الان كل ال data set اللي عندي هنا
must be categorical الان في ال C4.5 كل ال
attribute لازم تكون categorical طب انا ماعنديش انا
عندي continuous value اعملها discretizationو كل بن
اديها label و اعتمد اشتغل على ال label اللي موجود
عندك هان يعني لما تيجي مثلا ال age نقول والله
الياث من 16 مثلا ل 22 هيث ال
age اقول مثلا من 23 الى 35 senior
وبالتالي انا بقدر اشتغل .. بما ان ال algorithm بدو
مني discrete او nominal data فبقدر اعمل
discretization بعمل binning و بعد هيك بروح بحط
label لكل bin او لكل interval في ال continuous
attribute اللي موجودة عندهم على الرغم من هيك هتكلم
كمان شوية بشكل بسيط في موضوع فعليا كيف ممكن انا
افحص لو كان عندي continuous في algorithm مختلفة
طيب
ممتاز معناته انا فعليا هاخد ال data set و ابدأ امر
على كل attribute و على كل ال rows و اجسم العناصر
اللي موجودة ال test attribute اللي هيمثل ال node
اللي هاخد عليها decision اللي سمينها بين جثين ال
internal nodes سواء كانت هاي او هاي او هاي ماليش
beliefs لأن ال leaves بتمثل ال classes الآن هذه ال
test nodesأو test attributes هختارها تبعًا
لهيوريستيك أو statistical measurement بناءً على
مجموعة من ال rules المكتسبة سابقًا أو مجموعة من ال
statistics هعتمدها مثل الinformation gain أو
الgenie indexاللي هنشوف طبعا احنا هنكتفي في ال
course هذا على حسبة ال information gain وممكن
ازودكوا لاحقا ب description او بشرح لواحدة من ال
algorithm التانية اللي موجودة بتاعنا متى بدي اوقف
بوقف لما بتكون كل يعني في كل مرة احنا قولنا divide
and conquer في ال data set بروح باخد ال data set و
ببدأ بشتغل على ال attribute الأول ال attribute هذا
جسم ال data set ل2 أو 3 data sets مع كل data set
بأخدها إذا ال data set هذه كل العناصر اللي فيها
بتنتمي لنفس ال class يعني خلاص مافيش شغل على ال
data set هاي بمعنى آخر أنا أجيت لل middle age هنا
لما روحت قلت طبعا احنا حسبنا قلنا اخترنا ان ال
index هو ال major او ال root تبعتي الأول test
attribute وجيت دورت في ال middle age
Middle Age Middle Age تلاتاشة
واربعتاش بكل ال middle age هدولة يشملهم هدولة
بينتميوا لنفس ال class كلهم yes وبالتالي عند ال
middle age مافيش عندي continuous خلاص أنا وصلت
للنهايةلأ، طيب، ممتاز، معناته أول condition للـ
stopping أن كل ال samples لل node المعضاها بتنتمي
لنفس ال class زي ما شوفنا مع ال middle edge الحالة
التانية، أنه أنا فعليا بضلني بأجسم أو بعمل
partitioning لحد ما أصل أنه no remaining sample لل
attributes الموجودة، بدي أرجع معاك كمان مرة عفواno
remaining attributes او خلصت كل ال attributes اللي
عندي او فعليا ماضلش عندي samples موجودة بدي ارجع
معاك كمان مرهان انا الان هاتفقنا ان ال age هو اول
واحد خلصت من ال middle age انا ايش
بقي عندي بقي عندي ال young ال youthو ال senior ال
data set تبعتي هتنجسم ل two data sets يث و senior
يث و senior معناته انا هحصل على هاي
ال data set اللي موجودة عندي ها هي اليث فهروح انا
اخد هتعامل مع ال data set بعد هيك هايعلى إنها data
set مستقلة و أعمل و أبدأ بالحسبة مرة تانية يعني
بين جوسين أصبحت اليف الآن هي ال branch الآن مين
ضال عندي income و student و ال credit هروح أدور
بين هدول مين اللي هتكون عند ال test node هانو هعمل
split لل data هذه ال data set انسي الباقي كله هعمل
split لل data set هذه بناء على selected attribute
بين جثين احنا شفنا بال example مسبقا انه ال
student فكانت هي ال student ال student هدفي yes و
no بناء عليهالـ data set بتنجي سيملة two data sets
كمان مرة واحدة مع ال yes و واحدة مع ال no و بنقل
طبعا بما انه انا student yes و no بروح بدور صارت
هدولة بينتم دولة class و هدولة كل partition بينتم
ال class معناته انا وجفتطيب فحصت ال .. عفوا فحصت
ال age و فحصت ال student و فحصت ال income و في
الآخر لاجيت ان انا فعليا مافيش عندي attributes
فخلصنا فهذه ال condition او stopping conditions
اللي انا ممكن اوقف عليها طالما ال data ستة بقعت
كبيرة و فيها شغل ال decision tree بياخد مني وجد في
موضوع القرار اللي موجود هنا كمان مرة بلخص بشكل
سريعمتى انا ممكن اوقف اظل ابحث مين اللي بيحدد ال
depth تبعت letter E ال depth تبعت letter E تحدد
تبع ال dimensionality تبع ال data set عدد ال
attributes و عدد ال rows الان متى بدي اوقف لما
تكون كل ال sample في ال given node تنتمي لنفس ال
class يعني لما انا اخترت ال attribute و روحت اعمل
splitلاجيت واحدة من الـ partitions اللي موجودة
بتنتمي لنفس ال class خلاص هاد ابنا مافيش فيها شغل
لإن هاد ال decision تبعتها مباشرة لإنها بتنتمي
لنفس ال class معناته خلاص اوصلت ال leave node ال
leave node تبعتي ال leave node ال leave لماالخيار
التاني أنه لما بكون فعليًا أنا عملت splitting لل
data set على كل ال attributes وخلصت ال attributes
تبعتي برضه ماعنديش شغل و there is no sample left
مابغيش عندي ولا حاجة في ال data set عشان أجسمها
على مستوى الرأس تعالوا نروح مع بعض من خلال نشوف ال
information gain و هي الأكثر و الأشهر استخدامها و
ال Gain Index هنتكلم على ال information gain بكل
بساطةالـ information gain بتعتمد على ال
probability مش احنا قلنا قبل شوية موضوع ال
splitting او الفصل في ال attributes بيعتمد اعتماد
كله على فعليا العناصر اللي موجودة على احتمال
يقولنا اما heuristic rules او statistical
measurement لما بتكلم على probability معناته انا
جاي بتتكلم على احتمالات ال statistics الى اخرين
بقول افترض ان الـ P I هي عبارة عن ال probability
of an arbitrary tuple في ال data ال 6 تبعتي تبعتي
تبعتي تبعتي تبعتي تبعتي تبعتي تبعتي تبعتي تبعتي
تبعتي تبعتي تبعتي تبعتي تبعتي تبعتي تبع
الـ Probability للـ CD الـ CI على ال D على كل
Probability تبع ال data set اللي موجودة بكل بساطة
أنا في عندي تلت عمليات حسابية هعملها عشان أخد ال
decision و أحدد من ال test node اللي موجود عندي
الأولى هسميها ال expected information أو ال
entropy وهي لكل ال data set اللي موجودة عندي هنا
شو يعني؟الان مطلوب مني ان احسب ال information او
ال entropy لل classes اللي موجودة في ال data set
لكل ال data set وهنا بنجو سين وكأني بده يقوللي
احسب احتمالية او احسب ال probability لكل class في
ال data set عدد مرات ظهور ل class في ال data set
اللي موجودة عندي هنا وبعد هيك بروح طبق عليهم
العملية يعني انا لو كنت على سبيل المثالال data 6
تبعتي فيها عشر element أربعة منهم yes وستة منهم no
أنا
في عيني بتكلم على binary classification yes or no
أربعة yes وستة no ال information gained لل data 6
تبعتي كلها هي عبارة عن مجموع ناقص
مضروبة فيه ال probability تبعت ال data الأولى
احتمال ال class الأول 4 على 10 مضروبة في log ال 4
على 10 للأساس 2 زائد
6 على 10 مضروبة في ال logarithm 6 على 10 ال
logarithm ال binary logarithm و هكذا ليش القيمة
هتداني إشارة سالبة لأن ال logarithm تبعت ال binary
بتاعة الكسل هتطلع عندى سالب و إذا بتذكروا في عندى
log ال X على ال Yتساوي log X ناقص log Y وبما ان ال
Y عندي اكبر من ال X فستكون القيمة اللي عندي سالبة
عشان انا اخلص منها اخلص منها فكانت القيام اللي
عندي هان هتطلع قيم موجبة واضح الأمور ان شاء الله
جماعة الخيرالان يعني اول شغلة فعليا انا هسويها
هروح احسب ال probability لكل class او بين جثين
هحسب ال entropy هي عبارة عن حاصل .. عبارة عن مجموع
حاصل ضرب ال probability لكل class في ال logarithm
او ال binary log ل ال probability ل ال class اللي
موجود عندى و زي ما بقوله بال .. بال .. بال ..
بالمثال يتضح المقار كمان شوية هنتقل للمثال
بالتفصيل ان شاء الله تعالى الخطوة اللي بعد هيك بدي
اروح لكل attribute A احاول فعليا هيجسم ال data set
لمجموعة من ال partitions جداش عدد ال V هذه او جداش
عدد ال partitions بعدد ال distinct values اللي
موجودة عندى فيه ال attributeيعني ال age كان في
عندي تلاتة three three values يث و middle age و
senior ففعليا ال attribute ال age هي
الـ Attribute الـ Age يث و Middle Age والسينيور
هيلي الـ three distinct values ففعليا بناء على ال
attribute هذا هجسم ال data ستة باعتي كلها ل three
.. ل three subsets ل three partitions مع كل واحدة
من ال values اللي موجودة عندي هنا عشان انا فعليا
اروحأحسب ال information لل attribute اللي موجودة
عندها ايش ال information لل attribute ال
information لل attribute يساوي ال summationاحتمال
ال element اللي عندي او ال class اللي موجودة عندي
هنا لل attribute فيه ال information تبعت ال subset
اللي موجودة يعني بين جسيم ال subset الجديدة انا
هشتغل عليها و احسبها ال intro b السابقة بعد ما
احسب ال information لل attribute ال gain الانحياز
لأ ال element اللى موجود عندى هان أو التحصيل اللى
ممكن نسميها التحصيل ال a هي عبارة عن ال
information لل D الأولى ناقص ال information أو ال
entropy تبعت ال attribute اللى عندى ال entropy
تبعت ال attribute اللى عندى يعني أنا فعليا هاخد
هاي و هايهتراحهم من بعض بس ما تنسوش انه فعليا هذه
هي نفسها اللي فوق بس على different subset او على
different data set او بين جسين على subset set تبعا
لل values اللي جسمها لل partition اللي جسمت ليها
ال attribute اللي عندنا تعالوا نروح هن و نشوف
المثال اللي موجود عندنا قلنا في الخطوة رقم واحدفي
الخطوة رقم واحد قلنا انا اتفقنا ان انا فعليا هروح
احسب ال information gain او ال entropy لكل ال data
set ممتاز عشان احسب ال entropy لكل ال data set
بنذكر قلنا هو عبارة عن ال summation سالب واحد في
ال summation في probability لل I في log ل ال P I
ال probability لل I و ايش قلنا هاي ال classوالـ I
بيتساوى من واحد لأن بعدد ال classes اللي موجودة
حسب ال data set اللي موجودة عندها حسب ال data set
اللي موجودة عندها انا في عندى two different
classes only two different classes only اللي هم
yes و no حجم ال data set كل هجدش يا جماعة الخير 14
عدد ال yes 9 معناته ال probability تبعتها 9 على 14
الـ Probability للـ Yes 9 على 14 طب عدد الـ No
بجيتها 5 5 على 14 هي الاحتمالية تبعتها 5 على 14
وبهيك أنا حصلت على أول خطوةاللي هي عرفت ال
probability تبعت لـ classes اللي موجودة عندي اللي
هي ال probability لل yes و ال probability لل no
الخطوة التالية اللي المفروض ان انا اشتغل عليها
الان ان انا بدروح احسب ال information او ال
entropy تبعتي بالمعادلة التالية ال information
هنرمزلها لل I لل data set تبعتي تساوي تساوي
I تسعة كما خمسة تسعة و خمسة هدول هم الاربعتاش
تبعوتي يا جماعة الخير الان هي القانون تبع ال
information هيه بيلزمني فيها ان اعرف ال
probability لل yes و ال probability لل no وهذا
الكلام يساوي ماقص مضروبة فيه كام class and two
class هيهم هدوللو كانوا تلاتة هيكونوا تلاتة لو
أربعة هيكونوا أربعة إلى آخره مع كل واحدة فيهم الان
تسعة على أربعة اتناش هي تبعت ال class الأول اللي
بين جثين احنا قلنا ال yes مضروبة في ال binary
logarithm للتسعة على أربعة اتناشمجموعة لهم مجموعة
الخمسة تبعتها الخمسة تبعت النو خمسة على أربعة عاش
مضروبة في ال logarithm ال binary logarithm الخمسة
على أربعة عاش هذا ال gain تبعت كل ال data set
توزيعت ال data set عندي على two classes تذكر كمان
مرةواحدة اتين تلاتة اربعة خمسة no خمسة من اربعة
اتاشر معناته عندى تسعة yes والان قولنا هي قانونهم
قانون ال information او ال gain عفوا ال entropy لل
data set هي عبارة عن سالب واحد مضروبة في مجميع ل
probability لكل class مضروبة في ال log ل log ل
probability لكل class فانا هيني حسبت المعادلة اللى
موجودة عندى هتظهر من خلال
سلايد هيه وهذه
قيمتها point تسعة أربعة أو أربعة وتسعين من مية هذه
ثابتة هتكون لكل ال data set لكل training set اللي
أنا ببني عليها ال model ممتاز انا مشيت اول خطوة في
الحل الخطوة التالية ان انا فعليا بدي اروح اي اتنين
بدأ أحسب ال information لكل attribute موجود في ال
data set لكل attribute؟ صحيح فهأخد احسب ال intro
بالان او ال information gain لل age و احسب ال
informationGain للـ income لل student لل credit
rating و هكذا خليني انا ابدأ معاكوا و اذكركم ان
انا فعليا بحسب ال information gain لل attribute
تبقى على ال data set اللي موجودة عندها لأن ال
summation على عدد ال partitions ال summation ال V
زي ما قلنا قبل شوية هيها اللي هي عدد ال partitions
اللي عندها number of partitions حجم
ال partition لل data set عدد عناصر ال partition
لعدد عناصر ال data set ratio احتمال ولا لأ
probability ضرب ال informationلل data set أو لل
partition اللي موجودة عندي يعني مع كل partition
انا بجسمه هروح احسب ال information لل data set
لجديدة و هذه مبدأ ال divide and conquer زي ما قلنا
سابقا في الالجو في الخصائص اللي موجودة هنا خلينا
ناخد ال age ال age بجسم ال data set اللي عندي ل
three partitions بناء على مين؟ بناء على ان عندي
youthو middle age و senior فش عني غيرهم هايهم ال
different elements اللي موجودين عندى الآن إيش هروح
أساوي بهمش هروح أشتغل التالي هعمل جدول بسيط
إيش
ال values اللي موجودة عندى هناطب انا بتكلم على ال
age الان ك attribute ال value تبعتي جدش
منهم yes جدش منهم no و بدى اروح احسب ال intro بيه
تبعت ال yes و ال no
متفقين الآن احنا في عيننا قولنا three elements او
three different values موجودة عندى الأولى يث هى
واحدة يث تنتين تلاتة اربعة خمسة
no بتعد ال yes الان واحدة تنتين تلاتة تلاتة yes
وتنتين
no الان المطلوب مني هو فعليا انا عند خمسة yes
العدد هم هتوزع تلاتة و اتنين مقلوب مني احسب I
تلاتة و اتنينالـ Entropy للـ Yes والـ No تبع لل
class اللي موجود عندهم تعالى نشوف البعد هيك ال
middle age هي واحدة واحدة middle age اتنين تلاتة
اربعة اربعة middle age توزعتهم
واحدة yes تنتين yes تلاتة yesأربعة yes أربعة yes
هم كله عددهم أربعة فكم منهم أربعة yes معناته صفر
منهم no صحيح الكلام هيك و هيك صار في عندي أربعة و
zero بالنسبة لل senior الآن
صار في عندي تلاتة عفوا احنا قولنا هنا خمسة وهنا
أربعة مجموحهم تسعة جدش باقي عندي جدش باقي عندي
خمسة ليش؟ لأن ال data set حجمها 14 element فصار في
عندي تسعة rows موجودين مع ال value الأولى و
التانية لأنه ماتنساش و ماتنسيش أنه أنا قلت بدي
أجسم ال data set ل N من ال partition ال H بتجسم ال
data set اللي هي ال 14 row ل 3 partitions أنا حصلت
خمسة مع الياث مع الياثو 4 rows مع ال middle و خمسة
هم الباقين هيكونوا مع مين مع ال senior تعالى نعد
مع ال senior senior
yes senior yes no
senior yes وهي قيمة الأخيرة yes معناته انا عندي مع
ال senior تنتين yes و تلاتة no اتنين و تلاتة
وبالتالي انا لازم احسب ال entropy لتنين و تلاتة ال
entropy هاي او ال information gain كيف حسبناها
قانونها معروف سابقا ماتنسوش او ماتنسوش مطلقا عبارة
عن ناقصفي مجموع ال probabilities للبي في log ال
binary log للبي ال probability وال I تسوى من واحد
لعدد ال classes ساميه C الآن
ال data set هاي مش احنا قولنا divide and conquer
جسمنا ال data set والان بدي اعيد نفس الشغل عليها
نفس الحسبة فبرحت انا بدي احسب ال information gain
لهاي وهد اللي المفروض تساوي ناقص مضروبة فيه تلاتة
على خمسة في log أيوة جداش في ال binary log صحيح
تلاتة على خمسة زائد اتنين على خمسة في logاثنين على
خمسة هذه ال intro بالأولى هذه جمعة الخير صفر ليش
ناقص اربعة على خمسة اربعة على خمسة اربعة على خمسة
اربعة على اربعة sorry اربعة على اربعة في log ال
binary للاربعة على اربعة اللي هي واحد صفرزائد صفر
على أربعة في log صفر على أربعة ومن ثم القيمة هذه
هتروح عندي وهذه هي نفس اللي فوق بس مع تغيير ال
terms اللي موجودة عندها بنفس الحسبة وبالتالي أنا
حسبتها في الجدول فطلعت معايا هيها
خلصت؟ لأ لسه مخلصش بقال علي خطوة واحدة عشان اعرف
ان ال gain تبعت ال age جديش بدي اروح اقوله ال gain
تبعت ال data set اللي كلها اللي هي جمع الاي للتسعة
وخمسة حسبناها point تسعة اربعة صفر في ال slide
السادق هي
لما حسبناها هان لكل ال data set ال gain او ال
intro لكل ال data set حسبت الان ال intro ل ال age
هيها الان الخطوة اللي هشتغل عليها انه بدي اجيب ال
information gain لكل واحد فيهم طبعا المفروض انا
ممكن اشتغل الخطوة هاي تباعا اجرح اقوله مباشرة الان
ال information gain لل age تساوي
أو الـ Gain للـ Age تساوي ال Entropy لكل ال data
set نقص ال Entropy تبع ال Age ال
Gain لل Age تساوي ال Entropy لل data set 0.94 ناقص
ال Entropy ل ال Age اللي موجود عندى 6.94تساوي طبعا
ممكن تشتغل الخطوة التالية تشتغل مع ال income بنفس
ال concept ال income في عندي برضه .. برضه هان في
عندي three different values ال income في عندي
three different values high و medium و low
توزيعتهم بنفس الكيفية و بحسب ال entropy ل ال yes و
ال no و هكذا هى حسبت ال entropy ل ال ..Informat ..
لل income ال intro بي ل ال student ال intro بي ل
مين ل ال credit rating الآن خطوة تالية هروح رحسب
ال information gain او ال gain تبعت ال age و ال
gain تبعت هنا في slides مفقودة المفروض انا شكلي
نسيها او ما شابه لأ هي نفس ال .. okay بس مش مفصلة
فحسبت ال gain لل ageالـ gain للـ age هي
عبارة عن الـ entropy لكل ال data 6.94% ناقص ال
entropy تبعت ال age اللي هي 694 من الف و هيكون
الفرق بينهم 246 من الف و روحت حسبت ال incomeأو ال
gain لل income ال gain لل student و ال gain لل
credit rating لاحظ ال credit rating اقل ما يمكن
اقل اصغر واحدة من العناصر الموجودة عندى اقل
واحدة مع ال income مالهاش كان الهاش اقل تأثيرا
الفكرة ان انا بدي اروح اخد او بدي اعمل split على
ال maximum gain لل attributes مين
ال maximum؟ هي لان 244 من 1000 اكبر من اكبر قيمة
موجودة فيهم اللي هي هنا مع ال studentوهذا بتديني
إشارة إن ممكن ال student تكون هي ال next element
اللي أنحمل عليه splitting لكن مش قضيتي في الآخر
أنا هاي الآن الآن ال data set هرجعلها ال
data set الآن هنعملها partitioning هي ال data set
كيف ال partition تبعتي؟ بيبقى إنه قال لي إن ال age
هي هتكون الأساسكل الروز المحوطة باللون الأحمر هذه
أو بين جثين التبعت اليف هتمثل
one data set خمسة
روز تمام؟
بعد هيك ال middle age لحالهم اللي باللون الأزرق
عمالي بحوط عليهم
هدولة أربعة .. أربعة وضلوا ال senior العناصر
الباقية يعني بين قوسين إن ال data ستة بقى هتنجسم
الآن بعد ما أخدت ال route أنا هيها بقول ال age هي
الأساس لإن هي صاحبة الأكبر gain هيها فبدي أجسم ال
data ستة بقى لل three values اللي موجودة عندي يعني
ال youth و ال middle age و ال senior ممتاز
جسمناهم هذه ال data set اللى موجودة عندى الآن على
السريع شو هروح أساوي هاخد كل data set لان لاحظ ان
عمود ال student اختفت
عمود ال age اختفت ..عمود ال age اختفت ..الان كل
واحدة من ال data set هشتغل عليها بشكل مستقل لحد ما
احقق واحد من الشروط التلاتة اما فعليا كل ال
attributes او كل ال symbols تمتم لنفس ال classأو
ماضلش فيه عندي more attributes أنا جسمها أو ماضلش
فيه عنده rows بعد هيك يعني بين جثين حاجة لهان الآن
و هشتغل عليها بشكل مستقل هذه الآن new data set
هحسبلها information لمين؟ هذه كلها خمس عناصر اتنين
و تلاتة هذه ال information اللي اديه كلها ال ID
تبعتي I
تلا .. اتنين لليس و تلاتة لل no وهذا تساوي سالب في
مجموع .. في مجموع او بلاش نحط المجموع هيها اتنين
على خمسة في log اتنين على خمسة زائد تلاتة على خمسة
في log تلاتة على خمسةهذه المعلومات لكل ال data set
هذه as all ممتاز الآن كم attribute موجود عندي؟
عندي three different attributes عندي ال income و
عندي ال age يعفو ال student و ال credit rating
هروح أحسب ال information لمين؟ هروح أبدأ أبني
الجدول الآن لل attribute الأول مش اتفقنا هيك هشتغل
مع كل جدول على السريع أنا هشتغل بس مع هذه و الخطوة
التانية حاطر للباقية حاطر كواقلك الآن
مع العمود الأول ال income قلت
ال value تبعت ال income بعد هيك في عندي ال yes
وعندي ال no وعندي ال intro بلا ال yes و ال no بناء
على العدد اللي موجود عندي وبالتالي كام value موجود
عندي انا هان عندي low و medium و high هي
low
medium و high عد العناصر الموجودة مع بعضنا الان مع
ال law عندي قيمة واحدة فقط لمين بتنتمي لل yes واحد
yes و هنا صفر معناته ال entropy لواحد و صفر اجي
ل ال medium medium عندي تنتين
واحد yes وواحد no معناته انترو بي لواحد وواحد وضل
في عندي height انتين وبينتميوا لنفس ال class
معناته صفر واثنين انترو بي لصفر واثنين وذا بذكر ان
هاي القانون السابق اللي اعتند عليه حصل بحسب ال
gain الآن او بحسب ال information لل attribute اللي
موجود عندي من خلالالـ summation كمان مرة عدد ال
data set زي ما قلنا جديش جامعة الخير خمسة الان
واحد على خمسة في I واحد و صفر زائد هذه ال
information اتنين على خمسة في Iواحد و واحد زائد
اتنين على خمسة اتنين على خمسة صحيح اتنين على خمسة
في ال I صفر
و اتنين بحصل على ال information gain اللي موجود
عندي هان بعد هيك بقوله ال gainتبعت ال income هتمثل
ال ID اللي عندي فوق ناقص ال I لل income اللي
موجودة عندها هحسبها و فتالي بحسب لهذه و بحسب لل
العناصر
اللي موجودة عندى تماملل student بعيد الكرة و لل
credit rating و صاحب ال attribute صاحب أكبر gain
هو اللي حكون فعليا انا هعتمد وين في ال .. في
الرسمة او في decision node التالية حسب الحسبة
تبعتي حسبناها سابقا لازم انتوا تكملوها للاخر حسب
الحسبة تبعتي ال student حصلت اعلى game ال student
تبعتي حصلت اعلى game و بالتالي انا الان هان هصير
في عند ال studentهي الـ Internal node الجاية وفيها
two different values حقسم ال data set بعد هيك حقسم
ال data set تبعا لل nodes اللي موجودة عندي هيك و
بهكد صارت كل ال nodes بتنتمي لنفس ال class كل ال
samples بتنتمي لنفس ال class فهان بوقف هذه already
كلها بتنتمي لنفس ال class فانا وقفت هان ووقفت هان
هتكون ال final tree تبعتي طبعا هي الحسبة اللي
عندناها مرة تانية انا في الآخرالـ Tree تبعتي أحصل
عليها اللي احنا شفناها مسبقا المفروض قبل ما يبدأ
بالشغل اللي هي هذه ال income مابينتش عندي لإن
فعليا وزنها كان لا يذكر مقارنة بال data set و لما
أنا ماضلش عندي rows أو ماضلش عندي sample أروح
أجسمها الآن عشان
مانطولش عليكم بعد ما حسبنا العناصر اللي موجودة
عندها في ال continuous attributes في حالة ال
attributes اللي عندك continuous attribute ايش الحل
اعمل discretization اعملها categories جسمها لفئات
استخدم ال binning و اعطي label لكل bin و اشتغل
عليها بتكاشي تشتغل عليك في حل بسيط جدا الحل بيقولك
رتب ال data set تبع لل items اللي موجودة عندكرتبت
ال items تمام فصارت ال data sorted ان في حال كانت
عندي ال age عبارة عن number صار عندي تمنتعش خمسة و
عشرين تلاتين سبعة و تلاتين اربعين الان انت بقى
تيجي تفحص بين كل two nodes يعني هتاخد
ال midpoint اللي بين هدول الاتنين او الأسهل لك
فعلاً هي عبارة عن Discretization لكنها Binary
Discretization مع الأرقام انت ايش المقارنات تبعتك؟
اما هتقوللي أقل إذا قولت أقل من كده فهي أكبر أو
تساوي كده إذا قولت أكبر من أكبر من أو تساوي كده
فهي أقل من كده عكسها تماما فحكون بشغل عليها مع
binary يعني بين جسين بصير باخد decision هان بقوله
أقل أو تساوي خمسة وعشرين طب ما هي تمنتعش باجي هان
أقل أو تساوي تلاتين معتوا هدول في partitions و
هدول في partitions مع ال continuous attributes إذا
انت بدك تشتغل مع ال continuous values معناته انت
هيكون في عندك too many partitions لحد ما تصل ل
best point اللي بتعمل splitيعني هحسب الآن الجسم
كده كانت هان و لا لما كانوا تنتين و تلاتة و لما
كانوا تلاتة و اتنين و تجرب كلهم و تاخد أعلى gene
فيهم لأن في الآخر أنا بدور على ال gene لكل ال data
set تبعتي اللي موجودة عندي هان الان هدف الموضوع ال
spring لل continuous valuesلكن الـ Information
Game دائما بيحاز للـ attributes أو للـ test اللي
بيكون فيها two أو فيها many outcomes اللي فيها
values كتيرة عشان هي كانت في الأول عندى ال age
كانت هي أكثر ال values اللي موجودة جالك ممكن احنا
نحل هذه المشكلة و نعتمد أو نحاول نقضي على موضوع
انحياز ال values الكتيرة اللي هي موضوع ال gain
ratioالـ Gain Ratio فكرتها يا جماعة الخير انه انا
بده اروح احسب ال split info احنا سابقا كانت هذه
القيمة موجودة عندنا هي عدد عناصر ال partition على
.. على كل ال partition في موضوع ال probability لكل
ال partition اللي موجودة عندها و بعد ما بحسب ال
gain بروح بحط عليها ال split ratio و هيك برضه برجع
باخد ال maximum split ratio كذلك في عند ال gain
indexبيعتمد على الـ Multi-Valued Attributes بشكل
كبير الـ Ched بيعتمد على الـ Chi-Square عشان تحسب
الـ Independences أو في موضوع الـ Independences
وفي عند الكارت وإلى أخرى أي واحدة منهم أنا أختار
لعشان أنا أشتغل مافيش فرق ما بينهم كتير انت حسب ال
data set وحسب فهمك ال data set ممكن تختار أي واحدة
منهم لكن الأكثر عفواالأكتر استخداما الـ
Information Gain ومن ثم الجني أو العكس احنا بهيك
بنكون تقريبا خلصنا وضع لعينا one slide خلينا
ننهيها الآن رسمت لتري وحصلت على لتري و ال data set
تبعت كبيرة و كانت ال depth أو عمق الشجرة تبعت كتير
عالية طب ايش الحل؟ هاد احنا بنسميها ال tree هاد ..
او بيحصلنا على مرحلة اسمها ال overfittingمشكلة إنه
الـTree هذه جابته تماما مع مين؟ مع الـTraining
Data اللي أنا بديتها Overfit Fit يا شباب مناسب
ولمّا أقول Overfit مناسب بدرجة كبيرة لمين؟ للحالة
اللي هذه، يعني بين جوسينت وكأنه الشجرة هذه زبطت
حالها تماما مع الـDataset طب غير هي كانت لأ بتديني
مشاكل إيش الحل؟ الـOverfitting مع الـBinary Tree
أو مع الـDecision Tree بيعني Too Many Branches
ممكن يعكس الـ outlayer لو كان في عندي outlayer
موجودة عندي هان و بديني بور accuracy for unseen
هذا المفهوم ال outfitting ال overfitting ال
overfitting يعني اتنا سوات اكثر مع ال data set
اللي انا عملت عليها trainingو غير صالحة للـ .. للـ
correct prediction مع الـ unseen إيش الحل؟ في عندي
two approaches طبعا انت مش هتشتغل ولا واحد فيهم
هيتم الشغل تلقائي المفروض من خلال الـ python pre
-pruning انه انا فعليا ال attributes أو أدور على
ال attributes أو ال weak attribute و أخلص منها من
البداية انه .. ان اربط بناء الشجرة بالإيه؟ do not
split a node if ..
مالهاش علاقة كتير بالـ threshold الموجود يعني بين
جوسين أروح أحط minimum للـ threshold مش احنا قولنا
ال gain .. المفروض .. ال gain تبعتي أعلى gain طب
مابديش بس أحط gain أعلى gain و أروح أعمل .. و ألخ
.. و ألخم حالي في كل الحسبات لأ كمان هدول اللي تحت
اللي بدون gain قليلة من أول مرة بده أروح كلهم بدي
أعملهم neglect و مابديش إياهم طبعا هاي حيكون في
عندي تحدي كيف ممكن أختار ال threshold الصحيحة ال
boss browning بعد ما أنابنيت الشجرة بالكامل أروح
أبدأ أجشبر فيها بعبرة لإني أروح أفحص مين الأكثر
rows أو أكثر branches مستخدمة هي اللي أبقيها و
الأقل استخداما أخلص منها حسب ال data set اللي
موجود عندى أخر خطوة أو أخر slide في موضوع في موضوع
كي بدى أستدعيها الخطوات السابقة في ال python نفسها
from sklearn.tree import decision tree classifier
الموديل الـ Decision Tree Classifier عملت له fit
قلت له و هذه الجزئية في السطر هذا بتنبنى الشجرة
الآن ال
sample test نفسها لان شغالة نفسي بدا تست معاكم من
البداية جربتها مع ال kenia sniper وجربتها معالنايف
بايسين اروح تعمل ال test و هنحددني setosa بكل
تأكيد وبهيك بنكون احنا فعليا انتهينا من موضوع ال
decision tree لمحاضرتنا اليوم المطلوب بينكوا
تجربوا يا جماعة الخير في عندنا different data set
موجودة في ال slide سابقا جربوا الكلام هذا عليها و
جربوا الكلام عليها هذا كلام عليها يعني بينجو سين
هذا الكلام مش هتتقنوه من مرة و تنتين و تلاتةالشغل
التاني اللي بدي اياها منكوا بعد تجريب العمل يبدو
تعتبروها ك assignment عليكم الآن تبدو تروح تفكروا
او تدورولي كيف ممكن انا اذا كانت هذه عبارة عن ال
tree بعد ما انا عملتلها فت هل في مجال ارسم ال tree
تبعت بال بايثون اه في مجال وهذه متروكة لكم والسلام
عليكم ورحمة الله وبركاته