Menu
CoddyTech
flag Ar iconالعربيةdown icon

المكوّنات بوصفها أنماطًا

جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 30 من 51.

ما الذي فحصه PCA؟ يتكوّن كل مكوّن من 64 وزنًا، وزن واحد لكل بكسل، ويحتوي components_ على صف واحد لكل مكوّن:

pca = PCA(n_components=4).fit(X)
print(pca.components_.shape)

يطبع هذا (4, 64). أعد تشكيل صف إلى 8 في 8، وسيصبح صورة. cmap="gray_r" يعني التدرج الرمادي المعكوس: الأوزان الكبيرة داكنة، والسالبة منها فاتحة:

ax.imshow(pca.components_[0].reshape(8, 8), cmap="gray_r")

المكونات الأربعة الأولى للأرقام على هيئة صور بقياس 8 في 8، رمادية عندما يكون الوزن قريبًا من الصفر، داكنة عندما يكون كبيرًا، وفاتحة عندما يكون سالبًا

المكوّن 1 داكن في المواضع التي تحتوي فيها الرقمين 4 و6 على حبر، لذا يقعان في الجانب الأيمن من الخريطة. تحصل عملية المسح على درجة عالية عندما يقع حبرها على وحدات بكسل داكنة.

challenge icon

التحدي

متوسط

يريد معلم الخط رؤية الطرق التي يكتب بها الناس الرقم الواحد. يقرأ البرنامج الرقم، ويحتفظ البرنامج الابتدائي بمسوحه في X.

  1. طبّق PCA باستخدام 3 مكونات على X.
  2. ارسم المكوّن i على axs[i] على هيئة صورة بحجم 8 في 8، باستخدام cmap="gray_r"، مع عنوان من Component 1 إلى Component 3.
  3. اعرض المخطط.

بالنسبة إلى الرقم 2، يرسم هذا الشكل. ثم يصف Coddy لوحاتك:

ثلاث صور للمكوّنات بحجم 8 في 8 للرقم 2 المكتوب بخط اليد، بعناوين Component 1 وComponent 2 وComponent 3، ولكل منها ضربات داكنة وفاتحة خاصة بها

جرّب بنفسك

import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA

# كل صورة ممسوحة ضوئيًا لرقم واحد يُقرأ من الإدخال: 64 بكسل لكل صف
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]

# لا تغيّر السطر أدناه
fig, axs = plt.subplots(1, 3)

# اكتب شيفرتك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم غير الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت