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

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

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

الدرس: معالجة البيانات الصورية للتعلم الآلي

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

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

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

نوع المحتوى: درس تعليمي

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

📝 ملخص الصفحة

تتناول هذه الصفحة الخطوات الأساسية لتحويل البيانات الصورية إلى تنسيق مناسب لخوارزميات رؤية الحاسب والتعلم الآلي. يتم تحويل الصور المعدلة في الحجم وقوائم العناوين إلى مصفوفات NumPy باستخدام المتغيرات X وY لتمثيل البيانات والعناوين على التوالي، حيث يوضح شكل مجموعة البيانات X احتوائها على 1720 صورة بتنسيق RGB بأبعاد 100 × 100 بكسل.

يتم تقسيم مجموعة البيانات إلى مجموعات تدريب واختبار باستخدام دالة train_test_split من مكتبة sklearn، مع تحديد نسبة 20% للاختبار وتفعيل إعادة الترتيب العشوائي لضمان عدم تجميع الصور من نفس المجلد معاً، مما قد يضلل الخوارزميات.

تسلط الصفحة الضوء على أهمية إعادة ترتيب البيانات عشوائياً قبل التحليل، وتشير إلى أن التنسيق ثلاثي الأبعاد للبيانات الصورية يتطلب معالجة إضافية مقارنة بالتنسيق أحادي البعد المستخدم في مهام تعلم الآلة الأخرى، مما يبرز الحاجة إلى هندسة الخصائص أو التحويلات المناسبة.

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

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

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

تتمثل الخطوة التالية في تحويل resized_images (الصور_المعدل حجمها) وقوائم العناوين إلى مصفوفات NumPy (نمباي) حسب ما تتوقعه العديد من خوارزميات رؤية الحاسب. يستخدم المقطع البرمجي التالي أيضاً المتغيرات (X, Y) التي تُستخدم في العادة لتمثيل البيانات والعناوين على التوالي في مهام التعلم الموجه.

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

import numpy as np X = np.array(resized_images) Y = np.array(labels)

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

X.shape

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

(1720, 100, 100, 3)

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

يوضح شكل مجموعة بيانات X النهائية اشتمالها على ألف وسبعمئة وعشرين صورة بتنسيق RGB، بناءً على عدد القنوات، وجميعها بأبعاد 100 × 100 (أي عشرة آلاف بكسل). أخيراً، يمكن استخدام دالة ()train_test_split من مكتبة sklearn لتقسيم مجموعة البيانات إلى مجموعة تدريب ومجموعة اختبار.

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

from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, Y, test_size = 0.20, # uses 20% of the data for testing shuffle = True, # to randomly shuffle the data. random_state = 42, # to ensure that data is always shuffled in the same way )

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

نظراً لأن مجلدات صور الحيوانات حُمّلت مجلداً تلو الآخر، فإن الصور من كل مجلد جُمّعت معاً في القوائم السابقة، وقد يؤدي ذلك إلى تضليل العديد من الخوارزميات، خاصة في مجال رؤية الحاسب. وضبط shuffle = True (تفعيل إعادة الترتيب) في المقطع البرمجي السابق يحل هذه المشكلة. وبوجه عام، من الجيد إعادة ترتيب البيانات عشوائياً قبل إجراء أي تحليل.

Prediction without Feature Engineering

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

التنبؤ بدون هندسة الخصائص

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

على الرغم من أن الخطوات المتبعة في القسم السابق قد حوّلت البيانات إلى تنسيق رقمي، إلا أنه ليس بالتنسيق القياسي أحادي البعد الذي تتوقعه العديد من خوارزميات تعلم الآلة. على سبيل المثال، وصفت الوحدة الثالثة كيف يجب تحويل كل مستند إلى متجه رقمي أحادي البعد قبل استخدام البيانات في تدريب نماذج تعلم الآلة واختبارها، بينما تحتوي كل نقطة بيانات في مجموعة البيانات المرئية هنا على تنسيق ثلاثي الأبعاد.

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

X_train[0].shape

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

(100, 100, 3)

نوع: METADATA

204

نوع: METADATA

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

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

