بسم الله الرحمن الرحيم الصلاة والسلام على رسول
الله أهلا وسهلا بكم أخواني الطلاب و أخواتي
الطالبات سنستكمل اليوم في هذا التسجيل موضوع ال
classification model evaluation بعد أن اتعرفت على
هي عبارة عن تحديد الـ Membership لجروب أو لكتجوري
معروفة مسبقا و اتعرفت على مجموعة من ال classifiers
بدءا من ال kennerist neighbor واعتماده و شفنا انه
بيعتمد على الحساب على ال similarity distance
وحكينا انه بيعتمد عليها او بقارن او باستخدام
different distances زي ال including distance او ال
Manhattan distanceوتكلمنا على الـ Naive bias كـ
classifier وشوفنا كيف ال probability او كيف تم
حسبة ال probability او ال conditional probability
وانتقلنا بعد هي كان لموضوع ال decision tree وشوفنا
كيف بنينا ال decision tree مع بعض واخر classifier
كان ل neural network او ال multilinear perceptron
او ال classifier كان neural network الآن بعد ما
أنا بنيتالموديل هذا و اصبح عملية ال classification
مش لازم انا اعرف جدش عملية ال classification تبعتي
صح او كده فبتيجي عملية ال evaluation هان فعليا
عشان تقولي انا والله بدي اقيم العناصر اللي موجودة
عندى يعنى عفو مش العناصر بدي اقيم اداء ال
classifier اللي موجود عندى يعنى فلما احنا بنتكلم
على evaluation يعني ان انا بتتكلم علىتقييم فعلي
للـ classifier اللي موجود عندى و هذا هم فحوة
محاضرتنا لليوم أو في التسجيل هذا ان شاء الله تعالى
طبعا بحب اذكر فقط بداية ان اذكر بعض الشغلات
الأساسية قلنا من ال basic concept الخاص بال
classifier في عند مصطلح ال accuracy و قلنا ال
accuracy هي عبارة على قدرة ال classifier التنبؤ
بشكل صحيح و عادة بتمثل النسبة عدد ال prediction
الصحيح على كل predictions اللي سواها على كل عمليات
التنبؤ اللي سواها ال classifier اللي موجودة عندها
وبالتالي سنقول إن الـ Accuracy بتشير لعملية القدرة
للـ classifier إنه يعمل correct prediction of the
class label for unseen data وتكلمنا عن الـ Speed
قلنا إنها عبارة عن computational cost الخاصة بالـ
classifier لما تكلمنا عن computational cost
أنا بهمني الوقت اللي بده يستغرقه ال classifier
سواء في عملية ال training أو حتى في عملية ال
classification نفسها أو ال prediction نفسها عفوا و
اتكلمنا كذلك على ال robustness و قولنا ال
robustness هي عبارة عن القدرة القدرة ال classifier
على انه يعمل correct predictionلما يكون فيه عندي
أنا noisy data لما يكون فيه عندي noisy data ال بعد
هي تكلمنا على ال scalability وقلنا ال scalability
تشير إلى قدرة ال classifier على القدرة على ان انا
فعليا ابني classifier بشكل مجدي في حالة وجود
البياناتالضخمة اللي موجودة عندي و Interpretability
أو قدرة على تفسير أو على فهم العناصر أو فهم
الإيهاءات الصادرة أو المعلومات الصادرة عن ال
classifier اللي موجود و طبعا زي ما قولنا عملية
تفسيرها دايما عملية subjective حسب الأشخاص و حسب
ال difficulties اللي أنا بدي أقيمهافعليا عملية ال
evaluation لل classifiers أو ال classification
models عملية نوعا ما فيها نوع من الخداع
لكنها فعلا عملية ممكن تكون نوعا ما غير واضحة أو
فيها بعض الخبايا لازم الواحد ينتبه لها عشان هيك
بنقول نسميها tricky أو خداعةطبعاً لما نتكلم عن
evaluation أول evaluation أو أول metric ممكن يخطر
في بالي هي عبارة عن ال accuracy أول
metric ممكن يخطر في بالي في التقييم أو في ال
evaluation هي عبارة عن ال accuracy لكنها مش هي
الوحيدة طبعاً هنا لما نتكلم على ال accuracy معناته
أنا استخدم باعتمادي على test setأنا الـ training
set استخدمته في لحظة بناء
الموديل و ال test set جا دورها عشان أهي عبارة عن
unlabeled set و أنا بدي أعملها prediction وبناء
عليك بقيم ال accuracy في سؤال مهم جدا يا جماعة
الخيار هل ال test setهي عبارة عن labelled data أو
labelled set أو unlabelled set كمان مرة السؤال
بأطرحه الآن بقول هل ال test set هي عبارة عن
labelled set أو unlabelled set بين جثيم هل لازم
يكون لها label ولا مش لازم يكون لها label المفروض
الان تعمل pause للـ recording هذا وتحاول تفكر
بالجواب احنا بتذكر ان طرحنا خلال المحاضرات السابقة
الجواب الصحيح انه لازم تكون labelled لأن لو ماكانش
فيه label مش هقدر اعمل evaluation مش هقدر اعرف
جديش ال prediction الصحيح من ال prediction الخطأ
وبالتالي ال test set must be labelled
طبعا عندي الـ methods اللي انا ممكن استخدمها مع ال
classifier مع ال classification هان هي عبارة عن
مجموعة من ال .. ال method أو في عندي two methods
أساسيات أنا بستخدمهم عشان أتنبأ أو أقدر أعمل تقدير
لل accuracy الخاصة بال classifier في عندها ال
holdout method و ال holdout method بتعتمد على ال
random samplingو طبعا هنا فعليا انا بقى زي ما قلنا
سابقا و زي ما كان في ال assignment السابق انا
فعليا ال data set اللي موجودة عندها بغض النظر عن
حجمها جسمتها ل two partitions سبعين على سبيل
المثال في المية لل training و تلاتين في الميةكانت
للـ Testing هذه الميثود بسميها holdout method و
بجسم ال data set تبعتي ل training and test set و
بعدين الطريقة التانية اللي احنا بسميها ال cross
validation و ال cross validation هي عبارة عن مثل
كذلك موجودة غالبا معظم استخدامها لما بتكون ال data
set تبعتي حجمها قليل هروح بتفاصيلهم بشكل كويسطبعاً
لما أتكلم على cross validation طريقة ممتازة جداً
بحيث أنه أنا أعرض ال data set بالكامل في ال
training على أجزاء مختلفة و كذلك باختبر كل ال data
set و بطلع بالمتوسط اللي موجود لما أنا بتكلم على
cross validation بتكلم إن هي عبارة عن statistical
method تستخدممن أجل الـ evaluation للـ
generalization الـ generalization جماعة الخير
المقصود فيها هان ان انا بأتكلم قاعد على او بتكلم
على قدرة النظام على التنبؤ الصحيح هو اتعلم بناء
على ال training data الان انا بدأ اشوف فعليا كيف
أداء النظام او ده ال model اللي موجود عندي هان
فكلمة الـ model بيقدر يتعامل أو يكون أداء تبعه
بكون كويس مع unseen data معناته هو more general
more general يعني ما انبناش فقط من أو مكان مش
specific لل training data اللي استخدمناها بل
بالعكس هو شغال على general data set على أي data
set هيشتغلوا بكفاءة كويسة طبعا ال performance data
are more stable
using split طبعاً
اللي متكلم عن الـ cross validation نتكلم إنه ال
performance هذا أو خلنا نقول ال estimation تبعت ال
accuracy أو ال performance تبعت ال ال model هان
هتكون أكثر موثوقية أو أكثر ثباتاً ما إنه لو أنا
فعاليا قسمت ال data set ل training أو testing لأن
موضوع ال randomness بيعمل فعلا مشكلةحقيقية فالـ
cross validation بدل ما انا جسم ال data set
لمجمعتين فعليا انا بجسم ال data بشكل متكرر
repeatedly شو يعني؟
مفهومها أنه انا فعلياً بروح بأجسم افترض ان هذه
الخط ال data كل واحد من ال rows هاي بمثل ال data
set كاملة الفكرة فيها انه انا اجسمها لمجموعة من ال
fold وال fold هذه واحدة منهم تستخدم لل training
والباقي يستخدم لعفوا واحدة للتست والباقي يستخدم ال
lettering يعني تخيل لو انا قلت هي ال data set اللي
موجودة عندي سامحوني انا مش جادر اعمل control كتير
على ال mouse او على ال pen اللي موجود معاياها
جسمتها لأربع أجزاء فبشكل متكرر باجي بقول والله
الجزء هذا الآن هو المخصص لل training والتلاتة هدوة
عفوا لل test والتلاتة هدوة المخصصين لمين لموضوع ال
training في الدورة التانية بحدد هذا لل test
والباقي هذا كله ل training ولاحظوا في كل مرة انا
باعتمد على القيمة اللي بتطلع من موضوع ال testing
هنا ال accuracy ال accuracyالـ Accuracy وليس
بالضرورة في كل مرة تديني نفس القيمة بالعكس تديني
قيم مختلفة في النهاية أحصل على أو أحاول أخد الـ
Average الخاصة بالـ Accuracy اللي موجودة هيك عشان
هيك بنقول انه فعليا ان ال cross validation more
stable لكن فعليا لو أنا كانت عند ال data ستة باعت
كبيرةداتا 6 بقعت كبيرة كبيرة زي ما بتكلم 100 ألف
record أو أو 50 ألف record و أطلع و روحت والله أنا
أخدت منها 30% و عارف انه في مستخدم ال stratified
sampling عشان اضمن ان في عندي balance في ال data
اللي موجودة عندى ال .. ما بين ال different classes
او different labels بتديني نتيجة برضه موطوقة و
ممكن تكون أسرع من ال cross validation تمامبغض
النظر الطريقة اللي اتبعتها كانت الـ K-fold cross
-validation طبعا الـ K نرمز لها هان اللي هي عدد ال
folds اللي انت بدك تجسم فيها ده ك set يعني انا لما
اقولك مثلا بالمثال اللي موجود عندنا على ال slide
فعليا انا خمسةمعناته في كل part يتمثل عشرين في
المية عشرين في المية testing و تمانين في المية
training لاحظوا ان انا زي مرحلة ال training ممكن
اقوم بجسمها لعشرة عشرة في المية testing وتستعين في
المية training في حالتي انا حاولت ارسمها اربعة
عشرين في المية testing وخمسة وسبعين في المية
training فحسب ال data او حسب تقسيمك لل data اللي
موجود عندك تماممن الشغلات المهمة جدا اللى لازم
استوعبها انا صح اللى هي ال classification في ال
classification model ال confusion matrix طبعا عشان
تبسيط المفهوم هشتغل فقط على two classes على binary
classification class A و class B أو class 1 C1 و
C2 اللى هما ممكن يكونوا positive و negative يعني
لو انا افترض ان class 1 هذا positiveوهذا negative
positive و negative الان من اسمها confusion matrix
مصفوفة
اللخمة او مصفوفة التشتوت او سميها زي ما بدك انا
باستخدمها لانه فعليا تديني بشكل واضحوين ال data
set تباعتي راحت الفكرة أنه الآن لو انا قلت ان
الموزع طبعا هذه التوزيعة بنتبتها دائما عشان ما
نعملش مشكلة عند البعض لكن حتى لو اختلفت المصفوفة
كتير انا بعمل لها transpose يعني ممكن اعمل
transpose في اماكن تانية او في اماكن تقراها
بالtranspose وبالتالي اعمل ال prediction هناوالـ
actual classes موجودة هنا لكن انا باعتمد على ان
الـ actual row موجودة في ال rows و ال predicted
موجودة في ال columns تمام معناته انا في عندى class
1 و class 2 positive و negative وهدول ال data set
اللي موجودة عندى هنامحدش قال لي مطلقا تعالى نجي
على الرسمة اللي بس اللي هان محدش قاللي مطلقا ان ال
prediction تبعتي لازم تكون صحيحة 100% يعني لو كانت
ال data tests تبعتي هي مقسمة بين الأخضر والأحمر
وال predictive model الأخضر المفروض positive
والأحمر negativeالله يبعد عنكم الشرك والأحباب كل
يوم احنا بنتكلم على كورونا فيروس موجود في العالم و
الكل بتجري فحوصات positive معناته هذا بيدخل في
المستشفى ويبدو رعاية صحية negative بيبقى في الحجر
الصحي لحد ما تنتهي ال 14 يوم و نتأكد ان الفيروس مش
موجود مش هذا اللي بيصير الله يعافيكوا و أهليكوا
وكل أحبابكوا يا رب العالمينالان الـ system
positive أو negative فالـ system هو اللي بده يعمل
prediction بناءً على ال data الان هو جلب .. لاحظوا
هو ب6 عينات هنا ال data set كلها عملها
classification انتوا ملاحظين انه في عندي أنا هنا
سبعة وفي عندي تمانية يعني هدول 15 element سبعة
positive وتمانية negative فلما عمل ال prediction
عمل أربعةأو قال لي انه في عندك sub المجموع ال
positive قال لي في عندي ست حالات لكن واضح ان هو
أخطأ في حالتين أخطأ في الحمر هدول صح تمام و ال
negative زيها طيب نيشي الآن في ال actual انا فعليا
عندي واحدة اتين تلاتة اربع خمسة ستة يعني الصف هذا
على امتدادهبتكون مجموعه عبارة عن مجموع العناصر أو
عدد العناصر الـ positive cases أو كل الـ rows اللي
بتنتمي ل class 1 true positive هي عبارة عن الـ
rows اللي هي فعليا بتنتميلـ Class 1 و الـ system
عملها prediction as class 1 يعني صنفها بشكل صحيح
فبقولها true يعني تصنيفها كان صحيح و هي فعليا
positive و طبعا ما تنساش او ما تنسيش ان انا بتكلم
على binary classification اسهل الموضوع تمام ماهو
ال false negative ال false negative هي فعليا
elements بتنتمي ل class 1 و هي positive لكن
صنفليها بالخطأأو أخطأ في تصنيفها و حط ليها إيش على
إنها negative وبالتالي أصبحت عندي هنا false
negative مجموح هدول العنصرين ال true positive و ال
false negative ال true positive و ال false
negative هو بتديني عدد عناصر ال class الأول تمام؟
طيب بالنسبة لل class التاني هو عملها prediction
على إنها class one يعني هو قال إنها positive لكنه
ال prediction هذا خطأليش؟ لأن هي في الحقيقة تنتمي
ل class 2 اللي هو الـ negative فهي فعليا negative
ولكن عملها prediction على إنها positive فهي false
positive تمام؟ وتبقى عندها ال true negative هي
class 2 صنفها على class 2 صحيح؟ وبالتالي هي عبارة
عن true negative يعني فعليا لو أنا بدى أفكر
بالجدول أو ب confusion matrix لما أنا بدى أنشئها
بشكل صحيحأي الجدول هو
فيه
مساحة بال powerpoint ولا مافيش eraser
تمام
رجعها لاشي
الان احنا متفقين هنا ان انا فعليا هنا عند الـ
actual والأعمدة الـ predicted
C2 C1 و C2 حسب الرسمة اللي موجودة عندها حاجة
اعدنالان كام واحدة فعليا بينتمي ل class one وعملها
prediction في ال class one صحيح في ال positive
واحدة اتنين تلاتة اربعة تمام
طيب و هدول هذه
وهذههم أصلا نيجاتيف class 2 لكن اعملهم prediction
هان تمام نجي للحالة النيجاتيف هي بتنتمي ل class 1
لكن عملها prediction في class 2 اللي هم الخضر اللي
هان اتنين لو
عديت الخضر اتنين واربعة ستة هي المجموع و هان لازم
يكون هنا في عندياشعشان يكتمل عدد 2.68 فهذه هي
فعليا ال confusion matrix اللي انا هشغل عليها تمام
الآن ال accuracy كون ان انا حسبت ال confusion
matrix اتفقنا ان ال accuracy هي عبارة عن ال ratio
عدد نسبة ال test table اللي صنفها بشكل صحيح مين هم
ال true positiveوالـ true negative و لا لأ تمام
معناته ال true positive صحيحة و ال true negative
صحيحة هدولة صحيحات فبجمع هذه و هذه على كل عناصر
المصفوفة اللي موجودة عندي بكون حصلت على ال
accuracy على كل predict على ال cardinality تبعت ال
test set اللي انا باتكلم عليها واضحة كمان مرة ال
accuracy هي عبارة عن نسبةالـ Rows أو الـ Tables
اللي في ال test set اللي نجح ال classifier فيه
تصنيفها على حجم ال test set اللي موجودة عندى تمام
بالمثال السابق لو انا بدى ارجع هان ال prediction
تبعتي عبارة عن ال هان عفوا اربع
زائد6 على 15 لأن كل ال data 6 بعد 15 element
عديناها قبل شوية يعني بين جثين 12 على 15 لو أنا
بتتكلم على 3 بتتكلم على 4 على 5 معناته أنا بتتكلم
جاعد حدود ال accuracy تبعتي 80%
تمام طبعا ال accuracy عكسة في عند ال error rate
طبعا ممكن في عند مصطلح تاني ممكن استخدمه مع ال
accuracy اللي هو ايش ال recognition rate وطبعا
برضه من المصطلحات المستخدمة accuracy او
recognition rate نفس المعنى في عند ال error rate
ال error rate طبعا اعلى نسبة اللي هي واحد مصبوط
يعني احنا قبل شوية كانت عندى 80% 5 على 4 يعني 8 من
10 ال error rate تساوي واحد ناقص8 من 10 وتساوي
point اتنين من عشرة او بين جثين اللي هي عشرين فيلم
يعني هذا مقدار ال error rate او بين جثين ال error
rate زي ما احنا شايفين هنا هي عبارة عن ال false
positive و ال false negative
له فعليا اللي أخطأ فيه تصنيفهم اللي أخطأ فيه
تصنيفهم طبعا جامعة الخيار هنا في شغل مهم جدا طب
هذا يا دكتور في حالتي ال binary classification لو
حد اتقرح على أي سؤال و قال يا دكتور هذا في حالة ال
binary classification طب شوف حالة ال multiple
class يعني لو كانت المصفوفة تبعتي ال confusion
matrix تبعتي تلاتة في تلاتة ايش
ممكن نعملخلّينا نعتمد نفس التوزيع السابقة الـ
actual في الأعمدة الـ actual في الصفوف و الـ
predicted في الأعمدة معناته هذه هتكون true
positive أو هذه false
negativeفالس
بوزيتف لكن حطيلي اياهم false negative يعني هم جالس
.. هو تفسر .. يعني بفهم هيكل يعني c2 و c3 not
positive يعني negative فاخدلي اياهم هان كمان في ال
class التاني هتكون هذه true negative و هذه false
positive false positive ل c1 عفوا عفوا هي c2 و هي
c3وهنا ستكون فالس نيجاتيف فالس
نيجاتيف فالس نيجاتيف فالس نيجاتيف فالس نيجاتيف
فالس نيجاتيف فالس نيجاتيف فالس نيجاتيف فالس
نيجاتيف فالس نيجاتيف فالس نيجاتيف فالس نيجاتيف
فالس نيجاتيف فالس نيجاتيف فالس نيجاتيف فالس
نيجاتيف فالس نيجاتيف فالهذا الكلام الـ Accuracy
ممتازة في حالة ان العناصر او ال class is balanced
يعني بنجوسين سبعة و تمانية جرب من بعض خمسين و
خمسين تلاتين تلاتين تلاتين او خمسين خمسين خمسين في
حالة ال IRIS data setالـ Balance بين ال classes
موجودة لكن فعلياً لما انا بتكلم على ال diseases أو
في اللي بتكلم على ال fraud detection عمليات النصب
في وضعات الاهتمام ال classes in balance شو يعني in
balance انه عدد ال elements في الكلة و عدد ال rows
مع كل class غير متساوية طبعا أجيب المثال أوضح الله
يعافيكم كم مرة وأهليكم جميعا لأن كم واحد بنعمله
فحص كورونا حول العالممئات الألف عشرات الألف بلاش
مئات الألف كام واحد بتثبت معاه الحالة أقل كتير
وبالتالي عدد ال negative أكبر كتير من عدد ال
positive ممتاز طب لو أنا سألت سؤال مين أختار؟ واحد
ماعهوش فيروس وقال لل system لأ ان هذا عنده فيروس
كورونا ولا واحد عنده فيروس كورونا وال systemقال له
إنه ما عندهوش شو رايكوا؟ يعني نسبة الخطأ مع ال
positive ولا الخطأ مع ال negative هي الأخطر
بالنسبة لنا كلامك صح أو كلامك صح الآن لأنه احنا
فعليا لما أخطأ ال system وقال له إنه هذا negative
false negative كانت مصيبة بالنسبة لي لأن هذا
الإنسان سيخلق
الناس وبالتالي المرض سينتشر لأنه مش معنى ونهيك عن
الأضرار الصحية اللي حدث معاه لكن لو واحد negative
ماعندوش المرض و ال system قال إنه عنده المرض إيش
هناخده؟ هناخده نحطه في ال health care أو في الحجر
الحجر الصحي و بعدين ندي عناية صحية حسب حالتهفي ضرر
في الموضوع حتما مافيش ضرر وبالتالي لما بكون في ال
class imbalance ال accuracy تبعتي مش صحيحة، ليش؟
او بتبقى العفوان غير معدرة بشكل صحيح لأن لو تخيلت
ان هنا انا عدد العناصر بدي اشتغل هيك ان عدد
العناصر اللي انا بدي افحصها 100 ألف
وفعليا او ال data set تبعتي للهيئة كلها كان في
عندي مثلا عشرة ألف positive و
تسعين ألف negative و لما عملت prediction اجى قال
لي والله من العشر تلاف هدولأنا جبت تسعة ألف صح و
ألف ما جبتهوش في المقابل هذا الألف صنفته هان أو
بالأحرى قال لي أنا ما أخطأتش ولا حاجة هان أو خلينا
نقول أخطأ اخطألي بألف هان و جابلي هان تمانين ألف
فعليا ال accuracy تبعتي هتكون تسعة و تمانين الف
على ميت
الف صح فالنسبة تبعتي تسعة و تمانين في المية ال
accuracy عالية
و ممتازة و ما شاء الله عليها لكنهاتحمل في طياتها
خطورة شديدة جدا مع من مع الناس هذول مع
اللهان تماموبالتالي الـ Accuracy بطلت عندي مجديا
لأن الـ 9.8 محدش يقول عن نسبة مخة في طلق بالعكس
نسبة عالية لكنه في عندى مشكلة في ال evaluation
تمام وبالتالي انا ممكن اصير ادور على شغل اسمها ال
sensitivity الحساسية وطبعا هنا بتكلم على ال true
positive rate ال true positive rate على اللي هي
نسبة 9000 على العشرة ألفوكذلك في عندي ال
specificity التخصيص اللي هي نسبة لل true negative
rate جد عشان افصل انا هو ال accuracy بعد ما حصلت
عليها مين كان فيه نسبته اعلى عشان اضيفه ومش بس هيك
جالي ممكن انا اتكلم على other metrics وهذه الأهم
اللي بنسميها احنا ال precision
الـ Precision أو الـ Exactness هي عبارة عن الـ
ratio لمجموعة التابلز
ال classifier صنفهم على أنهم positive و هم فعليا
positive نسبة
ال labelled اللي جال عليها positive و هي فعليا
positive على كل ال actual positive اللي موجودة
عندها وين ال actual positive
الـ actual هو اللي موجود في جامعة الخير في الأعمدة
في العمود في الصفوف الآن ال true positive هي جل
ال true positive على كل العناصر الصنافليها على
إنها positive عشان أجيب نسبة ال actual positive
الحقيقية اللي موجودة عندهاas positive are actually
positive نسبة الـ positive الحقيقية فهنا لما أتكلم
عن ال precision أو ال exactness بتكلم عليها عناصر
الصل عمود الأول تمام لما باجي بتكلم علي ال recall
أو ال completeness بتكلم فعليا على نسبة ال
positive double واللي فعليا تم تصنيفها على إنها
positive نسبة ال positive doubles اللي تصنفت على
إنها positive بشكل صحيحوين الـ positive هي الصف
الأول اللي
احنا قلنا عليها sensitivity قبل لحظات وبالتالي الـ
TB بتروح ال true
positive على المجموع اللي موجود عندي ال TB و ال FN
تمامماعندي الـ F ماعندي الـGalaxy بما أن في عندي
الـPrecision و الـRecall هدولة متريكات مختلفة قال
في ناس فكرت جالكس نعملهم combination ما بين
الـPrecision و الـRecall في متريك واحد و سموه ليا
الـF majorودمجونا فيه ال precision و ال recall
وكان هو يساوي 2 ضرب ال precision ضرب ال recall على
مجموع ال recall و ال precision أو بين قوسين هي ال
F1 وهذا أنا باستخدمه لما عادة بفكر بالمقارنة ما
بينTWO DIFFERENT CLASSIFIERS الان انا في عندى two
different classifiers و بدى اقارن بين الأداء تبعهم
واحد ممكن يتفكر بال accuracy ال accuracy ممكن تكون
متساوية ما بين الاتنين مابيش ممكن اساوي ممكن اروح
على اتجاه ال F مجار اللي انا ممكن تكون طبعا انتم
ملاحظين يا جماعة الخيرالـ Recall و ال Precision و
ال F Major
هدول مرتبطين بال First Attribute يعني لو أنا قلتلك
بدي ال F Major ل ال class التاني أو عفوا ال Recall
ل ال class التاني ال class التاني هيه بتصير أنا
بتتكلم على hand
مجموعة الـ Recall True Positive هي لـ Class التاني
هذه اللي بتمثل True Positive لل Class اللي موجودة
عندي على عدد عناصر اللي هي على عدد الـ N على الـ N
اللي موجودة عندها تمام؟ يعني هذه الشغله مرتبطه بال
Class لو أنا الآن كان في عندي تلاتة في تلاتة
المصفوفة تبعتي بنفس التوزيع لـ Prediction في
الأعمدة و الـ Actual .. لـ Predicted في الأعمدة و
الـ Actual في الصفورة و أنا الجيل قلت والله هاي ال
values اللي عندي الان بدي ال precision عفوا عشان
القانون ال recall بدي ال recall تبعتي التالت لسي
تلاتة و ال true positive تبعت ال class تلاتة هيها
هي فعليًا actually بتنتمي لـ C3 و الـ system جالب
predicted as C3 فعليًا هذه الـ true positive ما
دون ذلك الـ false negative هدولة تنتمي و بالتالي
ال recall لـ C3 لو انا افترض ان هذه Y وهذه Z تساوي
معناته ال recall لـ C3 بدها تساوي X
على y زائد z زائد x اللي هي بجموع كل العناصر اللي
موجودة عندي و طبعا y و z هم بمثله ال false
positive أو عفوا ال false negative ل c3 طيب
بالمثال خليني أخد مثال بالأرقامفي انها النتج الـ
classifier اللي اشتغل على ال prediction للكانسر
بتنبأ بالكانسر عدد الحالات اللي موجودة عندى انا
الف حالة كان فعليا اشتغل اللي لما وزعناهم كانت
عندي تسعين حالة كانوا yes و ال system عملهم
prediction yesو 210 حالة و هم فعليا yes و ال
system عملهم prediction no يعني 300 حالة ال 10,000
حالة اللي عندى 300 حالة سرطان و 9700 غير سرطان او
خلايا تضخم طبيعى غير سرطانى الان ملاحظين لو انا
جيت حسبت ال accuracy ال accuracy 96في المية لأنها
عبارة عن مجموعة تسعين زائد خمسة وتسعة تلاف وخمسمية
وستين على عشرة ألف ال accuracy عالية جدا لكن اه لو
نظرت في الموضوع لو فكرت احسب ال precision و ال
recall لل cancer او لل class الأول لانديهان
ملاحظين ال precision كدهالـ precision احنا قلنا هي
عبارة عن ال exactness مظبوط فعليا جداش تنبأ بشكل
او بشكل صحيح لل data اللي موجودة عندها وصار واضح
الفرق قلنا 90 على 230 قلنا في ال precision بتكلم
على عمود و لما اتكلم بال recall بتكلم وينعلى الصف
صحيح عشان هيك 90 على 230 لـ precision و 90 على 300
اللي هي ال recall اللي موجودة عندها لكن تخيل انه
انا فعليا لو قعدت ترتيب العناصر في المصفوفة بحيث
انه خلت ال target تبعتي No وقولت
انا بدي احسب ال recall و ال precision لاحظوا ال
accuracy ما اتغيرتشلكن انا عيد ترتيب الأعمد يعني
برينج وستين صار اهتمامي هان highly true positive
لاحظوا ان ال precision تبعتي جداش عالي صارت و ال
recall تبعتي جداش على كل مقالة زي ما قولنا ال
perfect value تبعتنا هان حكينا ان ال perfect او ال
score is one كذلك مع ال precisionالـ perfect score
هو 1 وبهكد انا بكون بدي اعمل evaluation لل classes
اللي موجود عندها وبالتالي انا بدي انتبه دائما لل
class اللي موجود بالنسبة لل code اللي له علاقة بال
بايثونانا هنا روحت اعمل import لل data set كان
المعتاد على نفس المثال السابق روحت اعمل import
عشان اعمل split لل data set والمفروض ان انتوا هاي
جربتوها من خلال ال assignment اللي سلمته فانا حصلت
على ال training set اللي هنا من خلال ال split هذه
train test split جسمتلي او ادتني نتيجة ادتني four
different set ال X train و ال label تبعتها
الـ Y لليابيل و X للattributes و ال test text test
و ال Y test طبعا قلت له هان تلاتين في المية نسبة
ال test تلاتين في المية و طبعا هضل الباجي لليترين
من الـ target data و استدعيت ناييف بايسين على سبيل
المثال و روحت و قلت جوسان ناييف بايسين استدعيت ال
constructor قلتله روح بنيت model و قلتله اعمل fit
اللي بتعمل hand training وقلنا
في ناييف بايسين بروح ببنيني جدول الاحتمالاتبعد ذلك
قمت بالتفكير في مجموع يسميته Y-predict هذا هو
النتائج الـ model.predict ودّيته X test بالكامل
لاحظت أنني سميتها Y-predict أنا عندي ال test هي ال
label تباعتها موجودة هنا Y-test فروحت وحصلت عليها
تمام صارت في عندي الـ predicted وصارت عندي موجود
من ال actual label فالانأنا قاعد بقى أشتغل روحت
عملت import بدي أجيب ال matrix from ASCII layer
import ال matrix و ال matrix هي فيها كل حاجة فيها
ال accuracy score و طبعا كل ال method في ال matrix
بدها مني ال y predicted و ال y test ال y test هي
موجودة أنا حصلت اللي هي فعليا ال actual و ال y
predicted هي الموجودة عندها فلما أنا قلتله ال
accuracy score ده نسبة ال confusion matrix طبع
ليها و ال classifier او ال classification report
بتدين الأفمجة و ال precision و ال recall لكل class
موجود عندي و هيك نهينا أو ختمنا chapter لل
classification بتمنى تكون الشروحات واضحة إذا في أي
استفسار لازم يكون من خلال ال model أو ال forum
اللي موجود عندي هنا أخر شغلة مطلوب منها ال
assignment البسيط هذا ال assignment هذا بدو يعمل
مقارنة بين three different classifiers
أخذنا أربعة classifiers كي نتعرف على الـ K-nearest
neighbour، الـ Naive bison، الـ decision tree و
الـ Multilayer Perceptron الـ classifier اللي هو
تبع الـ neural network وأنا بدي أقارن بينهم بناء
على الـ accuracyالـ Precision الـ Recall والـ F
major طبعا انت عندك او انت عندك كل عندك data set
لل classification بدك تطبق ال different classifier
هدول على نفس ال data set على نفس ال data set و
تقارن ما بين ال accuracy و ال precision و ال
recall و ال F major طبعا بقى تزودنيبالـ python
code اللي انت اعتمدت عليه أو اللي انت اعتمدت عليه
طبعا الشغل individual يا جماعة الخير مش groups
ممكن تتشاوروا تعملوا discussion مع بعض لاحقا لكن
انت هتسلموني الشغل اللي هتسلموني هي شغلتين الأولى
ال python code اللي موجود اتنين بالاضافة ل report
عن ال experiment اللي انت اشتغلتها او اللي انت
اشتغلتيها ال experiment اللي بيقولي شو .. شو اللي
.. على سبيل المثال اللي اشتغل كي nearest neighbor
جدّاش ال key اللي اعتمدها 4 و لا 5 و لا 7 و لا 8
لما اشتغلنا على نية decision tree استخدمت ال
information gene و لا استخدمت ال gene ال
multilayer receptor لما انت استخدمته جدّاش عدد ال
input neuron تبعتك يعني بديت تبولوجي وهانبه توضح
لي توصف ال experiment تبعتك و النتيجة اللي طلعت
طبعا لأ اخفيكوا انها كانت المفروض تسلم الأسبوع
الماضيلكن قدر الله و ما شاء افعل الان انا هحمل و
هحط ال assignment على ال model و بتمنى انكوا
تشتغلوا و تسلموا و ربنا يكتبلكوا السلامة و العافية
دائما انتم و أهليكم أجمعين و السلام عليكم و رحمة
الله و بركاته