بسم الله والحمد لله والصلاة والسلام على رسول الله
اليوم إن شاء الله شباب، هنبدأ بـ Chapter جديد في الـ
data mining، وهنتكلم على أولى الـ data mining tasks
وهي الـ classification. الـ classification لكن قبل
ما أبدأ بالمحاضرة فعلياً، وبالـ slides، بدي أسأل أنا
إيش احنا بنقصد بالـ classification؟
أه محمد، شو يعني classification؟
بدي
أصنف.. شو يعني بدي أصنف؟ أيوة، أنا بدي أقول..
بينهم شغلات مشتركة.
شو رايك؟ مشتركة؟ مرتّب، عفواً، بجسم الـ data على شكل
categories. بجسم الـ data على شكل categories، كريم.
بناءً على ترميز معيّنة، بعمل زي لِبْط بمثل الصدر أو كذا.
طيب، أنا قاعد بسأل شو يعني تصنيف بالعربي؟ شو يعني
تصنيف شغلات بينها أو في عناصر، فيها عناصر مشتركة.
عمار، شو يعني تصنيف؟ تقسيم العناصر إلى مجموعات. طيب.
شو يعني تصنيف يا راني؟ تصنيف شو يعني؟
طيب، لو أنا جيت قلت لك، أه أحمد، تفضل. اعمل sub-class
بناءً على role معيّن، أو subset. طيب لو.. لو أنا جيت
قلت لكم عندي الآن قرصة كتب، مجموعة كتب، وبدنا نصنّفها.
إيش اسمك؟ إبراهيم. إبراهيم، أنا عارف، بعمل تساؤل لك.
سنّوار، حسب إيش بدي أصنّفها؟ ليش يا إبراهيم سألتني
السؤال هذا؟ عشان أنا أقدر.. طب إيش اللي بدك إياه مني
يا إبراهيم، عشان تقدر تصنّفها؟
هو هو أنت صرت إبراهيم الآن؟ أيوة، إيش اللي بدك
يامني، عشان تقدر تصنّفها؟ حتى تقدر تحصر لي شغلات؟
معلومات.. معلومات.. معلومات عن إيش؟ معلومات عن
أستراليا.. معلومات عن أستراليا.. معلومات عن
أستراليا.. معلومات عن أستراليا.. معلومات عن أست
تمام؟ كان كله بيتكلم على clustering أو grouping.
لأن كلكم بتتكلموا، لمجموعات. أصنفهم لمجموعات، أصنفهم
لمجموعات. مش هيك أصنفهم. يعني في عندي predefined
sets. في عندي مجموعات معروفة مسبقاً، والمجموعات هذه
إلها عناوين، وأنت دورك تشوف هل العنصر هذا بيتوافق مع
المجموعة هذه ولا لأ، عشان تحطه تحتها. بينما اللي
كنتوا أنتم بتطرحوه، بتقول أنا بدي أدرس الخصائص
المشتركة بين الكتب، وأجسّمهم لمجموعات. هذا بيسمّيه
احنا في الـ data science أو في الـ data mining
clustering. يا تامر، بيسمّيه clustering أو grouping.
بينما للتصنيف، أنا بقعد فيه عندي مجموعات معرفة
مسبقاً، predefined
groups. ممكن
يكونوا أقل شيء، لازم يكونوا اثنتين. أجل، لازم يكونوا
مجموعتين، وبعدين هي بيجي دوري أنا، بشوف كل object
في الـ data set اللي عندي، أو كل object في الكتب
اللي عندي، بيندرج تحت أي مصنّف؟ تحت أي عنوان من
المجموعات هذه. لو أنا أجيت قلت لك يا همام، الكتب اللي
عندي أنا إما science أو politics أو financial أو
literature، أدب.
اقتصاد، سياسة، علوم، شوف كيف تساوي وعندك مجموعة
الكتب مثل ما هي مكدسة قدامي، شو هتعمل؟ كيف؟ ماشي،
هتفرزهم الآن، شو هتسوي؟ هتمسك كل كتاب.. كمل، على
الأقل أعرف الموضوع اللي بيتكلم فيه الكتاب، يعني
مثلاً كتاب بتكلم عن الاحتلال الإنجليزي لشرق آسيا،
مثلاً بتصنّفه سياسة ولا تاريخ، literature حسب الكتاب
عن إيش بتكلم؟ هل بتكلم مثلاً رؤية سياسية ولا
بتكلم مجرد سرد تاريخي للموضوع، الاحتلال على
التاريخ. جيت وجيت والله، كتاب بتكلم على الـ second
derivative.
Science. لجيت كتاب بتكلم عن الـ poems أو الشعر،
literature. مظبوط؟ هيك صار في عندي أنا الآن
باستخدام الـ knowledge تبعتي، تمام؟ ومعرفتي
بالمجموعات السابقة، بالمجموعات السابقة اللي موجودة
عندي، وبروح إيش بصير؟ آخذ كل كتاب أو كل object
بقرّن الخصائص تبعته، أو بحاول أطلع، أعرف عن إيش بتكلم
الكتاب هذا، وبروح بصنّفه لحاله، بحطه تحت مجموعة أو
تحت أي مجموعة من العناصر اللي موجودة. عامّة، تمام؟
فمعناته الـ classification هي عضوية المجموعات
predefined groups، مجموعات معروفة مسبقاً، وبدي أحدّد
مين العناصر، تمام، اللي ممكن يكونوا تحت المجموعة
اللي عندي الآن. بيفرق عن التقسيم أو الـ clustering.
لو قلت للشباب، أنا بدي أجسّمكم لمجموعات، تمام؟ شغلات
كتيرة ممكن تكون مشتركة، أو شغلات كتيرة ممكن تكون
مختلفة بينكم. عشان لو رحت أنا قلت، بجسّمكم تبع الـ
.. سنة الميلاد، تمام؟ لاحظ أنا في كل الكلام اللي
أنا بقوله، ما لي أي control على.. على عدد
المجموعات. بينما في الـ cluster.. في الـ
classification، عدد المجموعات. طبعاً، بدي أجسّمكم تبعاً
لتاريخ ميلادكم، لسنة الميلاد. كل ناس مولودين في سنة
هذول بيكونوا مجموعة لحالهم. طب لجيت واحد لحاله، أه
هذا، بدوني أعمل مجموعة، ما عنديش مشكلة في الموضوع، لأ.
ممكن أسخّر الـ clustering لخدمة الـ classification. ممكن
أسخّر الـ clustering لخدمة الـ classification، وهذا
بنسميه عادةً semi-supervised learning. إن أنا فعلياً
عندي بعض الـ data، بعض الـ data labeled، وبعض الـ
data.. وكمّ كبير من الـ data unlabeled. فبروح
بجسّمهم لأربع مجموعات حسب معرفتي من هنا، وبطلع في كل
cluster، كل مجموعة، إيش الأكثر عناصر من الـ الـ هم
label، وبسمّيه، بطلق عليه، وبخلي الـ bag كله، ماشي؟
يحملوا نفس الصفة. أجيت أقول بدي أصنفكم تبعاً
لمعدلاتكم.
واحد يقول يا دكتور، ما هو معروف، المعدلات تسعين وفوق
من ثمانين لتسعين، okay. بس لاحظ أنا ما اتكلمت على كل
اسم مجموعة. المجموعات هذه ما لها أسامي، مش معرفة
بالنسبة لي مسبقاً. تبع أوزانكم، أطوالكم، تمام؟ كل
الشغلات هذه، عاملة جماعة. بتتكلم على مجموعات، على
مجموعات، وبعدين هيك بنصير إما بحدّد الخاصية وبشغل، أو
بروح بقول لشبابنا، نجسّم لمجموعتين، لثلاث مجموعات، و
بصير أدوّر على الـ common properties اللي تجمعكم مع
بعض. لكن إيش الصفة السائدة لكل مجموعة؟ ما نعرفش
لاحقاً. بدنا نصير نفكّر، ندوّر بعنوان. بينما بالـ
classification، أنا عندي التصنيفات موجودة عندي
مستويات الطلاب موجودة: ممتاز، جيد جداً، جيد، مقبول؟ هذه
التصنيفات اللي موجودة عندي الآن. درجة الرطوبة إما
هتكون عالية أو متوسطة أو منخفضة. الجو إما هيكون
غائم أو غائم جزئياً أو صافي، تمام؟ اليوم إما هيكون
ماطر أو هيكون غير ماطر. هذه المعلومات أو هذه الـ
categories.
بتكلم على category كمجموعات إلها صفات مشتركة محددة
وواضحة، وإلها اسم. فهنا احنا بنتكلم على تصنيف
classification. إيش اللي احنا بنتعلمه في الـ chapter
هذا؟
إيش بتتوقع إن احنا نتعلم في الـ chapter هذا الآن؟
كيف أقدر أعرف المجموعات؟ مش صحيح، أيوة، أتعرف
على التقنيات اللي بتستخدم في التصنيف، غيره. طبعاً هذا
حتكلم، شغل مكتبات أو شغل ناس شغّالة في المجال. غير،
أه حسن، إيش بتتوقع أن أبدأ أتعلم الفصل هذا، أو
الشابتر هذا؟
كيف المكتبات بتعمل؟ إيش المبدأ اللي بتشتغل عليه؟
أه أحمد، إيش ممكن أتوقع أن أتعلم الفصل هذا، الشابتر
هذا؟ على أي أساس أصنف؟
أديب، الشغلات المشتركة بين الـ instances أو الـ
objects، عشان أقدر أصنفها. أقدر أفرّق بين إيش؟ بين الـ
objects أو بين جُثتين. أتعرف على الخصائص تبع كل
مجموعة، عشان أقدر أحدد لـ new objects أو الـ unseen
samples بتنتمي لأي مجموعة. بس فعلياً، مش أنا اللي
هشتغل. الـ Machine، الفكرة الآن لما نتكلم على
Classification، هنبدأ نتكلم على Machine Learning
Algorithm. هنبدأ نتكلم على تعلم الآلة، أو تعلم..
تعلم الآلة. كيف الآلة بتدور على الـ characteristics
المشتركة لكل مجموعة. الآن بما أن الـ classification
هي واحدة من supervised learning methods. احنا كنا
حكينا المرة الماضية، الـ data mining tasks نوعين:
Predictive و Descriptive. في الـ Predictive، قلت أنا
فيه Classification، وبدي أتنبأ بـ category، بدي أتنبأ
بالـ target label تبع المجموعة. وفي عندي Regression،
بدي أتنبأ بـ continuous value، بـ قيمة، وقلنا في الـ
Descriptive، في الوصفية، إما بتكلم على Clustering،
تقسيم لمجموعات، أو Outlier Detection، تحديد الشوائب،
أو الـ Association Rules، تحديد العلاقات ما بين
العناصر اللي موجودة. الآن، ضمن الكلام هذا، أنا هتعرف
على مجموعة من الـ algorithms، والخوارزميات اللي
بتستخدمها من أجل استنباط خصائص المجموعات المعرفة
مسبقاً، اللي موجودة عندي في الـ data. ومن ثم، لما بدي
أجي أعمل prediction، بدي تديني الـ prediction، أو بدي
تديني الـ category أو الـ group، أو اسم المجموعة اللي
بينتمي إليها الـ object الجديد هذا، اللي هو الـ
unseen object أو unseen instance. يعني فعلياً أنا
بدي أشوف الآلة كيف اللي بتتعلم. طب أنا وين في
الموضوع؟ أنت دورك، جهّزت البيانات، بدك تختار algorithm
كويس، وتقول للـ algorithm، اقرأ البيانات، وتعلّم منها.
تعمل evaluation، قبل ما تقول أنا صار فيه عندي model
بيقدر يعمل prediction للـ category أو للـ class اللي
موجود عندها. الـ classification
هي
واحدة من الـ mining tasks أو الـ data mining tasks
التقليدية. الـ task يعني من أهم أو من أكثر الـ tasks
شهرةً. لـ classification، وطبعاً ممتدّة أساساً بالـ
Machine Learning. عادة الـ Machine Learning
Algorithms، الشباب، بشكل عام، أو التقنيات بتشتغل ضمن
منهجيات معيّنة. الأولى، أنه فعلياً، هل الـ Machine
Learning هذه بتتدرّب أو بتتعلم من خلال الـ Human
Supervision، من خلال مراقبة الإنسان، أو إشراف الإنسان.
الفكرة كالتالي: ما ينفعش أنا أروح أقول للطلاب في
المدرسة هذه، مجموعة الكتب، أروح أدخّلهم في الصف الآن
من العاشرة للحادية عشرة، عليكم عربي، ادرسوا كتاب العربي
بدون ما يكون عندهم
batch learning كذلك في عندي الـ trend في الـ machine
learning هل هي model-based ولا instance-based
model-based يعني هيروح يبني model، هيروح يبني موديل
هو اللي بديه يعمل prediction لاحقاً، بينما بالـ
instance-based في كل مرة بديه يعمل prediction بديه
يرجع للـ data الأصلية، وطبعاً هدول الشغلتين لكل
واحدة فيه إيجابياتها وإليها سلبياتها، كذلك في
trend آخر فيه deterministic وفيه probabilistic
approach في الـ learning، في الـ deterministic اللي
هو الدقيق أو الموحد، أن الـ algorithm هذا مع الـ
input هذا لو عدته خمسة آلاف مرة، لو عدته مليون مرة
هيديني نفس النتيجة، محدد، بينما في الـ probabilistic
طبعاً في الـ deterministic مافيش عندي مجالة
randomness، مافيش مجالة عشوائية، كله شغال ضمن قيم
حقيقية موجودة بين إيدينا، بينما في الـ
probabilistic approach بيعتمد على الـ randomness
لأنه بياخد sample من الـ population وبيصير.. ممكن
تتغير.. عفواً، النتيجة تتغير ما بين مرة والتانية
بشكل
عام، احنا بنتكلم على الـ supervised learning و
بالتحديد الـ classification، الآن supervision زي ما
قلنا سابقاً، training data، الـ data set اللي أنا
اخترتها بتتكلم عن الـ heart disease، الـ
body mass index، الـ blocked artery، تصلب الشرايين،
قلم في الصدر، وفي الآخر التصنيف التبعي، هل هذا heart
disease؟ هل هذا مرض قلب؟ مرض قلب ولا لأ؟ yes و no، الـ
data set في جو زي اليوم، بتكلم الجو غائم، الـ outlook
cloudy، الـ temperature عشرة مثلاً أو اثنا عشر، الـ
humidity intermediate، متوسطة، الـ Windy، فيه رياح، بدي
أعمل، هل اليوم ماطر أو لأ؟ كـ category، كفئة، لاحظ أنا
الآن بتكلم هذه الـ label تبعتي، هي الـ target، هي الـ
group، الـ predefined group، إما هدول الـ instances
الـ data set مقسمين لمجموعتين، ناس مصابين بأمراض
القلب وناس غير مصابة، الجو أيام ماطرة وأيام غير
ماطرة، تصنيفات الطلاب جيد جداً أو ممتاز، جيد جداً، جيد،
مقبول، هذه التصنيفات الموجودة معروفة مسبقاً، وهذه
هتكون موجودة عندنا في الـ training set، هذه لازم تكون
عاملة combination ما بين الـ attributes اللي عندي
بالإضافة
الـ groups أو الـ predefined groups، يعني بين جثتين
محدد له بشكل دقيق، كل raw بيتبع أي مجموعة، تمام؟ كل
raw بيتبع أي مجموعة، وعادة هذه بنسميها احنا
training data، training data، فالـ classification هي
مهمتها تعمل predict categorial class label، تتنبأ
بالفئة، باسم الفئة تبعتها، تبعت المجموعات، للـ
unseen data، طبعاً الـ class label هذا إما بيكون
discrete أو بيكون nominal، شو يعني nominal data؟
text.. text.. text.. تمام؟ طب شو يعني discrete
data؟ قيم منفصلة عن بعضها، هي فعلياً ظاهرها
continuous، عشر، عشرين، ثلاثين، تمام؟ ولما بتروح
يعمل الـ prediction هو بتقول أما عشرة أو عشرين أو
ثلاثين، مالهاش علاقة بالأرقام أو العلاقة بالحساب
مطلقاً، الآن في
الـ classification هيبني prediction model عشان
يتنبأ بالـ discrete values اللي موجودة عندها، تعالى
نشوف الصورة هاي، أو بلاش، قبل ما نروح على الصورة هاي
عشان أنا بقى أظل أقول Model Model Model Model شو
يعني Model؟ نموذج، نموذج، تمام، وشو
يعني نموذج؟ تصور، تصور، تصور، تصور، تصور، تصور،
تصور، تصور، تصور، تصور، تصور، تصور، تصور، تصور،
تصور، تصور
صورة مصغرة، شوف أحمد من غاد بيقول لك photo
description، بس سيبك من الـ photo واتكلم عن الـ
description، أنا بقول لك صح، صورة مصغرة أو نموذج، بلاش
نقول مصغر، صورة تصف النموذج أو الشكل أو الـ object
اللي جاي عندي، الآن بتروح شركة Apple على سبيل.. لأ
انتوا أقول لكوا علاقة بما في ناس بتكون interested
بالسيارات، تروح شركة BMW بتقول لك والله إحنا في عندنا
الـ model تبع 2030 من السيارة جاهز، شو
يعني؟ مش.. لأ لأ ما تكلم ال.. ما تكلم على الـ model
يعني أن هو في عنده تصور أو وصف دقيق لشكل السيارة،
إيش السيارة بدها تكون، اللي في الـ 2030 يا همام،
ممكن prototype أو ممكن يكون عاملة prototype، بس في
الآخر أهم في الـ prototype هذا مثلاً، معارض
السيارات، لما بروح بيعرض في المعارض، إيش بقول لك؟
بقول لك، هي model، تمام؟ عن السيارة، هي model عن
الجوال
sample، إيش بستفيد من الـ sample هاي؟ فعلياً بشوف الـ
real description، بشوف وصفه دقيق كيف بيكون، لأ لما
بروح بقول لك في عندي الـ model تبعت الجوال مكونة من أو
هيك كده، فبديك وصفه، جدش حجمه، جدش الكاميرا، جدش وزنه،
جدش الـ processor، جدش الـ memory، جدش الـ storage
تبعته، إيش هو التقنية المستخدمة، مع الـ bluetooth، مع
الـ land، مع الـ wireless، عفواً، كل الشغلات هذه بتكون
موصوفة، وبالتالي الـ model هي عبارة عن طريقة لوصف شيء
معين، objects معين، مرة عليكوا تشغلوا اسمها data
model في الـ database زمان؟ الفصل الماضي يا إيهاب،
لما اتكلمنا على الـ data model وقبلها أنت بتعرف
شوية عن الـ relational model، تمام؟ مصبوط؟ ففعلياً
ليش بسميها model؟ لأنّه بوصف البيانات، وبالتالي
أنا الآن الـ model اللي هتكلم عليه هي عبارة عن آلية
لِوصف الـ knowledge، ما تنساش الـ data mining هدفها
knowledge
extraction
ولا لأ؟ هدف الـ mining task استخراج knowledge من الـ
data set اللي موجودة، طب الـ knowledge اللي طلعت هاي
كيف بدي أوصفها؟ كيف بدي أستخدمها؟ لازم تكون ضمن
model معين، عشان نقدر نستخدمها، الآن بالمثال
اللي موجود عندي هان في
عندي input raw data، مجموعة من التفاح حسب الصورة
اللي موجودة عندي هان، ثمان تفاحات، أحجامهم، ألوانهم،
الأوراق اللي موجودة عليهم، بالإضافة للريحة والطعم،
ريحة
تفاح، اللي هو ريحة ولا ما له؟ مش ريحة، ممتاز، لو ضليتكم
ساكتين، بقول لكم كيف بندخلها بس، وما أنك أنت سألتني،
خلصنا، فالآن هذه الـ characteristics الوصفية تبعت الـ
data هي، هم، هروح نديها للـ algorithm، أو أختار
algorithm، machine learning algorithm يقرأ الـ data
set كلّها، يعملها تحليل، يِوجد علاقة ما بين الحجم و
اللون والرائحة والطعم، كل الشغلات هذه، لما تديله
الـ data set أو العناصر هذه، يكون قادر على أن يقول
لي أن هذه تفاحة، الآن الـ model هذا أنا روحت اختبرته
بتفاحة خضراء، تفاحة ولا لأ؟ تمام؟ اللون واحدة من الـ
characteristics اللي كانت موجودة، بس مش كل شيء، الآن
الـ model تبعي الأصل يقول إنه هذا تفاحة، لو أنا روحت
أضفت هان مجموعة
من الـ mango أو البرتقال، تمام؟ مجموعة من البرتقال،
وصار في عندي two groups، في عندي هذه apple
وهذه orange، الـ system اللي يتعرف على خصائص الـ
apple هي المفهوم، التصنيف، أن أنا خلاص okay، هدول
هي المصنف تبعي apple أو orange، فالـ system هيتعرف
على خصائص الـ apple وخصائص التفاح ويبني model قادر
على التفريق ما بين التنتين، فلما أنا بديّه تفاحة،
هيقول لي تفاحة، أدّيته برتقالة، الأصل يقول لي
برتقالة، طب لو أدّيته حبة مانجو، مش هيعرف، غلط، في
الـ classification هان لأنه آلة، وما فيش مجال يا
هذه يا هذه، ما فيش مجال، ما فيش خيار ثالث، أنت
ما تركت له، في موضوع التصنيف، هي اللي أنا بوصلك
إياها، في موضوع التصنيف، ما فيش مجال، عندك أربع فئات
بدك تحط تحت واحدة من الأربع فئات، عندك two
categories، بدك تضيفها لواحدة من الـ categories بس
غالباً هيضيفها للأقرب، يعني تخيّل أنّه والله كان في الـ
mango اللي بنتكلم عليها هي لونها أحمر مثلاً وما أخذة
شكل كروي أكثر، تمام؟ فهتروح باتجاه التفاح، في الآخر
هو صح صنّفها غلط في كل الأحوال، بس هو اجتهد.. اجتهد
وراح ضافها للأقرب حسب الـ object اللي موجود، لكن في
المقابل كان في حبة مانجو أخرى أكبر حجماً ولونها
برتقالي، تمام؟ فمش ضروري أروح أصنّف لك إياها تفاح،
بروح أصنّف لك إياها إيش؟ Orange، لأنّه فعلياً الـ
characteristic تبعتها متشابهة، نعمل، مش ممكن عمرك
مرة عليك برنامج أنّه بيبني فئة لوحده، ممكن يتعلّم
يبني.. يبني الحالة، يبني الحالة، ده حالة يعني إذا
تجي ده أول مرة، أول مرة تصنّفها لحالة، وممكن الـ human
يقول لك شوف رجع لوين، بعدين الـ human يقول، الـ human هو
صاحب القرار، عمرها ما قال غيرت حال تمام أو أخدت
decision لوحدها، حتى كل اللي بنشوفه في الذكاء
الاصطناعي مردّه لتخطيط صحيح من الـ human، وتصرف الآلة
ما هو إلا من تصرف الـ human ضمن المسار اللي رسمه
الآن سيبك من الأفلام اللي احنا بنشوفها أن الـ.. الـ
.. اتطورت حتى تقطع.. تقطع.. تجيب البشر وتحتل
الكون، ده ما فيش منه، تمام؟
طيب، الآن فبالتالي يا محمد احنا بنتكلم، ما فيش مجال، ما فيش
مجال أن أروح فئة، أضيف فئة جديدة، لأ، الفئات موجودة
مسبقاً، وبناء عليه أنا هشتغل مع الفئات اللي موجودة
عندي، فضل
مية بالمئة، الفرق بين الـ regression والـ
classification أن الـ classification categorical
value، discrete values، واحدة من التنتين هدول، بينما
بالـ regression بدّه يديني قيمة continuous value،
number، بدها تكون موجودة عندي، طيب الآن الـ
classification هي عبارة عن تكنيك أو خوارزمية أو تقنية
من أجل التنبؤ
to predict group membership، شو يعني group
membership؟ عضوية المجموعات، هل هذا ملائم لعضوية
المجموعة الفلانية ولا لأ؟ في عندي مجموعة اسمها الـ
Smart Students في الـ IT، أنت ملائم إلها ولا غير
ملائم؟ مش أنت اللي بتقرر، تمام؟ في لجنة هتروح
تختبرك وبناء عليها تقول أنت تنصلح ولا ما تصلحش،
ليش؟ لأنّه كمان مرة الـ prediction مش أنت صاحب
قراره، عفواً، الـ classification أو التصنيف مش أنت
صاحب قراره، في عندنا كل صنف إله rule أو خصائص
negative orange, not orange. ما بنقولش تفاح لأن لو حط
المانجا وحط الموز تحت التفاح، في عندنا خطأ
فبنقول إحنا orange و not orange، وهكذا الآن في
مرحلة training زي ما قلنا إنه هيأخد كل ال data
points اللي موجودة عندها، اللي هي ال samples، مع ال
correct label المرتبط فيها، ويحاول يتعلم يصل لـ
pattern معين، كيف ال label هذا مرتبط بالـ point، زي
ما حكينا قبل لحظات، بمجرد إن ال system هذا تعلم، بدي
يبدأ يتصرف الآن، فتصرفه هيكون عبارة عن function
prediction function، هتأخد ال input تبع ال sample
تبع ال data point بدون ال label، عشان تعمل هي
prediction للـ label أو لل category اللي موجودة
عندها. فال
step الأولى بنسميها إحنا ال model construction
بناء ال model في ال regression يا جماعة الخير، وحتى
في ال classification، ممكن ال model تبعي يكون عبارة
عن binary classification، يكون عبارة عن linear
line، linear equation، ال Y equal M
معادلة خط مستقيم. ماهي الخط المستقيم مهمته؟ بيفصل
بين شغلتين، اللي فوق الخط category، واللي تحت الخط
category تانية. ففي لحظة ال binary classification،
إذا قدرت أنا أصل لمعادلة الخط المستقيم اللي بيفصل
ما بين ال two categories، خلاص هي ال model تبعي
بصير باخد ال instances، تمام؟ وبقارنها، إذا كانت
أكبر من كده فهي positive، أقل من كده فهي negative،
true أو false، orange أو not orange، فهي ال model
اللي أنا بدور عليه. في ال model construction، إحنا
عادة بنفترض إن ال data set، كل sample في ال data
set بتنتمي ل only one category، لأن لو نفس ال data
set، أو عفوا نفس ال instance هذه تكررت مع different
category، هيكون في عندي مشكلة. الشغل اللي بتعلمه قبل
شوية، بدي أحاول أنفيها أو بدي أراجع عنها وأحط
واحدة مضادة لها، وهذا الكلام ما بيصير تماما
تماماً، مثل ما آجي أقول، أعلم الولد الصغير، أقول له 2
ضرب 3 يساوي 6، وفي نفس الوقت أروح أقول له بعد فترة
2 ضرب 3 يساوي 16.
يحفظ مين فيهم؟ مين فيهم الصح؟ الأخيرة صح، اه؟
ما بيعرفش ال system، ال computer ما بيعرفش، أنت في
مرحلة التلقين، الإثنين صح، ولما يصير في عنده معلومة
متضاربة، فعلياً مش هيقدر يأخذ decision في أي حالة
فيها. اتنين ضرب تلاتة، هذا اللي بيصير، عشان هيك
بنفترض إنه في موضوع ال learning، أو في مرحلة
training أو ال learning في ال model construction،
إن كل instance بتنتمي فقط ل only one category، one
label. مجموعة ال data، ال 6 اللي أنا بدي أدرب عليها
النظام، أو اللي بدي أحللها النظام، بحيث إنه يأخذ منها
يستخلص ال model منها، بسميها ال training set، بسميها
ال training set. دكتور، نعم. ال training set، كلمة
بتعمل ال model، بنقل عليها، لأن كل واحد مثلاً في واجب
مخل، تلقى ال training set من خمسين ألف دورة، مش
هتبقى ال model مثلاً زي ما سيكت في سبوك أو أمازون،
بتبني، أو ال training set دي ال model. طب ما إحنا
قلنا، مين جابلنا هيك، هيقولنا، كل ما كبرت ال
training data set تبعتي، بكون فرصة ال prediction
تبعتي إنها تكون أدق، أعلى. كيف الاسم يعني؟ مثلاً خمسين
ألف raw data. شوف لأ، لأ، شوية. أنت عندك ال data set كلها
خمسين ألف raw data، وبدك تعمل training على تلاتين ألف raw data،
مثلاً، مش كافي، لأن عادة جماعة الخبرة، ال rows
المستخدمة، أو الحجم لل training set بيكون أكبر من
ال testing set. يعني الآن، إذا بتقدر تعمل training
على كل ال data، وتختبره في data مختلفة، بيكون ممتاز.
عشان هيك كنا في ال data preparation، نأكد هل في
مصادر أخرى للبيانات عندك، ولا مافيش؟ وجديش حجمها،
طبعاً؟ الآن، إذا أنت لاحظت في أخر assignment، أو في
ال assignment الأخير، مطلوب منك، آخر بند، اجسم ال
data set اللي عندك، 70% لل training set، و 30% لل
test set. مصبوط؟ وهذه التسأل ليش؟ لأنه ما بديش إياك
تدرب كل... تدربه على نفس... يعني على نفس ال data، و
بعدين آجي أحترمه، لأن كيف بدي أختبره أو بدي أفحص
مدى دقة العنصر. كمان مرة يا جماعة الخير، بنأكد، كل ما
كانت ال data set أكبر، ال training set أكبر، المفروض
إن كل ما تكون ال data، أو خلّنا نقول ال knowledge
تبعتي أدق، ال classification تبعتي بتصير أدق، لكن
برضه مش منطق إن يكون أنا في عندي اتنين مليار
record، تمام؟ وأنا بروح بتقبج عليهم كلهم، عملية ال
training بحد ذاتها هذه، هتصير تأخذ مني أشهر لما
تنتهي. فبتصير ممكن ال task اللي أنا بأشتغل عليها
أساساً خلصت، بطلتلها قيمة. فأنت برضه بتوازن ما بين ال
accuracy تبع النظام، وعامل الوقت أو ال performance
تبع ال training، جديش بيحقق نتائج في
ال data set اللي موجود عندنا. هان الآن، هاي عندي ال
data set، ال name، ال rank، ال years، نرجع ولا
ما نرجعش، نقعد
ولا ما نقعدش، نريح ولا ما نريحش، لأن هاي ال class
اللي عندي yes و no. فاروح أعمل التحليل لل data set
اللي موجودة، وكان مفاده إنه ال algorithm راح أعطاني
classifier model، prediction model لل class، لمية
ممكن أختار؟ ل yes و no، بحيث إنه أنا لو زدت بال
rank وعدد سنوات الخبرة، يدّيني ال label اللي موجود
فقال ال model تبعي هو عبارة عن if then rule، لو كان
ال rank professor، وال years أكبر أو يساوي 6، أكبر من
6، معناته نرجع. تمام. المرحلة الثانية، ال model usage،
بالملاحظة يا شباب، ال classification algorithm، أنا
هان غالباً... غالباً بيشتغل فعلياً as a black box، يعني
بدي ال input، وأخذ منه ال output، اللي هو ال model
إيش اللي بيصير... إيش اللي بيصير؟ غالباً مش كل
الناس المعنية فيه، بس أنا بالمساق هذا، هدخل بتفاصيل
عشان أعرف فعلياً ال classifier كيف اشتغل، تمام؟ لكن
في بعض ال classifiers، مش هنكون، أو مش هنتطرق لها
بالشغل تبعتها. بمجرد إن ال classifier انبنى، بدّه
أروح أطبقه، أو بدّه أروح أستخدمه، ال model هذا الآن
بيصير قابل للاستخدام. فيش
بدّه أستخدمه؟ يعمل classifying لمين؟ لل feature، لل
future، أو ال unknown objects.
بالمثال السابق هذا، أنا صار في عندي Jeff
professor، و 4 سنوات. الاسم neglected، مش هعتبره، لأن
ال role تبعي مبني على ال rank وال years، وبناءً
عليه أنا بدي آخذ القرار. كان بيقول لي، if ال rank
equal
professor، or ال years أكبر من 6، then yes. مظبوط، هاي ال rule
تبعي، هاي ال model تبعي. الآن، هاي ال data اللي عندي
حققت عليها، بطبقها مباشرة، باخد ال instances وبطبق
ال instance value، وبطبق عليها هان، وباخد القرار
تبع لل rule اللي موجود عندي. طيب،
لو ما كانش professor، كان assistant professor،
و 5 سنوات، no، مع ال else مباشرة، مع ال else مباشرة،
الارجل مع الخير. معناته أنا بحاجة في مرحلتين عشان
أشتغل مع ال classifier، بحاجة أشتغل على مرحلتين،
المرحلة الأولى اللي هي ال model construction،
وبيلزمني data عشان أدرب ال model عليها، بين جثين
بيلزمني data عشان ال system أو ال learning
algorithm يحللها ويبني model بناءً عليها. الشغلة
الثانية، إنه أنا بدي أفحص ال model، أو بدي أستخدم ال
model في ال prediction، وهي بنسميها إحنا المرحلة
مرحلة ال testing أو ال test. فأنا بدي اجسم ال data
set تبعتي، ل training set، و
test set. ليش؟ عشان لما أنا أحصل على model، عشان لما
أحصل على model، كيف بدي أتعرف إن ال model هذا شغال
كويس ولا لأ؟ بدي إنه النتيجة المطلوبة، ولا بشتغل من
رأسه؟ فبدي أعمله evaluation. طيب، evaluation، how did
we test that test set؟ هو الأصل هي unseen data، مصبوط؟
فعلياً unseen، ما شفهاش، بس دي فيها label، بخبي ال
label عنها، عشان أقدر إيش؟ أقارن بين النتيجة اللي هو
هيعطيني إياها، والنتيجة اللي هحصل عليها، وأنا بدي أسأل
سؤال: هل ال test set labelled set؟ في مرحلة ال
evaluation، هل ال test set labelled set؟ طيب، الآن
أنا جديد، كتبت
الـ body mass index، point تلاتة سبعة، والـ chest
pain yes، تصلب شرايين، Blocked Artery yes، قال لي هذا
heart disease. هذا الأصل اللي نعملها prediction، صح؟
أنا أخدتها على عليتها، هيك قال لي no. بتقدر تقول عن
ال prediction بتاعته صح ولا غلط؟ بتقدر تعمل
evaluation لإلها؟ بتقارنها بإيش؟ بال label الأصلي.
فعشان هيك ال test set must be labelled. عشان هيك، بعد
ما أنت خلصت، عملت processing في ال assignment،
وقلت لك اجسم، اجسم ال data set لجزئين، جزء ال
training، وجزء testing. بس اللي هيصير فعلياً، لما أصل
لمرحلة ال evaluation، هخبّي ال test، أو هخبّي ال label
تبعت مين؟ تبعت ال test set، عشان أقول، اتفضل، هاي
unseen data، اعمل لهم prediction، فبيديني مجموعة ال
labels اللي predicted، وعندي ال original أو ال true
labelled، بصير أقارن، وبقدر أتكلم إنه جديش هذا ال
model تبعي accurate.
أه، الآن أحمد بيسأل، بيقول: هل بقدر أروح أرجع ال
data test set هذه، وأوديها على ال training، عشان
يتعلم من أخطائه؟ أنت already علمته، وكمان لو أنت
روحت أخدته، يعني هيك، من وين بدك تختبره بعد هيك؟
بدك تجيب له data set جديدة، طب ليش مش من نفس ال
data set؟ لأن already هو شافها، تمام. من الشباب،
بينفعش أنا آجي أديك الامتحان وأقول لك اتفضل، حلّ، تمام،
وبكرا بدي أختبرك فيه، في الأسئلة هاي، ما أصبحش
امتحان، ولا أصبح امتحان امتحان مسرّب، اه، فش يعني، عفواً،
كلّكم هتنجحوا، مصبوط؟ الأصل كده، واللي ما بدهوش ينجح
يتطخّد الساعة بيكون، بس فعلياً، هل النجاح هذا حقيقي؟
لأ، الحاجات هذا fake، النجاح هذا fake. أما إحنا قلنا
الفكرة وين؟ إن بعد ما أنا جسمت هان، في مرحلة ال
evaluation، مش بدّه يشوف... بدّه يشوف ال... بيشوف هو
اجتيش... لأ، بدّه يشوف ال... ال... ال... ال... ال
result، دي، يقارن فوق، هيو... هذه... هذه... بدّه يقارن
هذه. لأ، ومش قارنها مع اللي فوق، هو على ال model بناءً
على ال equation اللي ان
computational جديش أنا مهتم بسرعة النظام، يعني الآن
مثلًا، بدنا نظام الآن.. محتاجين نظام سريع يحاول
يتنبأ أن المريض هذا اللي مش.. منضيق في الصدر أو
في صعوبة في التنفس، مصاب بـ Corona ولا لأ؟ أنت..
أنت.. أنت خبير.. خبير الصين أصلًا.. أنت عشان إيه
قلت Corona مباشرة، تمام؟ الآن الفكرة وين؟ أن أنا
جديش بأقدر أعمل training لـ model.. a curated
model بشكل سريع، بكون كويس إليّ، ليش؟ لأن أنا
فعليًا.. الآن أنا محتاجه، يمكن بكرا ما محتاجوش، فالآن
هذه بتفرج معايا الـ performance في مرحلة الـ
generation، الـ using في الـ prediction، أن لما أزوده
بالعينة اللي المفروض يعمل عليها prediction أو يقيم
يعملها evaluation، جديش بده وقت؟ بده ثانية،
ثنتين، ثلاث، عشر، كل ما كان أسرع يكون أحسن في الـ
real-time system، الآن في عندنا جسم بيتحرك في الجو
بسرعة 100 كيلومتر في الساعة، طيارة،
صاروخ، قذيفة، غراب، مش عارفين، في الأنظمة الدفاعية
بتفرج الآن هذا الجسم اللي بيتحرك في الـ real-time
system، تمام؟ بناءً على سرعته وحجمه،
بدهم ياخدوا قرار، اللي غالبًا ما بيبينش، بدهم ياخدوا
قرار، شو هذا؟ بيكون إفعل صفرات الإنذار ولا لأ، الإنذار
ولا لأ، إحنا
قلنا حمامة، شكله زاد مع البس، خلاص وهي طايرة
الفكرة يا جماعة الخير اللي أنا بدي أوصلك إياها هي إذا
ما كانتش مرحلة الـ prediction سريعة، تفقدت الأهمية،
تبعتها، فضل يا دكتور قبل لما راحيت على المرض، أكيد
فعلاً مش هيكون مثلًا، بدنا نتنبأ أن فيه مثلًا.. لو
مثلًا افتراض مثلًا، علشان هنا يعني محتمل يكون فيه
نسبة خطأ، فإحنا على وجه السرعة مش هيكون بدنا نتنبأ،
بدنا يعني.. طب أنت عملك بتقول أنا المرض هذا فعليًا
مش قادر أشخصه أو في عندهم صعوبة في تشخيصه فقط،
طب المريض العادي أو اللي عنده احتقان في زوره،
ابرت في حرارته واحد زي حالتي بيكون قاعد،
بيشرح وبيطلع واحد غبي بيقوله، بس طايرة، ابرِتْ فيه
حرارته،
تمام؟ بالفكرة يا جماعة، okay، أنا بدي.. بدي system
يكون سريع، عفواً بدي أصل لـ model بشكل سريع، بعض الـ
models بتاخد أيام وأشهر هي بتعمل الـ training، صح؟
بيكون هذا دقيق الشغل، صحيح، لكن أنا برضه حسب الحالة
اللي أنا بدي أشتغل عليها، نعم لأ،
للأسف data preparation، هل تحسب ضمن الـ time cost؟ لأ،
لأن هنا بنتكلم إحنا على الـ computational cost، كل
اللي أنت سويتّه قبل، مجرد تجهيز لعملية الـ mining،
أكيد كل ما زاد حجم الـ data زاد حجم الـ computation،
بالـ training والـ testing، الآن الـ data set تبعتي
مكونة من عشرة attributes، هل الـ computation تبعتها،
زي ما يكون عندي 100 attributes؟ حتماً لأ، يعني عشر،
متغيرات، زي مين؟ متغير، أكيد لأ، جديش الـ robustness أو
الموثوقية، جديش الـ system هذا بيديني accurate
result في حالة الـ noise data، الـ noise instance أو
في حالة وجود الـ missing values، الآن إحنا قبل شوية،
اتكلمت على ثلاث عناصر عشان الـ heart disease، الـ body
mass index، والـ chest pain، وتصلب الشرايين، الآن لو
عندي اثنتين منهم فقط، بيقدر الـ system يديني
prediction؟ لأ، ما تقوليش لأ، أنت ما تشكشكش، لأ، الـ
system هيديكي prediction، هيديكي prediction، بس اللي
أنا بدور عليه، هل بيقدر يديني prediction صحيح؟ إذا
بيديني prediction صحيح، معناته هذا more robust، أكثر
موثوقية، ليش؟ لأن في حالة أن أنا فقدت واحد من الـ
attributes اللي موجودة، بضل قادر أعتمد عليه عشان
يعمل prediction، تمام؟ الآن في حالة كان في عندي
noise data، نفس النظام، بالمناسبة يا حسن، إحنا عادةً
اللي بنتكلم فعليًا، هذا المثال اللي ذكرته ثلاث، عشان
بس نستوعب الشيء اللي بيصير، ونفهم فعليًا كل الـ
concept بشكل واضح، لكن فعليًا لو أنا سألتك، أبسط
اختبار ممكن يجريه الإنسان اللي له علاقة بصحته، الـ
CBC، كم factor فيه؟ 15 أعتقد أو 14، يعني بتكلم
على الأقل 14 attributes، اللي هو الـ test الـ
complete blood test، تمام؟ فبتكلم على 14 attributes
لكل عينة، الآن لو في واحدة عينة فيها مشكلة في الـ
noise أو value معينة، لأ لأ، مش ضروري، فالآن لو جديش
الآن الطبيب الحاذق ممكن بيقدر يقارن شغلات مع بعضها،
ويقول لك لأ، في مشكلة، يعني واضح من الجهاز أن في مشكلة، هذه
الفكرة وين؟ أن الـ system لو غاب في عندي value أو
تشوشت value من الأربع عشر، يكون عنده القدرة على
التنبؤ الصحيح، أي واحدة من الأربع عشر هذه ما بتعنّاش
بس، في اللحظة اللي بيجيني الـ attribute، عفواً بيجيني
الـ rows، الـ raw with missing value أو with noisy
data، الأصل يعمل prediction، هيعمل prediction في كل
الأحوال، كل مكان بيديني accurate الـ prediction في
الـ such case هذه، معناته هذا مرة أقدر أثق فيه
أكثر، تمام، الـ scalability، الـ scalability طبعًا دائمًا
إحنا مفهوم الـ scalability، بنتكلم على الـ large
amount of data، فعليًا هل الـ algorithm هذا تبعه ممكن
من السهل أن يتعامل معه مع large data، الـ data set
اللي عندي مليون instances، هل الـ algorithm قادر على
تحليل مليون instances مع عشر.. مع عشر attributes،
أو مع مئة attributes، فهذا أنا بدي أسأله، كل ما كان
الـ algorithm اللي هستخدمه more scalable، معناته
بكون أفضل، interpretability، تفسير والـ
understanding، وفهم محتوى أو ما وراء الـ Model أو
الـ Algorithm اللي عندي، The level of understanding
and insight، والمفهوم أو التوضيح أو المعنى الخفي من
Provided by the classifier، إحنا قبل شوية لما شفنا
الـ if then، كان بسهولة أن أفهم عليه، بدور إيش الـ
factors الأساسية اللي كانت موجودة؟ لو هذا الـ if
then ما كانتش موجودة، بقدر أستوعب ليش هو جداني yes وجداني no؟ أكيد لأ، لكن لما بيكون الـ algorithm قدامي
قادر أو بقدر أو قادر على تفسيره، بكون أفضل، لكن
الصحيح الموضوع برضه تفسيره هذا subjective للإنسان
أو للشخص اللي بيشتغل عليه، لما أنا كتبنا، كتبنا
المعادلة الرياضية، Y تساوي M1 في A1 زائد M2 في A2
زائد B،
إيش رتبة.. إيش درجة المعادلة هي يا شباب؟ إيش رتبة
المعادلة هي يا شباب؟ معادلة خطية، لأن الدرجة تقاس بأعلى
أُس، الدرجة أو رتبة المعادلة تقاس بأعلى أُس،
فالمعادلة هي خطية، بس فعليًا هذه multiple variable،
متغيرات، اثنين مع الـ Y، يعني بين قوسين الـ 3D equation، مصبوط؟ هي.. هي الفكرة، الآن مش كل الناس
قادرة على تفسير.. هذه، أعرضها على واحد خبير رياضيات
مباشرة، بيقول لك هذه بتعني كذا، وواحد كذا، بيجي و
بيقول لك أن هذا plane مائل، plane، مسطح مائل، الميل
تبعه باتجاه X، ومثلًا X و Y كذا، X و Z كذا، هي الأبعاد
تبعته، وهذه ارتفاعه أو التقاطع تبعته مع الـ Y axis،
لكن أنا مش عارفني بالكلام هذا، فالموضوع الـ
interpretability، أو موضوع تفسير الـ algorithm، و
فهمه بيختلف من شخص لشخص، من
الـ algorithms اللي هنتعرف عليها، K-nearest
neighbor algorithm، وهذا البرنامج يعتمد على
البرنامج، الوثيقة الوثيقة الوثيقة الوثيقة الوثيقة
الوثيقة الوثيقة الوثيقة الوثيقة الوثيقة الوثيقة،
الوثيقة الوثيقة الوثيقة الوثيقة الوثيقة،
وفي عند الـ rule based induction، وفي عند الـ
support vector machine، وفي عند الـ logistic
regression، كل هذه الـ algorithms تستخدم في الـ
classification، وفي عند الـ back propagation، الـ
neural network، في الفصل هذا، في الشابتر هذا إن شاء
الله تعالى، هشرح لك الـ k-nearest neighbor، والـ naive
bayes، والـ decision tree، والـ back propagation، والـ
propagation neural network، كـ classifiers خلال الفصل
هذا، أنا محاضرة اليوم هي كاد أن تنتهي.