بسم الله الرحمن الرحيم الصلاة والسلام على رسول
الله أهلا وسهلا بكم في لقاءة من جديد من لقاءات
مساقة تنقيب البيانات وان شاء الله اليوم سأتكلم
معاكم عن .. سأشتغل معاكم عملي زي ما أشتغلت في الـ
preprocessing سأعمل فيديو قصير عن ال
classification وماذا أريد أن أفعل في عمل ال
classificationوحشكل على الكجل كـ Environment ممكن
أنتم تستخدموها في موضوع الـ Data Mining أو الـ
Data Science وحاجات كتفي فقط بـ Classifier راحل
والـ Classifier هذا له خصوصية شوية ضمن كل فيديو
هذه ساعدكم في فهم أو في عمل الواجب بشكل صحيح
تمضبنكم في الواجب تستخدموا ال data set تبعكم
وتقارنوا ال performance تبع ال three classifiersمن
أربعة احنا خدنا الـ Canary Sniper والـ Naive Bison
والـ Neural Network والـ Decision Tree هدول
الأربعة انا شرحتهم في تسجيلات السابقة المضمون انكم
تختاروا التلاتة و تطبقوهم على ال data set اللي
موجودة عندكم، الآن انا شاء الله تعالى هبدأ اعمل
sharing للشاشة اللي موجودة عندهاأحاول في الفيديو
أنتقل لموضوع الـ Sharing وأتكلم على الـ Data Set
أو على الـ Element اللي أنا .. البرنامج
اللي أنا بدأ أشتغل عليه بداية خليني أنا أروح أعمل
Share للـ Desktop هي
Share للـ Desktop بالكامل وبعد التسجيل المفروض للـ
Desktop وأنا الآن
بسم الله هيالكاجل.com أنا أيه الحساب على الكاجل؟
اللي انشأته من تبقى الإحساب آخر لكن هذا أنا أنشأته
من فترة بخصوص اللي اللي اللي اللي اللي
اللي اللي اللي اللي اللي اللي اللي اللي اللي اللي
اللي اللي اللي اللي اللي
اللي اللي اللي اللي اللي اللي اللي اللي اللي اللي
اللي اللي اللي اللي
اللي اللوبحدد ال database هي بيما انديام ديابيتاس
ال database هي مشهورة عالمياً أنا مش هروح أحملها
كمان مرة فاللي already اذا حملتها بكون انتهيت من
الملف اللي موجود عندي و هنتقل الخطوة التالية هروح
انا أقوله في ال data set اللي موجودة عندي هي بيما
ديابيتاس
وأنا بدي أستخدم الـ Dataset Hi طبعا
الـ Dataset جمال الغير عشان نفهمها بشكل سريع الـ
Dataset هي ناتجة عن المركز الوطني لأمراض السكري
والحمية والأمراض الكلةالهدف منها إنه فعليًا
يحاولوا يتنبأوا هل المريض هذا هو مؤصاب سكري أو لا
بناءً على التشخيصات اللي هي موجودة في ال database
اللي موجودة قدامها هي موجودة أعظم مكوّنة من تمانية
attributes زي اللي هنشوفها كمان شوية «several
constraints were placed on the solution of the
ice» وهذه ال database مكوّنة بتتناول ال female
patients only all the patients here are females at
leastعلى الأقل يكونوا 21 سنة يعني 21 سنة من بيما
المنطقة اللي موجودة فيها طبعا هذا كل الكلام انا ما
الاصل اللي شفته عندما اتعرفته على ال database
والان بده اروح حقوله new notebook
الآن الـ New Notebook هو Jupiter Notebook إنشأليه
الـ Kaggle، والآن جاب لي هذه كل الكود عشان يعمل
import لمين لل database اللي موجودة عنديها، طبعاً
هذا الفرق الوحيد ما بين الـ Online، الـ Python
Jupiter Notebook أو الـ Localاللي في الآخر انت لما
بنعمل import كنا بنزوده بالمسار اللي موجود، طب مين
بيحدد المسار؟ هذه موجودة على cloud أو على driver
فاحنا بنختارها بكل بساطة بدون إيش بدون ما يكون في
عندنا ال .. عفوا فبتروح بتزوّدنا إيه أغلى كاجل
بدون ما تكون في عندنا مشاكل الأصل إحنا هذا ال code
إذا بدنا نشتغل online نرفعه أو نتعلمه أو نحفظه لأن
هذا ال code هيلزمنا مع الكاجل و غالبا هو نفسه
موجود مع ال collab ما علينا أن الأن لو أنا طبعا
ناحظ أنه عمل كمان import لأهم two libraries اللي
هم على ال databaseأو في الـ dataset الـ numpy
والبانداز طبعاً أحنا معظم شغلنا من خلال البانداز
لكن في مثال اليوم هيلزمنا ال numpy كذلك لمرة واحد
أو لمرتين خلينا نعمل runللـ code اللي موجود عندها
عمل run طبعاً سرعة الاستجابة بتعتمد على سرعة ال
connection اللي موجود عندك طبعاً هنف يقولك جديش
انت استخدمت من ال hardest جديش عندك CPU او إشغال
للـ CPU جديش إذا كان عندك إشغال للرابط ممكن تطفو
ممكن تعمل restart للجهة بتاع ال notebook هذا
الرابط بعد ما عملت run أداني رابط في diabetes.csv
طبعا خليني أنا أسمي ال notebook تبعي diabetes
عند الـ score specification
وأجي أخد Notebook جديدة وحروح أنا أقول له الـ
DataFrame طب أنا خلاص بدي أقرأ ال database pandas
.read underscore csv اللي زي ما أحنا بنقرأ وهي ال
single quotation وهي المسار اللي أنا نسخته هي كده
الأمور تمت عملية المفروض تم عملية القراءة عشان أنا
أتأكد ورح أقول ال DataFrame.head والhead ممكن أنا
أزودها زي ما قولنا سابقاًبتعرض الأول صفوف من الـ
DataFrame اللي أنا قرأته الـ DataFrame هذا مكوّن
من حوالي الـ 708 الـ و سبتين row الـ By default
الـ head بتجيب عشرة، عفوا، بتجيب خمسة، إذا أنا بدي
عشرة أو بدي خمسة أو بدي تلاتة أو بدي خمستاشر ممكن
أنا أروح أغيره مرة تانية، فهي راح قرأليها اللي
قاللي هي البيانات اللي موجودة عندكبس خلّيني أقول
لكم قدرة الـ Pages Classification 1 الأن تعرفوا
على الـ Attributes بشكل سريع اللي موجودة عنهم بما
أن كل الـ Database أو كل الـ Data Sets مكوّنة من
الـ Gmail فعلا بيسألني عن ال-Pregnancyعدد مرات
الحمل، نسبة الجلوكوز في الدم، ضغط الدم، كم كان،
سماكة الجلد، طبعاً سماكة الجلد جامعة الخير مهمة
لأنه بيمثلها في طبقة الدهون، كمية نسبة الأنسولين
أو كمية الأنسولين الموجودة الـ Body Mass Index
مؤشر كتلة الجسد الجدش طبعا المفروض كل الناس اللي
فوق الـ30 أو فوق الـ32 أو 35، أعتقد إذا أنا مش
أوطاني يعنيبقول عنهم أصحاب سمنة، الـ diabetes بـ
degree function و high function بتجيس ليه؟ هل
المرض هذا مرتبط بالعامل وراتي من الأبوين أو من أحد
من العائلة؟ جدش نسبة الناس اللي في العائلةموجودين
أو مصابين بالمرض، المرض السكري والـ Age الأعمار زي
ما قلنا والـ Outcome اللي هو ال label أو ال target
تبعتنا The binary classification صفر واحد، واحد
مصاب، صفر غير مصاب، واحنا بدنا نعمل prediction
نشوف هل فعليا اللي هو أنا زودته ببيانات معينة
هيقول إنه هذا مصاب أو غير مصاب، تمامالآن عشان
أتعرف على الـ Database بشكل كويس بقولنا ممكن انا
أروح أقوله الـ DataFrame.Describe والـ
Describe بقولنا هذا بتدينا Simple Statistics لكن
المرحلة ها دي بدي Transpose والناس اللي درست
رياضيات منفصلة بتعرف ان ال Transpose أو دراسة
مصفوفات بتعرف ان ال Transpose بعمل تبديل للصفوف
والأعنيلةأخيرًا هي راح جابليهم هان وبحيث ان ال
statistics ال count بتمثل عدد الصفوف اللي فيها
values طبعًا كله فيه values عندي هان 678 عدد ال
values ال main المتوسط الحسابي ال standard
deviation ال minimum value طبعًا جماعة الخير ال
minimum value زي الجليكوز وضغط الدمو الـ skin
thickness و الانسولين و ال body mass index، هذه
كلها بالنسبة لنا المفروض تكون هذه missing values
بس بدها معالجة، لأن مستحيل يكون عندي ال body mass
index صفر، مستحيل يكون الجليكوز في الدم صفر،
مستحيل blood pressure يكون صفربس أنا الان مش هشغل
على ال database مش هعملها pre-processing بينما انت
ملزم انك تعمل pre-processing لل database ال
database ده مش مناسب أقولك خد database تانية إذا
في حد مختار قدر اللهطيب، الآن أنا بحاجة زي ما قلنا
عن الـ Database هذه على علاتها وحافظة أروح أجهز
الـ Data Set للترانسي للـ Classification وأهم شغلة
في الـ Classification أنه أنا أعمل يا جماعة الخير
Split ما بين الـ Data Set Attribute أخد الـ
Attributes أو الـ Data Attributes لحال وأخد الـ
Target Attribute لحالي وهذا الكلام أنا بدي أروح
أسميها تحت«Data» أو «Data Set» «Splitting»
«Splitting» أو «Splitting»
«Splitting» «Splitting» «Splitting» «Splitting»
«Splitting» «Splitting» «Splitting» «Spl
Target Underscore Attribute كيف أنا بدي أعمل الـ
Splitting الآن؟ عملية الـ Splitting هي عبارة عن
أخد نصخة من الـ Attributes أنا ما بديش أخرّب في
الـ Data Frame الأصلي اللي موجود عندي هنا فبتحتقط
فيه و هروح أقوله أنا هنا ال Data أو ممكن أسميها ال
Attributes مباشرة Attribute
Equalالـ DataFrame.prop
بدي أحدث الـ Outcome
وهذا موجود على الـ Axis أرقم واحد فعليه مش هيحدثه
لأنه لم أقول له إنه Blast فبدي أخد نسخة من ال
DataFrame هذا و بيحدث ال Outcome وبدي أخذلني فيه
مين بحقليهم في ال Attributes تمام؟ وفي عندي Target
«attribute equals dataFrame dot أو dataFrame of
the outcome» وهكذا أصبح لدي two arrays تمثل
الـ «attributes» من الـ «age» إلى الـ «pregnancy»
والأخير بيمثل الـ Outcome أنا سميته إيش الـ Target
هذا الفصل مهم جدًا يا جماعة الخير بالنسبة لنا لأنه
من خلاله أنا بقدر أقول والله أنه ال data تبعتي تمت
طبعًا أنا الآن عملي ترنمج جابلي إنه okay أخدت رقم
أربعة سل هذه نفذت بدون أي مشاكل إذا حابب أنت تعمل
ال attribute describe أو تشوف
الخطوة التالية اللي أنا بدي أسويها في الـ
preparation، برضه من تحت الـ preparation، اللي أنا
بدي أجسم ال data set اللي موجودة عندي الآن، اللي
هي ال attributesالـ Data Attributes والـ Target
Attributes بدي أجسمهم على مستوى الـ Rows بحيث أنه
أجهز الـ Training Set والـ Testing Set زي ما أحنا
أبني علىها إيه هان؟ Splitting The
Data Set
واحنا بين جلسينحكّم الـ Attribute و
Target into Training and Test Setعشان أنفذ الكلام
هذا أنا بدي أروح من ال AsciiLab.model طبعاً هنا
بدي أبدأ أول أستخدم أول مكتبة بعد الـBandas اللي
موجودة فوق فهاجله from AsciiLab والـ AsciiLab يا
جماعة الخير أهم مكتبة بالنسبة لإلنا موجودة ممكن
أنا أستخدمها model underscore selection model
selection
ماذا أريد أن أستخدم من الـ Modeling و الـ
Selection؟ سأستخدم crane underscore test
underscore split function أو ميثود الموجودة في
داخلها الميثود هايبتش بتاخد مني argument هذه
الميثود بتاخد مني argument أهمها تلقى شغلات الـ
attributes ال data set اللي أنا
أشغل عليها الـ Attributes كأخد مني الـ Target،
تمام؟ دعني أتأكد إن كنت بالـ Target صح هما، والـ
Test أو الـ Train Size Test underscore Size بدها
تساوي 30% الآن شوف بسهولة، فعليًا بروح بجسم الـ
Attributes والـ Targets هما as one data frame
فعليًاالـ Index اللي موجود في الـ Attribute الأول
أو مع الـ Attributes هو نفس الـ Index الموجود على
الـ Target بس أنا فصلتهم كأعلى ده عن بعضهم لكن الـ
Index بقى نفس الترتيب، ماصارش فيه عليه الشغل طيب،
وبالتالي هو هياخد Random Sample نسبة 30% من الـ
Indices اللي موجودة هنا ويعمل الـ Reaction 30% هذه
هترجع في لمين؟ هترجع لـ X Testوالـ Y-test اللي هي
الـ Attributes الخاصة بالتست والـ Target الخاص
بالتست خلّيني أسميهم X وY والمصطلحات هذه درجة جداً
في التسميات بالإضافة لهيك، أنا فيه عندي الـ X
train والـ Y train اللي هم الـ 70% اللي بيظلوا من
ال data sets اللي موجودة عندي فأنا فعلياً هكون فيه
عندي X train كمان Y train
كما X test كما Y test وهذه أربع مجموعات بحيث أن
الـ procedure هذا أو الـ function هذه أو الـ
constructor هذا بيرجعلي بأربع مجموعات X test X
دلالة على الـ attributesتمام فالـ X هي عبارة عن
subset من الـ attributes X train و X test X test
بتمثل 30% من ال attributes والـ X train بتاخد 70%
طبعا ممكن أنا أبدل هنا، أروح أقول له لـ train test
أو لـ train size 70 تمام؟ وبيمشي الحال، الآن الـ Y
train هي عبارة عن 70% من ال target بناء على ال
index اللي تم أخدهاوالـ Y-test هي عبارة عن الـ
Sample اللي موجودة عنا طبعاً عشان نتأكد أن الأمور
تمام و ال splitting صح تمت، هروح أنا أقول له X
train dot
head و بدي أقوله بس يعرض الأول تلاتة منهم أو مش
قضية، هي الأول عشرة بس عشان نشوف ال indices اللي
موجودة فيهمهي، واحظوا زي ما حكينا هذا عبارة عن الـ
Index الآن في المقابل، لو أنا روحت عرضة الـ Y
-Train وقلت له هي في السلة اللي بعدها، بس عشان
أؤكدلكم الـ Ytrain.head
وخلّيني على عشرة كذلك، Runطلع معايا في الـ index
ويترين
أنا أخطأ تاني يا جماعة الخير في التسمية هي المفروض
X test X test
thirty three five green هينعمل run مرة تانية
هينعمل run للسل high أه، هيك تمامأنا اللي أختار في
تركيب العناصر اللي فوق ببدأ بالـ Exit Test بالـ
Attributes و بالـ Yالـ Target طبعًا هي ميزة إنه
أنا فعليًا بضل بتبع الـ Data شو صار فيها، مابخطيش،
لاحظوا 155، 155 هي نفس الـ Index اللي موجود يعني،
فأنا أمور من ناحية الـ Database الآن أو الـ
Splitting للـ Data جاهزة، بحيث إنه أنا جسمت الـ
Data، فصلت الـ Attributes، الـ Data Attributes
والـ Target Attributes، فصلت كل واحد فيهم في Data
fileهو روحت للـ data set أو الـ two data frames
دول فصلتهم كمان ل test set و فوقه train set و هبدأ
استخدم train set في موضوع ال classification الان
بدأ أستخدم ال K nearest neighbor KNN
أو ما يعرف بالـ K nearest neighbor
هنا تبعت الخير في الـ Canary's Neighbour Model
يقول إنها أهم شغلة تريد التعرف عليها من أين تريد
أن تعمل الـ Import؟ لأن من الـ Asciler Dot
طبعاً هنا عندني عائلة اسمها Neighbours أو ال
library عشان ماحدش يقول ليه عائلة Neighbours هروح
أقول له Import
«nearest neighbor» «neighbors
as KN»
الأن هذا الموديل أنا بممكن أنشئه مباشرة «KNN»
والخطوة التالية اللي بعد هيك أنا ممكن أحدد له
الـ Model أو أروح أعمله Fit اللي كان المفروض
أحددله الـ Data Set اللي بده يعمل عليها Training
أو مقارنة هي المفروض الـ Train Data Set لكن في
ملاحظة مهمة جدا قبل ما نكمل طبعا بإمكاني أنا أوقف
هذه وأعلقها
الآسي جمعة الخير هي من أجل الاختصار الـ AS من أجل
الاختصار عشان مابترضش أكتب الاسم بالكامل يعني لو
أنا بدي أكتبها، هروح أقول «KN N underscore model
equals
nearest neighbors و N underscore neighbor equals
ثلاثة»عفواً، خمسة، خلّيني أعمل نفسي، أمشي على نفس
الـStyle هذه واللي فوق نفس المعنى، بس أنا هنا
بأختصر في الكتابة بناءً على .. بعمل Alias Name
وبستخدم الـAlias Name الآن بضل أقولّهم الـKNN
underscore model fit
وفي ال training، شو بياخد؟ بياخد الـX train والـY
trainلأن هذه هي الـ data اللي انا بتعمل عليها أو
من خلالها ال training لو انا اشتغلت عملت له run
وشكلي
أنا أخطأت في ال nearest neighbors
«nearest neighbours» صح الصح الـ «spelling» صح
«EG» «EI» «GH» «D» «O» «R» «S»
ليش؟
ممكن عشان أنا حطيت الـ alias name فوق عشان
حطيت الـ alias name عشان حطيت الـ alias name لأن
الـ alias name بدله لكن لو أنا شهيت هذا وعلّجت
هذه
مش هيكون في خطأ فممكن
أنا أستخدم هاي أو هاي بحسب الحالة اللي موجودة
عليها تمام، فالـ mode أصبح جاهز يتعرّف على الـ
trend data أو الـ trend set اللي أنا بدي أشتغل
عليها وهي بطبيعة الحالة مجسومة للـ tribunes وطبعاً
الخطوة التالية أنا عمال بدي أروح أعمل أو بدي أشوف
ال majors إيش ممكن يسوي ليهالـ Element اللي موجود
أو الـ Model اللي أنا أنشرته لكن عشان أنا أنشق الـ
Model جمال الخير أو بدي أجرب الـ Model خليني أشوف
أو أخد عينة من الـ Data اللي موجودة عندها في موضوع
من
الـ Data Set بشكل عام أنا بدي أروح و أقول له أنا
طبعاً أول هيكون الأول استخدام للـ Numpy اللي
موجودة فوق هروح أقوله T1هذه الـ array مكوّنة من
مجموعة أرقام وليكن
على سبيل المثال الصف الأول وهذه ال class موجودة
هنا
الـ Ctrl V التابس هذه بدي استبدلها بـ Comma
طبعًا، يا عزيزي، في شغل مهم لازم نقولها الآن إنه
مش ضروري الـ Prediction دائمًا يعني ماحدش بيقول
الـ Prediction بيكون صحيح أو بيكون حقيقية 100%
لازم يكون في أخطاء عندي دائمًا أو في معظم الأحيان
يكون في عندك أخطاء وكل ما اكتمل أو كل ما كانت ال
Prediction تبعت ال score تبعته أعلى بيكون كويسة
Doc Re-Shape كله اعتمد المصفوفة هذه على إيها واحد
سالب واحدوطبعاً هاي ال target هحط هنا target equal
one وخلّيني أنا أنسخ هذه هيك Ctrl V وبدأ أجي على
ال raw اللي رقمه خمسة أنسخه وال target تبعته صفر
هذا بدي أسميه T5
بنفس الكلام الـ
caps اللي عندي بكمس عشان تتحول كيما اللي عندي لاش
لمصفوفة تمام ننبغي نفس العدد
تمام، ليس مشكلة لان عندما انا اعمل train الـ model
اللي انا انشأته model.k-neighbors لديه method
اسمها model.k-neighbors انا هايه ال model تبعي KNN
underscore model.k-neighbors
ولا مين؟ وبديله مين؟ وبديله ال test element اللي
انا بدي افحصه وليكن T1 كمه ومع عدد عناصر الجوار
خمسة عدد عناصر الجوار خمسة بتحس في لحظة من اللحظات
ان ال K الخمسة اللي انا عنها ماالهاش علاقة هذه ال
method اللي موجود خليني اشوف و اروح طبعا هذه ال
method بترجعلي two vectorsالفكتور الأول يمثل الـ
distances كما
والفكتور التاني ال index تمام؟ ال index أو ال
indices نفس المصطلحات indices لمن؟
لـ Indices
للـ Raw اللي هي صاحبة أقصر مسافة يعني الـ
Cannibals هدول بيروح بيجيبلي أقرب خمسة للـ Element
لـ T1 أقرب خمسة لـ T1 وبما أنه المفروض T1 يتمثل
الـ Raw الأول في ال data set اللي عندي فهيروح
يقوللي ال index رقم Zero او ال index رقم Zero هكون
هذا ال distance تبعك صفر وهجيبلي ال index في
مصفوفة تانية أنا الآن هروح أقولله eventخلّينا
بنشوفها في مجال آخر هيـRun الآن المفروض تم التنفيذ
هأخد كود جديد وبدي أروح أقبع الـDistances
لاحظوا يا جماعة الخير، صفر، عشرة، خمسة و خمسين،
تسعة و عشرة، تسعة و عشرة، عشرين، عشرة
و عشرة، عشرة و عشرة، عشرة و عشرة، عشرة و عشرة،
عشرة و عشرة، عشرة و عشرة، عشرة و عشرة، عشرة و
عشرة، عشرة و عشرة، عشرة و عشرة، عشرة و عشرة، عشرة
و عشرة، عشرة و عشرة، عشرة و عشرة، عشرة و عشرة،
عشرة و عشرة، عشرة و عشرة، عشرة و عشرة، عشرة و
عشرة، عشرة و عشرة، عشرة و عشرة، عشرة و عشرةهذه أو
أقرب distance لأنه بيرتب ليهم ترتيب تساعدي حسب
الأقرب فالأقرب، طيب، الآن إذا أنا بدي أشوف ال
indexes تبع العناصر اللي موجودة عندها أو بدي أشوف
ال target تبع ال indices اللي موجودة عندها، ممكن
أنا أروح أقول له target of
I from
الـ I موجودة أين؟ أو عفوًا، for الـ I for
I M، ال indices أنا
هذه مصفوفة برضه من بعدي، فاروح أقوله بعد أيام،
فإشرح
Target غلط طبعاً
هان لما كنت بحاول أن أطبع الـ Element بقول لي إن
هذا عبارة عن object طب ال object أنا بدي أجيب ال
contents تبعته أو محتوى ال object اللي عندي هان
فهينطبعته بالشكل اللي موجود عندي هان جلبناه على
السبعة اللي موجودات فوقالـ Indices تبعتهم أو الـ
Classes بناءً على الـ Indexes اللي موجود عندها
يعني احنا اتفقنا ال Indices هي عبارة عن ال Index
تبعت ال Train Test أو الـ X-Train القريبة من أو
الأقرب لـ T1فكان صفر و صفر وهذه الـ Label سبعتهم
لان انا بدي اعمل voting هروح اعد انا هدول هي واحد
اتنين تلاتة اربعة خمسة خمسة من سبعة Zero و اتنين
من سبعة one معناته ان ال class اللي موجود عندي هنا
سبعة طب لو انا بدي اعيد التجربة هي لخمسة وهي run
السلة البولة اللي بعديهاوهي الـ cell اللي بعديها
فجالك إنه الآن برضه 00 بس القيم اللي عندي فوق
اختلفت مش قضية لإن هي في الآخر ال values اللي
عنديها صارتان طب لو أنا فكرت إنه أغير في ال values
اللي عنديها حضر أروح أعمل run عشان أخدها، okay هي
خليني أقول هنا 30، هي run، لاحظوا ال distance
اختلافها؟تختلفت الـ distance كلياً الآن والأخير هي
run وهيصار في عندي تلاتة one وأربعة zero فهو في
الآخر هيعمله ال classification على أنه zero،
ممتاز، لكن هذا برضه مش هو الشغل اللي احنا فعلياً
محتاجينه، بس نحط بعض ال comments هنا
Print target of
the most of
the nearest neighbors
or
«الأزدهار» «الأزدهار»
الآن سأنتقل لجزئية أكتر أهمية عشان تتكلم عنها
Classification عشان أتشتغل على Classification من
نفس الـ Library «High from Escalar Neighbors»
«Import» في عندي الـ «K nearest neighbor» أو الـ
«K neighbors classifier»
هاجهان from K
نفس الكلام السابق بس الأن بدي أسميه KMN underscore
classifier equal الـ model اللي موجود عندي هنا
number of neighbors
يكون الخمسة أو سبعة مش قطيع كتير زي ما حكينا،
المهم أنا أختارها بعناية للبرنامج وحين انتوا في
الآخر مطلوب منكوا إذا اختارت الـK فتقولي ليش
اعتمدت على الـK هذه؟ يعني انت مطلوب تجرب في الواجب
مرة و كنتين و تلاتة، K7، K15، K20، إذا اختار K
مناسبة بيقولك بحيث أنها تديك أفضل accuracy قدر
المستطاع اللي موجودطبعاً في مقلوب منكم تقرير مع
الواجب هذا بحيث أنه انتوا تحددوا كل بساطة أو
تحددوا بالتفصيل انت ايش سويت و ايش النتائج اللي
اشتغلت عليها و النتائج اللي حصلت عليها طيب الآن
هذا ال model KMN underscore classifier بيحتاج انه
اعمله fit وعملية ال fit زي ما قلنا ال extremeوالـ
Y-train بقى زودوا فيهم ممتاز بالنسبة لي هيكاد
استدعاء الـ classifier وتجهيزه وهي أنا الـ using
the
nearest neighbor classifier as classification
model تمام
من عمل train بشكل صحيح لـ classifier اللي موجود
عندي ممتاز، طب لو أنا الآن اذا ال classifier تم
إنش أوي بدا انتقل لمرحلة prediction خد بحيث انه
بده اعمل test test دي اللي انا سميته knn
underscore classifier using
الـ X test والـ
Y test والآن في عندي مثلًا في الـ KNN underscore
model عفوًا الـ classifier dot predict method أو
الـ model اللي عندي dot predictالـ Prediction
بتاخد الـ X-Train و Y-Test وبترجعلي الـ
Y-Predict
الـ Target اللي هي الموجودة عندها بمجرد ذلك، دعوني
أقول له اطبع ليها Y-Predict كنت أتأكد أن الأمور
تمام، وعمل Prediction تاكس
تو Positional Argument but three were given Space
أنا المفروض أدّي الـ text الـ attributes وهو بده
يعمل prediction أنا آسف على الخطأ هذا، الآن هي الـ
predicted labels اللي موجودة عنديأو كأنا فكرت حالي
وصلت لمراحة الـ Evaluation سمحوني، هي العناصر اللي
موجودة عندها هذه عبارة عن كلية Predicted Labels
Predicted Labels زمين للـ X Test اللي موجودة وين
الـ Label الحقيقي تبعها موجود؟ الـ Label الحقيقي
موجود في الـ Y Train أو في الـ Y Test هاي طيب،
الآن عشان أنا أبدأ أقارن خليني أول حاجة نتعرف على
الـ Confusion Matrix اللي موجودة عندهاوهنا في عندي
الـ classification model evaluation هنبدأ
الآن الان from ال ASCII layer import matrix
الآن بدي أجيب الـ Matrix، إيش الـ Matrix جامعة
الخيار؟ تحتوي أنه من خلالها أنا ممكن أنشأ الـ
confusion matrix، أحسب الـ accuracy، أحسب ال
precision، أحسب ال recall، أحسب ال أثمجة، كل هذه
لدى ال attribute، عفوا، للكاسيفير اللي موجود
عندها، وخليني أنا أبدأ مع ال confusion matrix،
الـ M الـ CM متر ايقال
هنا كل الـ evaluation functions اللي موجودة عندنا
هتاخد مني شغلتين هتاخد مني الـ y test اللي هو ال
label الحقيقي والي predicted أو الـ y predicted
الـ y predict وهي
بدي أروح أقوله اطبع ليه ال matrix اللي عندنااللي
هي الـ Confusion Matrix الـ Test Set بيتك حجمها
هيهم المجموع العناصر الموجودة 120، 25، True
Positive، True Negative، False Positive، False
Negative، False Positive، False Negative بس إيش ال
classes اللي موجودة عندي يا جماعة الخير؟ ال
classes يا أخواننا و يا أخواتي بيكونوا تنتبهوا
بشكل كويسلأنه أنا ما حدد لهوش إيش ال classes فإيش
هو بياخد مباشرة بيروح بيعتمد على الآن أول ما قرأت
data set أول ما قرأت data set إيش أول class واجهه؟
طبعاً أنا بتكلم في ال test set هذا لأن أول ما
زودته، زودته غنين في ال Y-predict أول element في
ال Y-test
كان واحد، فخلاص، بيعتبر أنه هذا للـ Class الأول،
تمام؟ وهذا للClass الثاني، طبعاً هذه العناصر
معناته أنها الـ confusion matrix ومن خلالها أنا
بنطلق و بحسب كل حاجة، طب إذا أنا بدأ أحسب ال
accuracy الآن،
اذكروا ال accuracy كانت إيش بتساوي؟ ال true
positive زائد ال true negative على كل العناصر
المجموعة هنا
سأقوم بإعادة الـ Accuracy ACC متركز تساوي متركز
تساوي متركز تساوي متركز تساوي متركز تساوي متركز
تساوي متهو الـ Accuracy للـ Model اللي موجود انك
هان Matrix dot مش underscore جالي
72.27 ممتاز، بدي أنتقل للسلة اللي بعدها لو أنا بدي
أحسب ال F major score أو ال precision ال first
class اللي موجود عندي هان
بنفس الكيفية اللي موجودة عندي هان بدي أسميها
precision equal matrix dot precision underscore
score وبدي أعطيه المجموعتين ولمّا انا بدي أقوله
pre قطعليه لا إله إلا الله
بتحملوني شو هساولكم يعني 65 اللي بعدها احسن من ال
recallفالأمور كلها بالشكل هذا اللي هتتجمع طبعاً
لاحظوا الـ Acrylic Model ككل الـ Precision الـ
First Class الـ Recall الـ First Class هيك هيك هيك
هيك هيك هيك هيك هيك هيك هيك هيك هيك هيك هيك هيك
هيك هيك هيك
بارضه، رأيي صارت بدخلعة ودنيا جماعة الخير No
attribute
recall underscore score أو
الـ F major
F1 equal matrix F1
underscore F1
أخر شغلة، أنا ممكن أجيب كل الـValues مع بعضها من
خلال شغلة نسميها الـClassification Report
الـClassification Report ممكن يساعدني بشكل كتير
بحيث أنه أنا محتاجش أن أكتب كل حاجة مع بعضها
Classification
Report
أو الـ CLS underscore report بيساوي matrix dot
classification
underscore report بدي أدّيله الـ method أو عفوًا
الـ to function أو أزوده بالـ predicted بالـ to
label والـ predicted label وحروح أقول له هانطبع
ليه ال classifier
«Reclassification Report» وهنا جاب لي الرابورت
الكامل بدأ بالـ «Precision» والـ «Recall» والـ «F
Score» أي القيم التلاتة اللي موجودة عندها للـ
«Class» طبعاً لل «Class Zero» لأن الـ «Record»
لازم يبين كل القيم لازم يبين كل حاجة الآن الـ
«Recall» هيالـ Precision
تلاتة و تمانين الـ Recall تسعة و سمعين الـ F-score
والـ Accuracy وينها؟ ليش هي كتر داخلات مع بعض؟
الـ Accuracy بشكل عام هي 73 لماذا
72.72؟ هنا في الـ robot عمل الـ Roundation أو
القيم اللي موجودة عندك هنا فهي فعليا 72.72 فبعمل
الـ Roundation الآن الـ Recall الـ Zero زي ما قلنا
6.7 الـ Precision والـ Recall الـ Class الأول
هي ال class number one لما
قلت له احسب ال precision جالي 66هذه هي تقريبًا الـ
55.كذا الـ Z الـ 56 الـ recall اللي هي 55.8 بعملها
تقريبًا ال F score اللي كانت بتمثل الـ 60 تمام؟
وال support لل values اللي موجودة عندها فهي في ال
report هذا أنا جيبت كل ال values بالنسبة لي لمرة
واحدة، بتمنى يكون الفيديو هذا يوضحلكم فعليًا إيش
أنا محتاج في ال classification طبعًا هذا الكلام
بده يتطبق مع كل data set أو مع كل classification
model وكل classification model فيه خاصية معينة،
يمكن يكون الشغل الوحيد الآن في الاختلاف عندكم اللي
هي استدعاء ال classifierباريخ الاستفعال الـ
Classifier بينما الـ Fit حتظل ثابت للجميع، الـ
Predict حتظل ثابت للجميع، والـ Measurement حتظل
موجودة لكل العناع، لكل ال Classifiers بنفس
الكيفية، أنا هيك خلصت، بتمنى إن شاء الله تعالى
بأتمنى على الله تبارك وتعالى أن أكون فعليًا وفقة
اللي لان خلال التسجيل السابق أن أنا أوضحكم موضوع
الـ Classification ومن خلاله استخدمت الـ Canary
Snapper واستخدمت الـ Kaggle كـ Tool مختلفة عن الـ
IPython في الـ Local Machine الموجودة عندي إذا في
أي سؤال حضروله لـ Next Sessionالـ Online Session
of the Discussion أعلى وعسى أننا نقدر أن نتوفيك
دائمًا وأبداً والسلام عليكم ورحمة الله وبركاته