تتمثل الخطوة التالية في تحويل resized_images (الصور_المعدل حجمها) وقوائم العناوين إلى مصفوفات NumPy (نمباي) حسب ما تتوقعه العديد من خوارزميات رؤية الحاسب. يستخدم المقطع البرمجي التالي أيضاً المتغيرات (X, Y) التي تُستخدم في العادة لتمثيل البيانات والعناوين على التوالي في مهام التعلم الموجه.import numpy as np X = np.array(resized_images) Y = np.array(labels)X.shape(1720, 100, 100, 3)يوضح شكل مجموعة بيانات X النهائية اشتمالها على ألف وسبعمئة وعشرين صورة بتنسيق RGB، بناءً على عدد القنوات، وجميعها بأبعاد 100 × 100 (أي عشرة آلاف بكسل). أخيراً، يمكن استخدام دالة ()train_test_split من مكتبة sklearn لتقسيم مجموعة البيانات إلى مجموعة تدريب ومجموعة اختبار.from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, Y, test_size = 0.20, # uses 20% of the data for testing shuffle = True, # to randomly shuffle the data. random_state = 42, # to ensure that data is always shuffled in the same way )نظراً لأن مجلدات صور الحيوانات حُمّلت مجلداً تلو الآخر، فإن الصور من كل مجلد جُمّعت معاً في القوائم السابقة، وقد يؤدي ذلك إلى تضليل العديد من الخوارزميات، خاصة في مجال رؤية الحاسب. وضبط shuffle = True (تفعيل إعادة الترتيب) في المقطع البرمجي السابق يحل هذه المشكلة. وبوجه عام، من الجيد إعادة ترتيب البيانات عشوائياً قبل إجراء أي تحليل.--- SECTION: Prediction without Feature Engineering --- التنبؤ بدون هندسة الخصائص على الرغم من أن الخطوات المتبعة في القسم السابق قد حوّلت البيانات إلى تنسيق رقمي، إلا أنه ليس بالتنسيق القياسي أحادي البعد الذي تتوقعه العديد من خوارزميات تعلم الآلة. على سبيل المثال، وصفت الوحدة الثالثة كيف يجب تحويل كل مستند إلى متجه رقمي أحادي البعد قبل استخدام البيانات في تدريب نماذج تعلم الآلة واختبارها، بينما تحتوي كل نقطة بيانات في مجموعة البيانات المرئية هنا على تنسيق ثلاثي الأبعاد.X_train[0].shape(100, 100, 3)2025 - 1447

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

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

ما هو الغرض من تحويل الصور والعناوين إلى مصفوفات NumPy في مجال رؤية الحاسب؟

الإجابة: يتم تحويل الصور والعناوين إلى مصفوفات NumPy لأن العديد من خوارزميات رؤية الحاسب تتوقع البيانات بهذا التنسيق للمعالجة والتحليل.

الشرح: مكتبات مثل NumPy توفر هياكل بيانات فعالة وواجهات برمجية قوية لإجراء العمليات الحسابية على المصفوفات، وهو أمر ضروري لمعالجة الصور وبيانات التعلم الآلي.

تلميح: ما هو نوع البيانات الذي تفضله معظم المكتبات الرياضية والعلمية في بايثون؟

ماذا تمثل المتغيرات X و Y في سياق تجهيز البيانات لمهام التعلم الموجه؟

الإجابة: في مهام التعلم الموجه، يمثل المتغير X البيانات المدخلة (مثل الصور)، بينما يمثل المتغير Y العناوين أو المخرجات المستهدفة المرتبطة بهذه البيانات.

الشرح: يُستخدم اصطلاحاً المتغير X لتمثيل البيانات أو الخصائص (features) والمتغير Y لتمثيل الملصقات أو الأهداف (labels) في نماذج التعلم الآلي.

تلميح: في التعلم الموجه، نمثل عادةً المدخلات بالمقابلة للمخرجات. ما هما الحرفان الشائع استخدامهما لهذا الغرض؟

اشرح معنى شكل مجموعة البيانات X النهائية (1720, 100, 100, 3).

الإجابة: يشير شكل مجموعة البيانات X البالغ (1720, 100, 100, 3) إلى أنها تحتوي على 1720 صورة، كل صورة بأبعاد 100 بكسل عرضاً و 100 بكسل طولاً، مع 3 قنوات لونية (RGB) لكل بكسل.

الشرح: عادةً ما يكون شكل بيانات الصور بتنسيق (عدد_الصور, الارتفاع, العرض, عدد_القنوات). هنا، 1720 هو عدد الصور، 100x100 هي أبعاد كل صورة، و 3 تمثل قنوات الألوان (الأحمر، الأخضر، الأزرق).

تلميح: فكر في كل رقم في الشكل (Shape) وما يمثله بالنسبة للصورة: عدد الصور، الأبعاد، والقنوات اللونية.

ما هو الغرض من استخدام دالة `train_test_split` من مكتبة `sklearn`؟

الإجابة: الغرض من استخدام دالة `train_test_split` هو تقسيم مجموعة البيانات بشكل عشوائي إلى مجموعتين: مجموعة للتدريب (training set) ومجموعة للاختبار (testing set)، وذلك لتقييم أداء النموذج.

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

تلميح: لماذا نحتاج لفصل البيانات إلى مجموعتين عند بناء نموذج تعلم آلي؟

لماذا يُعتبر تفعيل `shuffle = True` في دالة `train_test_split` مهماً، خاصة إذا تم تحميل الصور من مجلدات منفصلة؟

الإجابة: تفعيل `shuffle = True` مهم لأنه يضمن إعادة ترتيب البيانات عشوائياً. هذا يمنع الخوارزميات من التحيز الناتج عن تجميع الصور من نفس الفئة أو المصدر معاً، مما يؤدي إلى تدريب وتقييم أكثر فعالية.

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

تلميح: ماذا يمكن أن يحدث إذا كانت جميع صور فئة معينة تأتي متتالية في مجموعة البيانات؟ كيف يؤثر ذلك على عملية التعلم؟