بسم الله الرحمن الرحيم اليوم إن شاء الله نكمل
الموضوع الذي بدأنا فيه المحاضرة الماضية وهو
decision trees قلنا إننا الذي نزلنا من
الموضوع هذا هو أن نبني trees بناءً على الـdata
هذه بعدها كذا بنبني منها rule set، مجموعة
rules التي نعطيها لـ expert system ليعمل
عملية الـdecision للـdata التي تأتيه جديدة
فنبني بناءً على الـdata السابقة، يكفي عندي في الآخر
الذي هو الـcolumn الأخير، وهو الـcolumn الذي
على أساسه أنا أُريد، أو يعني أُريد أن أصنف الـdata على
أساسه. فيه بعد ذلك عمود آخر، عمود آخر نسميه
attributes التي أُضيفها إليه في الآخر هو
decision tree بهذا الشكل، بهذا الشكل الذي في الآخر
leaf nodes تبعها، leaf nodes تُعبر عن
classifications، الـyes والـno، هي إجابة على السؤال
هل الشخص هذا سيشتري أم لا؟ إذا تذكروا الـ
table هذا في الأصل كان عبارة عن بيانات مُجمعة عن ناس
اشتروا بعد أن قُدمت لهم دعاية، وفي بعض منهم اشتروا، و
بعض منهم لم يشترِ، وهو الـcomputer، يعني، وبيانات
المعلومات عنهم سواء الذين اشتروا أو لم يشترُوا. التي
ننتهي بـdecision tree التي نصل بها إلى leaf nodes
فيها، والتي هي classifications أصبح
المسار المؤدي من الـroot إلى الـleaf
node هو عبارة عن، بقدر أنا أترجمه إلى rule مُنظم
فعندي عدة مسارات أستطيع منها استنتاج هذه الـrules، فهمنا
هذا الكلام؟ هنا وقفنا عند هذه النقطة، السؤال هو: على أساس
ماذا؟ أنا عندما أُشكل الـtree أبدأ من الـroot node
root node هذه عبارة عن attribute واحدة من
attributes، واحدة من الـattributes تبع الـtable، صحيح؟
واحدة من الـattributes تبع الـtable، أبدأ بها
عملية splitting، عملية الـsplitting للعكس، للعكس،
للعكس، للعكس، للعكس، للعكس، للعكس، للعكس، للعكس، للعكس،
بناءً على الـtwo values هذين، صار split، أو بناءً
على الـattribute صار فيه split لناحية، الذين هم جماعة
الـyes وجماعة الـno. إلى هذا الـtable، سب تابِل، وهذا سب
تابِل، نستمر في الأمر إلى أن، قلنا إن إلى أن نصل
إلى الـleaf nodes. قلنا إن السؤال، أو المعيار،
الذي على أساسه نختار، لماذا اخترنا student،
لم نختار مثلاً الـage، ولا الـincome، ولا الـcredit
ratio، المعيار كان الـinformation gain
information gain
information
gain، نريد
نأخذه من المعادلة هذه، هذه المعادلة. سننظر إليها الآن
بالتفصيل. لقد رأينا هذا المثال، صحيح؟ رأينا
هذا المثال، سننظر في هذا المثال، كيف حُسبت القيم
تبعته. أولاً، لأن عندي المعادلات
هذه، نريد أن نستخدم الـtable هذا. بمعنى أني
إن أنا أُريد أن أحسب الـinformation gain لكل واحدة من
الـattributes، فأُريد أن أعمل جدولاً لكل واحدة من
الـattributes. طبعاً أنا لا أعمل ذلك، عادة الـsystem
الذي يبني لي الـdecision trees يُجري هذه الحسابات
كلها ويُخرج لي، يُخرج لي الـtree نهائياً، يعني
يُخرج لي أنه في البداية يُجري split على أساس الـ
student، ثم الذي بعده، ثم الذي بعده. لكن كي يُقرر
إذا كان هو student أم لا، يُجري الـtable مثل
هذا لكل واحد من الـattributes. الآن student كـ
attribute، ننظر إليها، كم قيمة لها؟ yes وno، صحيح؟
بينما بعض attributes مثل الـage، نعود ثانيةً إلى
age، ماذا
كانت الـvalues المختلفة تبع الـage؟ ها
فيه أحد مثلاً أقل من أو يساوي ثلاثين، أقل من أو يساوي
ثلاثين، من واحد وثلاثين إلى أربعين، فالـage كـattribute
إلى كم قيمة؟ أكبر
من 40، هذه ثلاث قيم مختلفة لـattribute
الـincome: high، وmedium، وlow. الـstudent فقط yes و
no. الـcredit rating إما فيه أو excellent.
فيه أو excellent، مُنظم. فكل attribute فيها عدد
ما قيم الـvalues التي نريد تكوين الـtable إذاً؟
إن... إذا عدنا إلى... الـtable تبع الـstudent
attribute، فيها قيمتان، هما
yes وno. الآن أريد أن أرى أيضاً، يعني أريد أن... أن...
أريد أن أُضيف عموداً للـpositive وعموداً للـnegative، عمود
للـpositive، بمعنى ماذا؟ positive: yes وno، لا، بمعنى
أنه حسب الـclass النهائي الذي أُريد أن أصنف على
أساسه، أنهم اشتروه أم لم يشترُوه. okay، فما الـP هنا؟
بمعنى أنهم... أنهم... أنهم اشتروه، والـN بمعنى
لم يشترُوه، لم يشترُوه. okay، الآن لكل واحد من... من
values تبع الـattribute، هلاقي، يعني الناس الذين هم
student، هلاقي بعضهم اشتروا، بعضهم لا، يعني
ممكن الذي student لم يشترِها، وممكن الذي student
اشتراها، مُنظم. كذلك الحال في الـage، كذلك الحال في
الـcharacterization. ممكن الذي يأتي عندي في الـtable
تبع الـage، يأتي
عندي كم سطر؟ ثلاثة: less than or equal to
30، من 31 إلى 40، وبعدين أكبر من 40. لأن كل فئة
منها، بها positive، وبها negative
هذه القيمة التي أضعها هنا، هي قيمة ماذا؟
الـI تبع هذه الـvalue، الـpositive والـnegative
تبع هذه الـvalue. دعوني أقول مثلاً هذه الـvalue نعطيها
قيم 1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1,1
,1,1 I لـ P1، P2، N2، I لـ P3، N3، أو
P3
N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو
P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3،
N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3،
P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3،
أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3، N3، أو P3
N3. لقد غيرت في المعادلة هذه، الصيغة تبعها، فقط كي
تبقى واضحة الأمور. إن هذا الـratio، هذا الـratio،
ذكرته في المحاضرة الماضية، وهذه أيضاً الـratio هذا
هذا، يتعلق بنسبة الـpositive على المجموعة، أو الأخري
وهو نسبة الـnegative على المجموعة، المجموعة،
التي أنا عنها أُحدد المجموعة، هل المجموعة كل
attribute أم مجموعة الـvalue الواحد داخل الـ
attribute. الآن نفس الشيء في هذا الأمر، لكن المهم أني
عندما أكتب P: positive أو P: negative، أقصد إذا P
positive، أقصد الـpositive على المجموعة. إذا كتبت P
negative، أقصد الـnegative على المجموعة. واضح؟ فأنا
هنا لم أكتب علامة الناقص، لم آتِ بها
لكن كتبت P plus، صحيح؟ وهي الـpositive على المجموع
log base 2، أيضاً نفسه، صحيح؟ الـpositive على المجموع
ناقص P negative،
صحيح؟ وهو نسبة الـnegative على المجموع، log base
2، أيضاً الـnegative على المجموع.
طيب، نأتي الآن، نقوم بتطبيق هذا الكلام على
student attribute، الـstudent attribute. إذا تذكروا
قدّرناهم نحن في المحاضرة الماضية، قدّرناهم. عندي الـ
positive كم؟ الـpositive طلعوا ستة. okay، ستة
ماذا؟ ستة students
6 students اشتروا، واحد student لم يشترِ. نعود ثانيةً إلى
الـtable هنا.
هنا عندنا أربعة عشر، كم منهم students؟ أربعة
عشرة، سيكون عندك: واحد، اثنان، ثلاثة، أربعة،
خمسة، ستة، سبعة، مُنظم، سبعة students، وسبعة مش
students، يعني هي
student: positive،
وهي negative، yes وهي no، لأن yes: student اشترى،
كم هي؟ اشترى، هي yes: student اشترى،
واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، وهي سبعة، الذين
هو واحد، والذي لم يشترِها، الذي هو... الذي هو
هذا لأن no: student ولم يشترِها، positive: واحد، وهاي
اثنان، هاتين اثنين، صحيح؟
وهي... وهي الثالث،
لو أنا أُريد أن أعمل نفس الـtable هذا لمن؟ لـage
لماذا لا يوجد لديّ يساوي؟ لديّ الذين هم أقل من ثلاثين، و
من واحد وثلاثين إلى أربعين، وبعدين أكبر من أربعين،
أربعين، أربعين، تمام. إلى أن هي yes قوة أنه أقل من
ثلاثين. أكثر من واحدة، هي هذه، وهذه، وهذه، وهذه
وهذه، وهذه، انتهى الأمر.
الخمسة هؤلاء، طبعاً نضع عددهم هنا، أنا فقط كي
أذكر... الخمسة هؤلاء، كم واحد منهم اشتروا؟ واحد،
صحيح؟ وهذا اثنان، يبقى الذين لم يشترُوا ثلاثة، لأن فيها
الثانية، واحد وثلاثين، هي: واحد، اثنان، ثلاثة، هي أربعة،
أربعة، كم واحد منهم اشترى؟ واحد، اثنان، ثلاثة،
كلهم، كلهم أربعة، صفر. الذين لم يشترُوا واحد، اثنان،
ثلاثة. المعادلة هنا تقول لي أني كي أحسب
الذي كان لا بُد أن أحسبه في البداية، الـI، الـinformation
يعني الـgain تبع الكل، الـclass، كل الـclass الذي
هو على بعضه، بمعنى أن كل الـpositive وكل الـ
negative للكل، بغض النظر عن الـvalue، بغض النظر عن
الـvalue. لماذا؟ لكل الـstudent الذين اشتروا، كل الـ
positive تسعة، لم يشترِ، كل الـnegative خمسة. لأن لو
أُريد أن أحسب الـpositive ratio plus تبع كل الـclass تبع
كل... كل الـattribute، هو عبارة عن التسعة على
أربعة عشر، تسعة على أربعة عشر. الـnegative ratio
خمسة على أربعة عشر، صحيح؟ مُنظم؟ هذا الآن نأخذه
لأنه سيتكرر معنا. log base 2 تبع هذا أسهل مثال،
الثلاثة ماهي القيمة التي نرفعها إلى اثنين؟ هذا
القيمة كي نحصل عليها. هذا الكلام طبعاً نحن يعني
على الأقل نحسبه، بنسويه زي سؤال في امتحان وهكذا،
لكن المهم أن نفهم ماذا يعني log base 2، و
log base 10، لو لم يكن 2 هنا، معناها 10.
base 10، طيب، ماذا الآن؟ سنمشي معه على حسبته التي
هي أين موجودة في الـslide، التي هي... التي هي هذه.
الـ value من الـ positive و الـ negative تبع الـ
attribute كلها. طبعا أنا في حالة الـ student بما أنهم
two values، يبقى إذا هذا 7 من 14، يبقى الثاني الـ
value اللي هم السبعة الثانية، 7 على 14، طبعا هذا
بيطلع إيش؟ 0.5، وهذا هيطلع 0.5. طبعا بنقدر أجي أقول
هنا y باختصار لـ yes، وهنا أجي أقول pn باختصار لـ no.
بنقدر هيك هي الخاصية اللي قلناها هي الـ
attribute كلها. طيب
هذا الرقم الآن أنا حسبته الآن، بدي أضربه في الـ I.
يعني بقول لي اضرب كل واحد، لكل value اضرب هذا الـ
ratio في الـ I، وجميع المضاريب مظبوط؟ هذا الـ
summation. يبقى أنا الآن لما بدي أعمل لإيش؟ بدي
أحسب. لاحظ
أنا هنا بحط الـ V اختصار للـ value، هو بيستخدم الـ I
نفس الشيء، لأن هذول الآن ثلاثة، كل واحدة منهم ضد
القيمة في مين؟ في الـ ratio تبعها، وجمع المضاريب هذا
هو الكلام اللي عمله. عمل أول شيء، عمل إيش؟ حسب الـ 0
.59، ثم حسب لإنّه 0.987، لأن هذه القيم لازم نأخذها و
نضربها في
القيمة الأولى، هذه الخمسة
هي هذه القيمة، نضربها في مين؟ نضربها في مين؟ في مين؟
في النسبة هذه التي هي السبعة على أربعة عشر، صح؟ فهي
zero point five. الآن هذه القيمة اللي طلعت، نجمعها على
مين؟ هذا مضروب برضه، يعني عملياً النص، الـ E student، نص
الأولى هي تبع الـ positive، صح؟ تبع الـ yes، 0.5 مضروب
في إيش؟ 0
.591، هذا يجب أن ينجمع على 0
.5 مضروب في 0.987 هذا، والأرقام مع بعض هم الـ
summation. هذه في حالة الـ age، يكون لي ليس فقط اثنين،
يكون لي ثلاثة، ثلاثة terms حسب قداش فيه values لهذا
الـ attribute. مظبوط. الآن إيش اللي طلع في الآخر؟ الـ
entropy، الـ E، الـ entropy تبع الـ student، هذا المقدار
لأن هذا المقدار هو اللي بنزل هنا، بينخصم من الـ I
اللي حسبناها في الأول، اللي هي هذا لكل الـ attribute.
وبيطلع الـ information gain اللي هو الـ 0.155. بتكرر
الموضوع هذا للـ attributes الأخرى. إيش هذا في
البداية؟ عشان لسه نقرر. هذا لسه
خطوة رقم واحد. لما تخلص من كل الـ attributes student
إيش؟ credit ratio، إيش الرابعة كانت؟ المهم لما تخلص
منهم كله وتشوف مين الـ maximum، أه الـ attribute اللي
أقولها maximum، الـ information gain تبعها maximum،
بتستخدمها في الـ splitting. يعني هذا الكلام إيش في
الآخر بيعطيني، يعني إيش في الآخر أنا أو ليش بعتمد
على هذا القمر؟ لأنّه الـ split
على أساس الكلام ديال split، على أساس الـ student لو
طلعت على الجدول
أو الجدولين اللي بينتج من هذا الـ split، بتطلع
بتلاقي إنّه طلع العمود، العمود هذا والعمود هذا هنا.
هنا في خاصية أساسية عملت من أجل هذه حسبة الـ Gain،
وهي إنّ أنا بدي الـ classes اللي هنا، الـ .. الـ .. الـ
.. الـ items اللي هنا، الـ class تبعهم. شوف هنا كلهم
يسمعوا على هذا no، تمام؟ هنا في يدي no .. no .. و no، و
بعدين اثنين ثلاثة yes، والباقي no، ثلاثة من السبعة،
مش هالسبعة من السبعة، ثلاثة yes. الهدف إنّ أنا أحصل
على تقسيمة حيث إن قدر الإمكان الـ classes دي هنا
يبقوا واحد، يعني يا إما كلهم yes يا إما كلهم no. هذا
اسمه الـ purity تبع الـ split. إيش هالـ purity؟ درجة
صفاوة التقسيم. يعني أنا هذا اللي بأطمح له، إنّه يبقى
هدول كلهم yes، وهدول كلهم no. بس ما بقدرش دائماً، بس
على الأقل بسعى إلى الـ attribute اللي هتعطيني أعلى
قدر من الـ .. من الـ purity، من الـ .. من الـ purity.
هنا في عندي purity عالية، يعني كلهم yes وواحدة بس
اللي عاملة جاي كشواقب، مظبوط؟ هنا الـ purity أقل، بس
لو أنا جيت قارنت هذا الكلام بالـ purity اللي هحصل
عليها لو أنا جسمته على أساس الـ age ولا كده، هيطلع
أسوأ من هيك، تمام؟ فهذا أفضل ما يمكن الوصول إليه، فعلى
أساس لما أريد أن أقوم بالـ split بين هذه الأرقام و
هذه الأرقام، فأريد أن أعيد نفس الحسبة، لأن الإحصائي
هنا اختلفت، فهنا لدي واحد فقط هنا في الأوكانو ياس
سبعة و .. فأنا الآن أريد أن أعيد الحسبة على هذول
الـ income و الـ credit ratio و الـ إيش؟ عشان نقرر مين
من هذول الآن يكون هو أساس الـ splitting. وهنا برضه
نفس الشيء. هذا الكلام طبعاً إحنا بيؤتمت، يعني بمعناه
إنّ الـ system هو اللي بيسوي الكلام ده كله، وهو اللي
بيقرر، وهو اللي بيعمل الـ tree بناءً على الـ criteria
ده أو الـ equations هذه، وفي الآخر بيطلع معاه يعني
أنت الآن، الآن لو بدك تعملها يدوياً، بيلزمك الـ
equations هذه، تمام؟ وبنقول لك مثلاً مابين .. يعني
بيعطيك جدول، جدول ممكن يكون فيه خمس attributes، بس
مش هأشغلك تحسب الـ gain تبع الخمسة، لأنّ واحدة منهم
شغلانة ممكن تأخذها جدّ معك في الولايات المتحدة، بس
حاجة أقول لك مابين الـ attributes هذه وهذه وهذه،
طلّعها لمين منهم اللي ليش الـ gain تبعه أعلى، عشان
تحسبها ثلاثة. أما أنا هأسيبك بعد هيك أنت لتقرر هذه
الـ attribute، أي كم value فيها، وتعمل الباقية اللي
لها. بعد هيك ممكن مثلاً أجي أقول لك بناءً على الـ split
اللي طلعت معك، أو لو هندّي أنا الـ tree زي هيك، أو
طلّعها لمثلاً خمس ستة rules، خمس ستة rules من هذه
decision tree، فهتعطيني rules زي .. زي هذا الأمر.
واضح. فالآن هذا الكلام خلاصة اللي حكيت عنه، decision
tree. لنقف هنا، مش عارف إذا تبقى معانا واجد، نرجع
إن نُعاجِز الـ statistical methods، ما ظنّنيش بنخليها
للمحاضرة الجاية، بس خلاصة الكلام اللي هو إنّ إحنا
بنعتمد على تقنية decision tree في الوصول
إلى decision tree من statistical data التي هي الـ
table. الـ statistical data هذه على أساسها نطلع الـ
decision tree. decision tree في حد ذاتها ممكن تبقى
decision maker، هي نفسها أستخدمها في الـ decision، لكن
إحنا إذا عندي أنا expert rule based expert system،
الـ rule based بده rules، فأنا بقدر أعطيه rules من
مين؟ من الـ decision tree اللي أنا بأنشئها أو بولدها
أو بعملها generation من الـ table بالتقنية دي، تمام؟
المحاضرة الجاية إن شاء الله بنطلع، بنكمل، بنطلع على
الموضوع اللي هو statistical methods، يعني اللي هي
أدوات الإحصائية الشائعة في الاستخدام، اللي برضه
ممكن تستخدم في الـ data mining لاستخلاص بعض
الاستنتاجات. بعد ذلك ننتقل على الـ data
visualization. data visualization القضية مهمة جداً
في الـ data mining، لأنّ أنا أقدر أشوف الـ data
visually. وفي
الـ data visualization في موضوع الـ regression نحكي
في الـ regression. هنابعد ذلك في المحاضرة اللي بعد
نكمل principle component analysis و Association
rule، إن شاء الله.