باسم الله و الحمد لله و الصلاة والسلام علي رسول
الله هذا التسجيل الأخير ان شاء الله في chapter ال
clustering عفوا قبل الأخير بيضللنا في تسجيل ان شاء
الله هيكون عملي باعتماد ال python الصحيح فشوف في
شغل ال python بعض الإبداعات منكم و بعضكم .. حلو
حلو حلو طبعك ماستور
البداية الشبتر ان ال cluster هي عبارة عن عملية
تقسيم ال instances بناء على تشابه او similarities
ما بينهم لمجموعات في عند partition ال cluster و ال
partition ال cluster انه مايكونش في عنده overlap
clusters و في عنده hierarchical cluster انه انا
فعليا مقدر اشوف كل cluster بينتمي لأي cluster و
طبعا هان بتحكم في عدد ال clusters اللي انا بدي
اياها كل clusterبساطة، اليوم ان شاء الله نتكلم عن
جزئية evaluation طبعاً لما نتكلم عن evaluation
كتقييم ال ..
نتكلم عن التقييم، هل التقييم وارد في ال
clustering؟ التقييم كتقييم في ال clustering إذا ال
data 6 بقى unlabeled ولا عمره بيكون صحلأن انا
فعليا لازم اتدخل ل human عفوا المقصود ان التقييم
مستحيل يكون صحيح او حاليا بدي اقول انه يكاد يكونمن
المستحيل تطبيق التقييم إلا من خلال expert قادر
فعليا على دراسة كل instance و فعليا أنها تنتمي ل
cluster أو متشابه مع العناصر اللي موجودة عندها لكن
إحنا هلأ لما نتكلم عن ال clusteringأنا لدي
algorithm و data set و طبقت على ال data set هل في
مجال أعمل evaluation لل algorithm أو للناتج اللي
موجود؟ أه في مجال لكن في حالة واحدة فقط إذا انا
اعتمدت ان في عندي labelled data set طب احنا قلنا
من البداية ان
ال cluster بتشتغل على ال test set يعني ال label مش
موجود صحيح الفكرة وين ان انا بدي افصل ال data set
تبعتيمجموعة الـ attributes لحال و ال target label
لحالي وبعد هيك اعمل لهادي clustering بدي اعمل هنا
clustering لل data set اللي موجودة عندي هنا وبناء
على ال clusters انا عارف ان كل instance بتتبع اي
label فبصير انا بقى اقارن ال labelاللي عندي مع ال
clusters اللي هو اللي عندي هان وبناءً عن هيكت بحصل
على تقييم وبالتالي لما احنا بنتكلم على ال ال ال ال
ال ال ال ال ال ال ال ال ال ال ال ال ال ال ال ال ال
ال ال ال ال
لأن النتائج اللي موجودة عندي ماحدش بيقول عنها صح
أو خطأ يعني انا استخدمت two different algorithms
وقلتلهم والله جسمولي ال data set كpartitional ل
three clusters طلعولي three clustersمش ضروري مش
ضروري العناصر اللي في ال cluster الأول هي نفسها
اللي في العناصر ال cluster التاني ناتج ال
algorithm وبالتالي مقارنة ال output شبه مستحيلةإذا
كنت أقول أن الـ Algorithm أعطاني نفس النتيجة أو
نفس الـ الـ فايدة من التاني، فلا تتميز التاني عنه
تمام، إلا فعليًا لو الـ Data كانت فعليًا الـ Data
Discriminant الـ Instances ميالة لـ Different Tree
Classes وكل واحدة، كل Instance تنتمي ل Class، يعني
في عندي Discriminant Attribute وجادرياش توصفليهم
أو توديليهم على الـ Certain Class أو الـ Target
Cluster عفواً بشكل كويس، لكن لما أنا فعليًابطبق
ممكن باعتمادي على ال training set ال training set
إذا أنا طبقت ال cluster algorithm على ال training
set تلاحظين معايا يا جماعة الخير؟ لما أنا بدي أعمل
evaluation .. الآن فعليا .. فعليا ليه clustering
unsupervised learning؟ يعني أنا بتجاهل ال label أو
ال label مش موجود في ال data set هذه واحدة لما أنا
بدي أعمله evaluation لل algorithm تمام؟بقدر اعمل
evaluation في حالة واحدة فقط اذا انا قدرت اطبقه
على training set شو training set يعني في عندي
label طب هل الكلام هذا موجود؟ اه موجود بصير كل
label كل class بمثابة cluster كل class بمثابة
cluster و بروح باخف ال class و بجسم ال data set
بدون ال cluster زي ما واجهتكوا في ال slide السابقة
زي ما رسلناها يعني انا الآنهي ال data set تبعي
كمان مرة فصلت ال cluster
أو فصلت ال data set ال attribute وال label أو ال
class جسم
ال data set صار عندى الآن هي ال label وهي ال
attribute الآن باجب اطبق ال clustering handطبق الـ
Clustering على الـ Attributes اللي موجودة عندها
على الـ Instances اللي موجودة تمام، الآن فعلياً كل
Instance بتبقى Class وفي عندى مجموعة Instances في
نفس ال class بين جسين أنه فعلياً ال data already
منجسمة فإذا أنا قدرت أربط ما بين ال true cluster
اللي هي ال label و ال predicted cluster اللي موجود
عندهابقدر أنشئ شغل اسمها الـ Contingency Matrix
ومن الـ Contingency Matrix ممكن أن اتكلم على شغل
اول metric هسميها الـ Durityتعالى نتكلم عن الـ
Contingency Matrix ايش الـ Contingency Matrix
بتقول ان لدي ثلاثة .. طبعا لاحظوا يا جماعة الخير
في موقزي انا بدي اختبر Clustering Algorithm في
عندي label data set ال label data set فيها عدد
classes معين N لما بدي استخدم ال Clustering
Algorithm بدي اقول جسمليها لـ N من ال cluster لأن
كل cluster بدي ميثل Classفأنا بفترض أنه عندي data
set مكوّنة من three classes label data set مكوّنة
من three classes بتسميهم T1 وT2 وT3 من true true
cluster أو true segment أو true partition سميها زي
ما بدك true label سميها زي ما بدكواوC1 وC2 وC3 هما
الـ clusters اللي انشغلياهم من ال algorithm اللي
موجود عندها ايش راح اجلب؟ ايش بفهم ال contingency
matrix؟ انه في C1 C1 خمسة وعشرين element بينتمي ل
T2 وخمسة
element بينتمي ل T3 وخمس عناصر بينتمي ل T3يعني
عندي 25 عنصر من T ناتج
ال clustering C1 بيحتوي على 30 عنصر 25 منهم حقيقة
من ال class التاني و 5 من ال class التالت و لا
واحد من ال class الأولT2 أو cluster C2 بيحتوي على
35 عنصر 15 من ال class الأول و 20 من ال class
التالت cluster تلاتة بيحتوي على عشر عناصر فقط كلهم
كلهم بيتبعوا T1 الآن هذا الكلام إذا انا افهمته
معناته أنا مش ضروري الـ Clustering algorithm تبعي
يكون صح مائة في المائة ممتاز طب متى بيكون صح مائة
في المائة إذا والله أنا إجيت قولت هيك مثلًا
حصرت على صورة واحدة من الصور التالية فانا هتكلم عن
ال matrix لو أنا إجيت قولت هنا والله عندي
هنا تلاتين
وعندي هنا 20 وعندي هنا 50 وانا
C1 C2
وC3 والباقي أصفر طبعا هنا T1 T2 T3 وانا اتعمدت احط
القيم نفس الكيفيةلحظوا معايا إنه فعليا كل cluster
completely pure صافي مافيش فيه أي .. يعني كل
cluster مثل واحدة من ال classes اللي موجودة عندى
كل cluster مثل واحدة فقط من ال classes اللي موجودة
عندى وهنا بتكلم إنه فعليا كل cluster نقي تماما
بيحتوي عناصر من نفس ال class فقط عشان هي كان
بنتكلم احنا على ال purity نقاوة أو نقاء درجة
النقاءطيب، بما أن الحالة دي هي الـ optimal case أو
الـ ideal case واللي أنا فعلا مش هحصل عليها، أنا
هحصل على شغل مشابه زي هيك من خلال الـ contingency
matrix كيف أحسب الـ purity؟ الـ purity هي تساوي
عبارة عن مجموع ال maximum في كل صفر ال maximum عدد
maximum للـ Ti تنتمي لCعلى الان ال maximum خمسة و
عشرين ال maximum عشرين ال maximum عشرة يعني خمسة و
عشرين زائد عشرين زائد عشرةعندما اتكلم عن خمسة و
خمسين على كل الان خمسة و خمسين و في عندى اضيفهم
هنا على خمسة و سبعين بتكلم على ال purity الان ان
عندي هان تلاتين خمسة و تلاتين هي خمسة و ستين خمسة
و سبعين معناته عندى انا هان خمسةاللي عندي هنا
نتكلم .. احنا قولنا ال maximum خمسة و أربعين ..
خمسة و خمسين .. خمسة و خمسين على خمسة و سبعين هذه
ال purity تبع ال cluster أو تبع ال contingency
matrix اللي موجودة عندي
طيب .. تعالى نشوف المثال البسيط اللي عندي هاد
أنا مش بقول، بقول إن أنا الـPurity بقدر أحسبها إذا
كانت بتعامل مع test set بتحتوي على target class
تخيل، عشان يدمج التعريف هذا الـdefinition هذا عشان
يدمج ما بين الشغلتين بين إنه فعليا الـclustering
تطبق على test set وأنا مقدرش أروح أقدر أعمل
evaluation إلا غير لو كان ال label موجودفجالي ال
test set بتحتوي على target التي بنجوزني training
set و لا شو رأيكوا training
set بيبقى الان بقول افترض ان انا في عندى test set
مكونة من 24 element بتنتمي ل three different
classes ال O او ال circleTriangle وSquare ومجسم
العناصر بالتساوي 8888 بعد ما طبقت ال clustering
تبعت ال cluster C1 فيها العناصر التالية ال cluster
C2 و ال cluster C3 طبعا هنا في مصطلح جديد اضيفه
نقاء كل cluster نقاء كل cluster بشكل مستقل اذا
سألتك ال cluster الأول بمثل ايش؟معظمكم حيقولوا و
الله هذا بيمثل المثلثات ال triangles و اللي تحت
التاني هيمثل المربعات الحمراء و هذه هيمثل الدوائر
الخضراء، مظبوط؟ فبالتالي أنا بقدر أحسب ال purity
تبع كل cluster ال cluster الأول بيحتوي على 9 عناصر
و ال maximum كانت لمين؟ للمثلثات، معناته 6 على 9
لكن مش هي ال target تبعتي، أنا مابهمنيش ال purity
تبع كل class أنا اللي بيهمني ال purity لكل output
مرة واحدةللـ algorithm ال element 24 element هروح
أدور هانالـ maximum هنا 6 الـ maximum هنا 5 الـ
maximum هنا 5 6 زائد 5 زايد 5 على 24 16 على 24
درجة النقاء اللي بيعطينا إياها ال cluster هذا بشكل
عام 76.67% و هيك بتتم حسبة ال purity تبعتنا هنا
طبعا كمان مرة برجع بقول أنا بقدر أتكلم بشكل مبدئي
ال majority تبع كل cluster كذاغالبية تبعت كل
cluster كده لكن ال purity تبعتها هتكون هذه مش
واضحة فعليا لو قلع عندي cluster مادة نسوشي و
بينتمي مثلا فقط ل two clusters ل two classes يعني
من نوعين مختلفين هقول ال purity لمين فبتصير ال
purity هذه غير واضحة أو بتصير مفهومها غير دقيق أنا
اللي بهمني ال purity تبعت ال cluster بشكل عامطبعاً
أنا فيه متريكز تانية ممكن تستخدم نفس المبدأ الـ
Ground Truth إن أنا فعلياً لازم يكون فيه training
data set وهذا مفهوم Ground Truth يعني الحقيقة
الأمر الواقع، إيش الأمر الواقع؟ الأمر الواقع ال
class اللي موجود عندها، اللي هي الأساس، تمام؟ وهذا
فعلياً أنا لما بطبق ال data setأو Clustering على
الـ Training Set اللي موجودة هنا في عندي الـ
Adjusted Random Index وفي عندي Normalized Mutual
Information وهذه بتديني قيم من صفر لواحد وكل ما
كانت القيمةأقرب للواحد معينته الـ purity تبعتي أو
الـ scale تبعي ال algorithm تبعتي أفضل الصحيح أنا
مش هاطلب منكوا العمليات الحسابية اللي موجودة عند
هان نفس الكلام هي في عند contingency matrix عند ال
actual class
عن طريق الـ Predicted Cluster في نفس الحسبة لكن
هنا بتكلم عن جداش الـ elements من كل عنصر تماما
الحسبة مش مطلوبة يا جماعة الخير لكن هوريكم إياها
إن شاء الله في العمل وبهيك نهينا شبترنا يعني أنا
الآن لما أتكلم على ال evaluation ممكن أتكلم على
three different metrics3 مترات مختلفة لـ Purity
وهي مطموعة منكوا حسابيتها لأنها سهلة ال maximum ال
summation للماكسيممم في كل cluster على عدد ال
elements كلها في ال data set وهي بتمثل ال purity
في عندي مجرد مصطلحين أخرين أخرين بدي أسمعهم بدي
أحرفهم اللي هو adjusted rank index وnormalize
mutual information هي عبارة عن rank بحسب ال
similarity between any two clustersحسبة مش مطلوبة
لكن فعلياً هي عبارة عن evaluation metric انا ممكن
او جد استخدمها مع ال clustering اللي يعطيكوا
العافية و بتمنالكوا التوفيق السلام عليكم ورحمة
الله