Lecture_10_part_1
السلام عليكم يا شباب يلا بينا بقى في lecture 10 اللى قبل الاخيرة احنا هنا خلاص بنفنش المنهج فهنتكلم عن اخر concept فى ال classification خلاص ما فيش  algorithms classification هنتتاخد تاني اه كده خلاص هنتكلم عن اخر نقطة فى ال classification وهي ال matrices
باقدر أ evaluate  بيها الclassification وبعد كده ناخد الalgorithm هو Unsupervised Unsupervised  معناها ان الdata بتاعتي labeled ولا unlabeled unlabeled بالضبط انا ماعنديش labeled والهدف ان انا عامل دايما Clusters, Clustering وخلاص هناخد الK means وان شاء الله المحاضرة اللي جاية هناخد حاجة برضو Unsupervised بتعمل Dimensionality Reduction اسمها PC
وكده نبقى خلصنا المنهج ان شاء الله. تعالي بقى اكلمك في ال evolution matrices بتاعت الclassification طبعا احنا كلنا عارفين الclassification  عشان نعمل له evolution بنستخدم الaccuracy ولكن الaccuracy  مش ادق حاجة. ليه? اه هي بتديني عامة ولكن اه مش خاصة يعني ايه
بص سيبك من الهري ده. سيبك من الslides عشان هي وحشة انا هبقى اعدي عليها بس انا عايز اشرح لك هنا حاجة. بص نفترض ان انا دلوقتي الdata بتاعتي unbalance unbalance  يعني الtarget بتاعي مكون من آآ مثلا class0  آآ 0
0 0 0 1. انا مكنش rصد يبقى كتير كبير كده. استنوا. اهو. يا انا غبي. ماشي. 1 1. حلو. دي الlabel ده كده الcolumn بتاع الlabels. بتاعتي. عبارة عن شوية زيروهات.
ووانين بس. دي كده الdata بتاعتي unbalance عندي اه اه حاجة اكتر من حاجة. حلو? طيب. الmodel ممكن يكون بيتوقع كله زروهات. وساعتها هيجيب accuracy عالية رغم انه فشل في توقع اي class من الواحد.
ليه هيجيب accuracy عالية؟ علشان خاطر كده كده عدد الوحايد قليلة فكأن الmodel اتعود انه دايما يقول صفر بما ان عدد الوحيد قليلة فمش هيبقى فارقة معاه فحين بقى ان انا لو جبتلك test data الtest data فيها وحايد كتير انت هتعملك ساعتها كلها صفر تجيب accuracy
23% والله حين تمام فساعتها انت كده فشلت ليه فشلت علشان خاطر انت ما عملتش الaccuracy ما كانتش معبرة كفاية عن ان الmodel بيperform ازاي انت اعتمدت على الaccuracy وهي ساعتها بperform هنا وحش جدا
ليه بperform  بقى وحش جدا علشان خطرت كده كده عدد الوحايد قليلة فالaccuracy ما كانتش معبرة طيب فطلعولنا 2 matrices جداد واحدة اسمها  الpercision والتانية اسمها الrecall حلو اووى الrecall 
sorry الpercision
الpercision هي بتركز ان انت لو قلت 1 يبقى هو فعلا واحد يعني بتركز ان انت دايما ما تغلطش في اي class 1
يعني لو انت عدك class 0 و 1 لو قلت 1 يبقى هو 1 فعلا ماينفعش حد يبقى 1 وانت تقول عليه 0 ماينفعش هو بيركز اني دايما تتوقع كل الones صح هو بيركز ان انت تتوقع
كل الones صح. تمام? طيب. يعني هو بيهتم بالtrue تتوقع صح. تتوقع صح ايه? ال1 اللي هي الpositive. هو بيهتم بالtrue positive  جدا.
انه يعليها. حلو? من خلال الequation  بتاعته. هو ليه الequation   بتاعته هنشوفها في الslides تمام? طيب.الrecall بقى. الrecall عكس الpercision  هو بيهتم بانك لما تغلطش في اي zeros خالص. ممكن تغلط في ones عاد.
بس هو يهتم ان انت ما تغلطش في اي class من الclasses  بتاعت ال0. يعني هو بيهتم بالtrue ان انت تتوقع صح. بس الnegative ان انت تتوقع الnegative  دايما صح. هو بيهتم بالtrue negative ان هو يعليها. تمام? حلو قوي. طيب.
انا بقى علشان انا بحاول بقى امتى اهتم بالpercision  مثلا والله لو دي حالة مرضية انا عندي مثلا application بيقول ده cancer ولا لا فانا عايز ابقى متأكد ان اللي هقول عليه ان انا مفيش حد يبقى عنده cancer يبقى true بتاعه انه 1 عنده cancer وانا روح اقول له انت ما عندك cancer
كده ساعتها اا مشكلة لكن عادي بالنسبة لي ان لو واحد ما عندوش cancer قلت له عنده cancer عادي هيكتئب يعني شوية مش حوار لكن انا الاهم ان ما ينفعش واحد يبقى عنده cancer وانا اقول له لا يلي انه هيروح يكمل حياته طبيعية ويموت. تمام? طيب. الrecall عكسها.
طيب في بقى evaluation matrix عبارة عن الpercision والrecall مع بعض في equation كأنه بيعمل balancing بين الpercision والrecall مع بعض اللي هو لو في application انا مش هممني ان الpercision هو اللي يبقى عالي او الrecall هو يبقى عالي عايز balance ما بينهم ان الاثنين يبقوا عالين ساعتها بقى بستخدم الevaluation matrix اللي هي الequation بتاعتها عبارة عن الاثنين مع بعض
وهي F1 score هو  F1 score معبرين عن الاثنين مع بعض علشان يبقى F1 score 100% لازم recall 100% و precision 100% علشان F1 score يبقى ب 0% لازم واحد منهم يبقى 0%
لو الrecall ب0% ساعتها الـ F1 Score هيبقى ب0% حتى لو الpercision  ب100% مدام واحد منهم ب0% الـ F1 Score هيبقى ب0% لإنه بيهتم بالاتنين يهتم أن بالاتنين يكونوا  بيعبر عن بالاتنين يعني عن قيمة بالاتنين الbalance اللى ما بينهم تمام طيب
حلو قوي. تعالى بقى نشوف كده بتقول ايه? هو هنا بيقول لك ان ما كانتش معبرة في حالة الunbalance ان انا اه هنا انا بclassify  بينpositive  وnegative. ان انا ممكن 90% من ال sentences انا قلت عليهم negative وهم اصلا علشان data بتاعتي كانت unbalance في حصل مشكلة.
فساعتها الأحسن أن أنا كنت أطلع الpercision  والrecall الpercision  بتعرفني معلومة أنا قد إيه هو قد إيه أنا غلط في showing بتاع الnegative sentences هنا ده مثال يعني هو بيقول يا positive sentence يا negative sentence الrecall بيقول أنا قد إيه
عملت حلو للpositive sentences تمام طيب ده نفس الكلام اللي احنا قلناه بس بالعكس يعني مثلا هنا انا بقولك هو بيهتم ان الtrue positive يبقى عالي مدام هو بيهتم ان الtrue positive يبقى عالي قلتلك ان هو ما بيهتمش مش فرق معا بقى اللي اصفار فهو هنا بيقولك ان الpercision  مش مهتم بالاصفار مش فارقه معاه
هو بيحسب قدي انا غلطت في الاصفار عادي. اه الrecall عكسه. فاهمني? بس فما تلغبطش نفسك يعني. هي كده. تمام. طيب. حلو. نيجي من هنا بقى الconfusion matrix احنا خدناها فيالAI. الconfusion matrix هي بتبقى matrix
4 ف4. 4 ف4. لو هي 2classes. اه لو هي 2class.
تمام? انا عندي هنا هم 4 ف4 هنا وهنا الpredication. هنا انت بقى بتبقى متقسم 4 كده. عندك هنا الtrue positive تمام? الترتيب مهم تحفظه. تمام?
هنا الfalse negative يبقى هنا الfalse حلو قوي هنا مش الfalse اصلا هنا true negative وهنا الfalse positive  دي اي classification لازم ترسم الmatrix دي
هنا الprediction هنا الtrue value وتقوم كاتب بقى قيمة true positive false negative false positive false negative ومنها تقدر تحسب الprecision بالقانون الrecall بالقانون ال f1 score مدام جبت الprecision والrecall وكمان الaccuracy تمام بمجرد ما جيب الـ 4
طيب ايه الtrue positive  الtrue positive هو الحاجات اللي انا توقعتها صح وهي كان الclass بتاع اه اه اه انا توقعتها صح وتوقعت الclass  بتاعها ان هو  1 تمام? طيب حلو اووى يعني هي اصلا كانت ثانية خلينا هنا علشان هنا مكتوب احسن هنا الtrue positive
أنا توقعت صح أنا توقعتها أن هي positive وهي فعلا كانت positive طيب true negative أنا توقعتها صح أن هي negative وهي كانت negative تمام هنا اللي هي false positive false معناها أنا توقعت غلط توقعت غلط
والتوقع بتاعي ان انا قلت ان هي positive ولكن هي كانت negative تمام يبقى انا دايما الpositive والnegative اللي بيبقوا بعد الكلمة دول دول الprediction بتاعي انا قلت عليها ايه true او false بتقولك انت بقى توقعت صح ولا غلط فهنا false معناها ان انا توقعت غلط
طيب التوقع بتاعك ايه?positive معنى كده ان انت تفهم ان true ايه الtrue بتاع الsample دي ايه? ان هو كان negative عشان انت توقعته غلط وقلت ان positive  هو يبقى هو اكيد كان negative  تمام? طيب false negative معنى الfalse  ان انا توقعت غلط وقلت ايه? negative  تمام? بس يبقى هنا true توقعت صح وقلت عليها ايه? قلت posi
هنا توقعت غلط وقلت عليها ايه قلت positive هنا قلت عليها صح وقلت ايه قلت negative هنا توقعت غلط وقلت عليها ايه negative تمام طيب لو هي true يبقى اللي انت قلته هو هو الحقيقي لو هي false يبقى انت اللي انت قلته ده عكس الحقيقي دي ال confusion matrix وده ش
الاربعة دول واتوقع انها تيجي في الامتحان طبعا تركز ايه اللي بببب الcorrectly الcorrectly معناها بص هي في كلمات هي دايما هيجي لك بص انت دايما هيجي لك جملة دي هقول لك عشان ما تنساش شوف اول كلمة لو correctly  يبقى true تعرف اول
لو incorrectly يبقى false تمام تشوف بقى التانية لو positive يبقى positive لو negative يبقى negative بديهيات بس خلاص جهت في الإجابة طيب الaccuracy الaccuracy هي عبارة عن number of correct predictions على total predictions صح اللي هي بقى عبارة عن ايه بقى من true positive true negative ودي
اهو بس. عبارة عن الاربع حاجات اللي انت جايبهم. على اي اي اي عبارة عن الاربع حاجات اللي انت جايبهم اه تحت. وفوق الحاجات الtrue. الtrue positive  والtrue negative  مجموعين على بعض. تمام? طيب. بس الaccuracy دي قلنا مش معبرة. امتى? لو الclass imbalance dataset فساعاتها هستخدم  الprecision   والrecall.
بيعبرلى احسن هو fraction positive prediction that actually positive هو يهتم انك لما تقول واحد يبقى واحد حقيقي يعني مدام قلت positive يبقى هو actually positive فهو بيهتم بtrue positive  ان هو يعليها زي ما انا قلت لك وهو اه عبارة عن هو بيهتم بtrue positive ان هو يعليها وبالتالي هو عبارة عن
الtrue positive على الtrue positive زائد الfalse positive تمام? بس. آآ ده القانون بتاعهم. يبقى تقدر تجيبه من الاربع حاجات. وده بيطلع طبعا يا اما رقم ما بين ال0 وال1. 0 هو اقل حاجة. معناه ان انت فاشل في التوقع بتاع الclass بتاع ال1 خالص.
واحسن حاجة انه يطلع ب100% معناه ان انت بتتوقع كل الclass بتاع الones صح. اه هنا اهو precision  انا عندي اهو هتطلع من هنا ايه? انت عندك اهو هتطلع الtrue positive والtrue negative فانت عندك هنا 4 correc
و 2 mistake معناها أن true positive 4 وال true negative 2 فكده هيبقى 4 اللي هو true positive على true positive زائد true negative اللي هي على 4 زائد 2 اللي هي 6 4 على 6 تطلع 66% تمام طيب ال recall عكسها هو مهتم ان انت دايما للصفر تتوقعه ص
هو مهتم اي هو fraction اه بيهتم بالnegative  اه بيهتم بالnegative يعني ومعناها ان الpositive يبقى هو positive طيب
سنقف positive آآآ ثانية ثانية ثانية ثانية ثانية ثانية ثانية الrecall هو عكس الpercision على طول عكس الpercision على طول آآآ ف
اوكي الprecision  ثانية الrecall اهو ايو ايو ايو بالظبط الrecall بيهتم بقى بالعكس يعني بعكس بتاع الprecision  فيه اختلاف في القانون اهو انا مخدش بالي ان فيه اختلاف في القانون
القانون بتاع ال recall اللي فوق true positive زي ال precision اللي تحت كان true positive زائد false positive ده في ال precision ال recall هنا بقى لا زائد ال false negative تمام  لان هو عكس العكس اسمه ايه
الprecision . تمام? وطبعا بيطلع رقم من 0 ل1. لو طلع 0 معناها ان انت worse. معناها ان انت اه اه ضايع يعني 1 يبقى انت بتتوقع اه صح. ازاي تحسبها? برضو بتجيب true positive وtrue negative وتروح تقوم حاطتهم وتطلع القيمة من
القانون. تمام? طيب. الprecision  والrecall بقى اه اه مع بعض. في models optimistic متفائل. بيقول كل الclasses 1 ماشاء الله عليه. بيقول كل الclasses 1 اي class قدامه بيقول 1 متفائل model متفائل.
ساعتها ده الprecision  بتاعه هيبقى كام 100% انت كده الprecision  ما بقاش معبر تمام وفي model pessimistic. 
pessimistic  يعني بيقول على كل الclasses ان هي صفر تبع الصف
صفر ان هي تبع الclass الnegative مثلا هو pessi غير متفائل. اللي هو في الحالة بتاعت 0 1 بيقول كله 0. فكده الprecision  والrecall ما بقوش معابرين قوي. فازاي اقدر أbalance الprecision  والrecall أbalanceهم من خلال ان انا دلوقتي بقى عندي
trade off trade off لان انا مثلا انتو عارفين ثانية انتو عارفين ال precision وال recall يعني مثلا لو انا في مسابقة دلوقتي وعرفت ان المسابقة دي هي بي evaluate بناء على ال precision وانا عايز اعلي ال precision بتاعي عارف هعمل ايه في الmodel بتاعي هغير ايه في الmodel
هغير في الmodel هعدل في الsigmoid function هbuild الmodel from scratch وعدل في الsigmoid function فاكر الsigmoid function كانت بتعمل classes بناء على ال probability اللي بتطلع لو أعلى من نص بيعتبرها واحد لو أقل من نص بيعتبرها صفر صح؟
لا انا ممكن اعدل في الprobability دي زي المثال ده ده كده pessimistic model تمام وده optimistic model ليه لان ده pessimistic model بيقولك ما تقولش ان ال
التوقع بتاعك الclass 1 غير لما الprobability بتاعتك تبقى اعلى من 0.9999 انت متخيل الاساسي كان انه اعلى من نص بيعتبر واحد قالك لا انت ما تقولش انه يبقى واحد غير لو اعلى ااااا
من 0.999 ده كده pessimistic آآ algorithm algorithm  متشائم الalgorithm   المتشائم دي بقى عشان ما تلغبطش نفسك عشان أنا كلنا بنتلغبط في الprecision والrecall والحسابات دي احفظها يا معل
الpessimistic  اللي مش متفائل بيبقى عنده high precision يعني بيقول على كل حاجة one زي ما أنا قلت لك هو بيهتم منه دايما يقول one تمام أو بيهتم بالtrue positive عشان ما نتلغبطش بيهتم بالtrue positive وبيبقى عنده low record
ال recall عنده بيبقى قليل وال precision عنده بيبقى عالي بي predict بي predict الpositive بس لما بيبقى متأكد ده اللي انا قلته لك بالملي هو ده شرح اللي انا قلته لك بالملي مش هقولت لك بيهتم بال true positive على الاخر خلينا نثبتين مثال علشان نبقى حافظين
المثال بتاع الدكتور الprecision   باهتم بيه ليه؟ علشان ما ينفعش أقول على حد اللي هو لما يبقى عنده one حد يبقى عنده cancer أنا لازم أقول إنه عنده cancer لما بقى متأكد 100% تمام؟ متأكد إنه عنده cancer فأقول له أنا بpredict الpositive بس
لما بابقى متأكد. تمام? فبعلي اهو الthreshold. طب. الoptimistic بقى. المتفائل المتفائل  بص راح اعدل لي في الfunction بدل ما كان اعلى من نص يبقى 1 اقل من نص يبقى 0. لا قالك خليه 1 لما يبقى اعلى من 0.00001 ز يعني ده تقريبا هيتوقع كلهم 1.
متفائل. فده عنده low precision  و high recall . ده بيتوقع الpositive في معظم الشغل بتاعه. في معظم الشغل بتاعه. ده انا متوقع تيجي عليه امثلة. محتاجة فهم. و ركز في الحتة دي انا متوقع انها تتلعب بها في الامتحان اه حاجات كتير.
ومش عايزك تكون متلغبط ركز دلوقتي انا هلملك الدنيا حتى لو انت اتلغبطت من اللي فاتت انا هلملك الدنيا دلوقتي تمام طيب لو انا عندي مشروع المشروع ده عايز اتوقع معظم الحاجات اللي فيه one تبع class one
هعمل ايه؟ هعمل optimistic model اللي هو عنده low precision و high recall تمام؟ طيب حلو قوي لو انا عندي مشروع عايز ماقولش اني الكلاس ده
positive غير لما يبقى أنا متأكد فعلا أنه positive ساعتها هعمل المتشائم pessimistic classifier اللي هو عنده high precision وlow recall بس كده يا معلم تمام ومعاك الequation بتاعت ديه والequation  بتاعت ديه فكك بقى من حتة بيزود علشان دي هتلغبطك
حتى بيزود والtrue negative والtrue positive دي هطلغبطنا جامد ففكك منها ودي advanced ملاش علاقة. تمام? طيب. آآ خلاص فهمنا. طيب. انا عايز بقى أbalance بين الoptimistic وبين الpessimistic  ده. انه ولا يبقى آآ متشائم اوى كده ولا متفائل اوى
هنا بقى اتحكم او اظهر الF1 Score تمام? ده هو الفرق بين ده اللي الT ده اللى هو الthreshold لما كان الthreshold  بنص كان هما بين الrecall و الprecision   عادي جدا. هو هنا مثلا بص ممكن يقول لك انا بهتم بالF1
انا دايما الbest classifier اه هو اللي ناحية اللي بياخد area اكبر. دي قاعدة. لما انا يبقى عندي اه graph ما بين الprecision  والrecall. اللي الintegration بتاعته قيمته اكبر اللي هو لما الarea under the curve
تبقى اكتر معناه ان الclassifier ده احسن. واتوقع دي تيجي بصور في الامتحان. يعني هنا احسن classifier A  ولا احسنclassifier B.  classifier B ليه? عشان الarea under the curve اكبر. طيب. لو جالي هنا مثلا. آآ دهclassifier A احسن ولا classifier B. احسن  . آآ آآ آآ آآ اسف classifier A احسن ولا classifier C احسن.
ما تقدرش تجاوب ليه هنا حصل زي trade off كده الclassifier C كان شغال زي الفل وأحسن لحد نقطة معينة من بعدها classifier A اتحسن عنده ساعتها ما قدرش احدد فساعتها بيعملوا ايه بقى وبيستخدموا ايه بيستخدموا حاجة اسمها multi modeling انهم بيستخدموا
Model Model A في الperiod التانية دي او الجزئية التانية دي و C في الperiod الاولى فا زي كأن Model بيسلم Model Model بيtrain لحد ما يوصل هنا و Model بيكمل الtraining تمام طيب حلو قوي هنا بقى بيقولك ان الprecision  لوحده مش معبر و الRecall لوحده مش مع
معبر ليه علشان خاطر هنا مثلا الalgorithm ده بص الprecision فيه 0 tends to 0 لكن الrecall ب100% هنا الريكول برضه tends to 0  لكن الprecision   70%عالى هنا الprecision  نص الrecall قريب منه برضه 0.4 فاساعتها الF1 score معبر و الF1 score
لو انا خدت ال average ال average مش هيبقى معبر نهائي فباخد ال F1 score ال F1 score عبارة عن اتنين في ال precision في ال recall على ال precision زائد ال recall تمام فده بيطلع لي اهو قيم معبرة اني احسن algorithm هو الاولاني لانه هو اداني ال F1 score الاعلى وفعلا ده باين في الaccuracies اللي قدامي انه هو مهتم بال precision وال recall مع بعض علشان كده جاب اعلى F1 score
لكن لما بيبقى في واحد منهم وقع سواء الprecision  او الrecall واحد منهم وقع هتلاقي الF1 score وقع على الاخر تمام؟ كده خلصنا الجزئية دي ودي مهمة جدا 100% هيجعلها مسألة في الامتحان 100% هيجى عليها اسئلة فهم في الامتحان فخليني أrecap علشان لو انت متلخبط جزئية دي معلش لو انت متلخبط فيها اسمعك
اول حاجة سيبك من حتة True Positive و True Negative لو ملغبطاك فكك منها خالص تعال نتكلم بقى بشغل تجميعي انا عندي Data Unbalance ساعتها ال accuracy مش معبرة اومال ايه اللى معبر ال precision و ال recall بس خد بالك ان ال precision و ال recall كل واحد لوحده مش معبر علشان كده بستخدم ال F1
score حلو قوي.الprecision  ايه مشكلته او ايه لأ هو بيحل مشكلة ايه? ان هو ما بيقولش 1 غير لما يبقى متأكد قوي. يعني معظم ال predictions بتاعته صفر معادة لو هو متأكد انه 1. علشان كده لو عمل الthreshold بدل نص هيخليه 0..
طيب الrecal وده اللي بيتعمل اللي بيبقى high precision و low recall   ده بيبقى في الmodel المتشائم الpessimistic طيب الrecall بقى الrecall هو معظم الحاجات بتاعته بيقول عليها ان هي
يعني معظم الpredictions 1 بتاعته يعني نقدر نقول انه ما بيقولش على حاجة صفر غير لما تبقى فعلا صفر. ما هو بص عكس الprecision بالظبط. ما هو خلي بالك مشكلة الprecision و الrecall ان انت كل حاجة وعكسها كل حاجة وعكسها. فا ممكن تتلغبط عشان كده. فالrecall هو بيقول على كل حاجة 1.
يعني ما بيقولش صفر غير بحساب زي ما الprecision  ما بيقولش one غير بحساب معنى كده انه بيقول كل حاجة صفر معادة one بحساب والrecall بيقول كل حاجة one معادة الصفر بحساب وده بيحصل في الoptimistic بقى اللي هو المتفائل
وطبعا ده بيبقى الthreshold قليل اووى 0.001 فعلشان كده انا بحاول ان انا اه طبعا اقدر اعمل ده اقدر اعمل ده او اهتم ده اهتم بدا طبعا على حسب الapplication بتاعي فيه applications تبقى مهتمة بالprecision زى الapplications الطبية وفيه applications تبقى مهتمة بالrecall زي ايه application تاني الspam ولا حاجة.
اه الاتنين مع بعض بقى لو application عادى و انا مهتم بالاتنين مع بعض يبقى احسن لي استخدم الF1 score ومعانا الequations بتاعتهم كلهم اهم حاجة ان انت تجيب الconfusion matrix اللى هي بتبقى matrix 2*2 تجيب الاربع قيم الtrue positive false positive.
true negative false negative وتحفظ أماكنهم الtrue معناها أن أنا توقعت صح واللي بيبقى بعد true أو بعد false هو دايماً الprediction بتاعي كان إيه فtrue positive معناها أن أنا قلت صح وهو كان positive
 false positive معناها أن أنا قلت أنه positive وده كان توقع غلط وبالتالي هو في الحقيقة negative
false negative معناها ان انا توقعت غلط وقلت ان هو negative ولكن هو في الحقيقة كان positive
 true negative معناها ان انا توقعت صح وهو وقلت انه negative وهو فعلا كان negative وبمجرد ما اجيب الاربعة دول تقدر تحسب اي حاجة من الباقي كله كده اظن فرمنا الجزء ده هعمل في part تاني بقى الunsuper vis
vised learning