تسطيح الصور وتصنيفها باستخدام مصنف بايز الساذج - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تطبيق خوارزميات التعلم الآلي على بيانات الصور المسطحة

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: example

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تشرح هذه الصفحة كيفية تحويل الصور إلى متجهات رقمية مسطحة باستخدام Python وNumPy، حيث يتم تسطيح كل صورة إلى متجه أحادي البعد بحجم 30,000 قيمة (3 × 100 × 100). هذا التنسيق المسطح يسمح باستخدام خوارزميات تصنيف قياسية دون الحاجة إلى هندسة خصائص إضافية.

يتم توضيح تطبيق مصنف بايز الساذج (Naive Bayes) على البيانات المسطحة باستخدام مكتبة scikit-learn، حيث يتم تدريب النموذج على بيانات التدريب واختباره على بيانات الاختبار. تظهر النتائج دقة تصنيف تبلغ حوالي 36%، مما يشير إلى أن النموذج قد يحتاج إلى تحسينات.

يتم عرض مصفوفة الدقة (Confusion Matrix) لتوفير رؤية إضافية حول أداء النموذج، بما في ذلك النسب المئوية للأخطاء في التصنيف. هذا يساعد في تحليل أداء الخوارزمية وتحديد مجالات التحسين لتحسين الدقة في التطبيقات العملية.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

نوع: محتوى تعليمي

لذلك يمكن استخدام المقطع البرمجي التالي لتسطيح (Flatten) كل صورة في متجه أحادي البعد، فكل صورة الآن ممثلة كمتجه رقمي مسطح قيمته 3 × 100 × 100 = 30,000 قيمة.

نوع: محتوى تعليمي

X_train_flat = np.array([img.flatten() for img in X_train]) X_test_flat = np.array([img.flatten() for img in X_test]) X_train_flat[0].shape

نوع: محتوى تعليمي

(30000,)

نوع: محتوى تعليمي

يمكن استخدام هذا التنسيق المسطح مع أي خوارزمية تصنيف قياسية دون بذل أي جهد إضافي لهندسة خصائص تبويبة أخرى، وسيوضح القسم التالي مثالاً على هندسة الخصائص لبيانات صورة، ويستخدم المقطع البرمجي التالي مصنف بايز الساذج (Naive Bayes – NB) الذي استخدم أيضاً لتصنيف البيانات النصية في الوحدة الثالثة:

نوع: محتوى تعليمي

from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier model_MNB = MultinomialNB() model_MNB.fit(X_train_flat,y_train) # fits the model on the flat training data

نوع: محتوى تعليمي

MultinomialNB()

نوع: محتوى تعليمي

from sklearn.metrics import accuracy_score # used to measure the accuracy pred = model_MNB.predict(X_test_flat) # gets the predictions for the flat test set accuracy_score(y_test,pred)

نوع: محتوى تعليمي

0.36046511627906974

نوع: محتوى تعليمي

يعرض المقطع البرمجي التالي مصفوفة الدقة (Confusion Matrix) الخاصة بالنتائج لإعطاء رؤية إضافية:

نوع: محتوى تعليمي

%%capture !pip install scikit-plot import scikitplot

نوع: محتوى تعليمي

