مرحبًا بك في هذا البرنامج التعليمي حول مجموعة بيانات MNIST. في هذا البرنامج التعليمي، سنتعرف على ما هي مجموعة بيانات MNIST، كيفية استيرادها في لغة Python، وكيفية رسمها باستخدام مكتبة matplotlib.
ما هي مجموعة بيانات MNIST؟
مجموعة بيانات MNIST هي مجموعة كبيرة من الأرقام المكتوبة يدويًا. إنها مجموعة بيانات شهيرة جدًا في مجال معالجة الصور. غالبًا ما تُستخدم لاختبار خوارزميات التعلم الآلي.
MNIST هو اختصار لـ قاعدة بيانات المعهد الوطني للمعايير والتكنولوجيا المعدلة.
تحتوي مجموعة بيانات MNIST على مجموعة من 70،000 صورة بحجم 28 × 28 لأرقام مكتوبة يدويًا من 0 إلى 9.
تم تقسيم المجموعة بيانات بالفعل إلى مجموعات تدريب واختبار. سنرى ذلك لاحقًا في هذا البرنامج التعليمي.
لمزيد من المعلومات حول MNIST، يمكنك الرجوع إلى صفحتها على ويكيبيديا. سنقوم باستيراد المجموعة بيانات من Keras.
لنبدأ بتحميل المجموعة بيانات في دفتر البرمجة الخاص بنا في Python.
تحميل MNIST من Keras
سنقوم أولاً بتحميل مجموعة البيانات MNIST من وحدة Keras.
يمكننا القيام بذلك باستخدام السطر التالي من الشيفرة:
from keras.datasets import mnist
الآن سنقوم بتحميل مجموعات التدريب والاختبار في متغيرات منفصلة.
(train_X, train_y), (test_X, test_y) = mnist.load_data()
لنكتشف كم عدد الصور في مجموعات التدريب والاختبار. بمعانٍ أخرى ، دعونا نحاول معرفة نسبة التقسيم لهذه المجموعة من البيانات.
للمزيد حول نسبة التقسيم ، راجع هذا البرنامج التعليمي حول كيفية تقسيم البيانات إلى مجموعات تدريب واختبار.
للعثور على نسبة التقسيم ، سنقوم بطباعة أشكال جميع الفيكتورات.
print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test: ' + str(test_X.shape))
print('Y_test: ' + str(test_y.shape))
الناتج:
X_train: (60000, 28, 28)
Y_train: (60000,)
X_test: (10000, 28, 28)
Y_test: (10000,)
يمكننا رؤية أن هناك 60 ألف صورة في مجموعة التدريب و 10 ألف صورة في مجموعة الاختبار.
بُعد متغير التدريب هو (60000، 28، 28)، وذلك لأن هناك 60,000 صورة بدرجة اللون الرمادي بالأبعاد 28×28.
الشيفرة الكاملة لتحميل مجموعة البيانات MNIST
إليك الشيفرة الكاملة من هذا القسم:
from keras.datasets import mnist
تحميل مجموعة البيانات
(train_X, train_y), (test_X, test_y) = mnist.load_data()
طباعة أشكال الفيكتورات
print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test: ' + str(test_X.shape))
print('Y_test: ' + str(test_y.shape))
دعونا نتعلم كيف نرسم هذه المجموعة من البيانات.
رسم مجموعة بيانات MNIST باستخدام matplotlib
من الفكرة الجيدة دائمًا رسم مجموعة البيانات التي تعمل عليها. ستمنحك فكرة جيدة عن نوع البيانات التي تتعامل معها.
كعالم بيانات مسؤول، يجب أن يكون من واجبك دائمًا رسم مجموعة البيانات كخطوة أساسية.
لرسم مجموعة البيانات، استخدم الكود التالي:
from matplotlib import pyplot
for i in range(9):
pyplot.subplot(330 + 1 + i)
pyplot.imshow(train_X[i], cmap=pyplot.get_cmap('gray'))
pyplot.show()
الناتج:

هذا ما يبدو عليه بياناتنا!
تخيل 70,000 صورة مثل هذه الصور. هذا ما يحتويه مجموعة البيانات. كونها بهذه الكثافة هو واحد من الأسباب التي جعلت مجموعة البيانات شائعة.
مشكلة التعرف على الخط اليدوي بغض النظر عن مدى تفاهتها قديمة الآن. كان هناك حاجة إلى نسخة أكثر تحديًا من مجموعة بيانات MNSIT التي يمكن أن تعمل بديلًا لها.
هل هناك نسخة أكثر تحديًا من مجموعة بيانات MNIST متاحة؟
نعم، هناك. مجموعة بيانات Fashion MNIST.
مجموعة بيانات Fashion MNIST
مجموعة بيانات Fashion MNIST هي بديل أكثر تحدياً لمجموعة بيانات MNIST القديمة.
تحتوي هذه المجموعة على 70,000 صورة صغيرة مربعة بالأبعاد 28×28 بكسل باللون الرمادي لـ 10 أنواع من الملابس، مثل الأحذية والتيشيرتات والفساتين، وأكثر من ذلك.
لمعرفة كيفية استيراد ورسم مجموعة بيانات Fashion MNIST، اقرأ هذا البرنامج التعليمي.
الاستنتاج
كان هذا البرنامج التعليمي حول استيراد ورسم مجموعة بيانات MNIST في لغة Python. ناقشنا أيضًا بديلًا أكثر تحديًا لهذه المجموعة، وهي مجموعة Fashion MNIST. آمل أن تكون استمتعت بالتعلم معنا!
Source:
https://www.digitalocean.com/community/tutorials/mnist-dataset-in-python