scikitplot.metrics.plot_confusion_matrix(y_test, # actual labels pred, # predicted labels title = "Confusion Matrix", cmap = "Purples", figsize = (10,10), x_tick_rotation = 90, normalize = True # to print percentages )

نوع: METADATA

وزارة التعليم Ministry of Education 2023 - 1447 205

📄 النص الكامل للصفحة

لذلك يمكن استخدام المقطع البرمجي التالي لتسطيح (Flatten) كل صورة في متجه أحادي البعد، فكل صورة الآن ممثلة كمتجه رقمي مسطح قيمته 3 × 100 × 100 = 30,000 قيمة.X_train_flat = np.array([img.flatten() for img in X_train]) X_test_flat = np.array([img.flatten() for img in X_test]) X_train_flat[0].shape(30000,)يمكن استخدام هذا التنسيق المسطح مع أي خوارزمية تصنيف قياسية دون بذل أي جهد إضافي لهندسة خصائص تبويبة أخرى، وسيوضح القسم التالي مثالاً على هندسة الخصائص لبيانات صورة، ويستخدم المقطع البرمجي التالي مصنف بايز الساذج (Naive Bayes – NB) الذي استخدم أيضاً لتصنيف البيانات النصية في الوحدة الثالثة:from sklearn.naive_bayes import MultinomialNB # imports the Naive Bayes Classifier model_MNB = MultinomialNB() model_MNB.fit(X_train_flat,y_train) # fits the model on the flat training data MultinomialNB()from sklearn.metrics import accuracy_score # used to measure the accuracy pred = model_MNB.predict(X_test_flat) # gets the predictions for the flat test set accuracy_score(y_test,pred)0.36046511627906974يعرض المقطع البرمجي التالي مصفوفة الدقة (Confusion Matrix) الخاصة بالنتائج لإعطاء رؤية إضافية:%%capture !pip install scikit-plot import scikitplot scikitplot.metrics.plot_confusion_matrix(y_test, # actual labels pred, # predicted labels title = "Confusion Matrix", cmap = "Purples", figsize = (10,10), x_tick_rotation = 90, normalize = True # to print percentages )2023 - 1447

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 5 بطاقة لهذه الصفحة

ما هو الغرض الرئيسي من تسطيح (Flatten) الصور في متجه أحادي البعد باستخدام المقطع البرمجي المذكور؟

الإجابة: الغرض الرئيسي هو تمثيل كل صورة كمتجه رقمي مسطح يمكن استخدامه مباشرة مع خوارزميات التصنيف القياسية دون الحاجة لهندسة خصائص إضافية.

الشرح: تسطيح الصورة يحولها من مصفوفة ثنائية الأبعاد (أو ثلاثية الأبعاد إذا كانت ملونة) إلى متجه أحادي البعد، مما يسهل إدخالها كمدخلات لمعظم نماذج التعلم الآلي التي تتوقع بيانات مدخلة بهذا الشكل.

تلميح: فكر في كيف يمكن معالجة الصور لكي تتوافق مع متطلبات العديد من خوارزميات تعلم الآلة.

ما هو عدد القيم التي يحتوي عليها المتجه المسطح لصورة أبعادها 3 × 100 × 100 بكسل؟

الإجابة: يحتوي المتجه المسطح على 30,000 قيمة.

الشرح: إذا كانت أبعاد الصورة هي الارتفاع × العرض × القنوات (للصور الملونة)، فإن العدد الإجمالي للبكسلات (أو القيم) هو حاصل ضرب هذه الأبعاد. في هذه الحالة، 100 × 100 × 3 = 30,000.

تلميح: لحساب العدد الإجمالي للقيم، قم بضرب الأبعاد الثلاثة للصورة.

ما هي خوارزمية التصنيف التي تم استخدامها كمثال لمعالجة البيانات المسطحة للصور؟

الإجابة: تم استخدام مصنف بايز الساذج (Naive Bayes – NB)، وتحديداً نموذج `MultinomialNB` من مكتبة `scikit-learn`.

الشرح: المقطع البرمجي يستورد `MultinomialNB` من `sklearn.naive_bayes` ويستخدمه لتدريب النموذج (`model_MNB.fit`) على البيانات المسطحة.

تلميح: ابحث عن اسم النموذج المحدد الذي تم استيراده واستخدامه لتدريب النموذج.

ما هو المقياس الذي تم استخدامه لتقييم أداء نموذج تصنيف الصور؟

الإجابة: تم استخدام `accuracy_score` لقياس دقة النموذج.

الشرح: الدالة `accuracy_score` من `sklearn.metrics` تقارن بين التسميات الفعلية (`y_test`) والتنبؤات التي قام بها النموذج (`pred`) وتحسب نسبة المطابقة.

تلميح: ما هي الوظيفة التي تحسب نسبة التنبؤات الصحيحة مقارنة بالإجمالي؟

ما هو الغرض من عرض مصفوفة الدقة (Confusion Matrix)؟

الإجابة: الغرض من عرض مصفوفة الدقة هو توفير رؤية إضافية حول أداء النموذج، توضح بشكل تفصيلي كيفية تصنيف النموذج لكل فئة، بما في ذلك الأخطاء (التنبؤ الخاطئ).

الشرح: مصفوفة الدقة تقدم تفاصيل حول عدد الحالات التي تم تصنيفها بشكل صحيح لكل فئة، وعدد الحالات التي تم تصنيفها بشكل خاطئ (False Positives و False Negatives)، مما يساعد على فهم نقاط ضعف النموذج.

تلميح: فكر في ماذا تعطينا معلومات إضافية تتجاوز مجرد النسبة المئوية للدقة الإجمالية.