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

الضغط وإعادة البناء

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

درجات مكوّنات المسح هي وصفة: ابدأ من متوسط المسح، ثم أضف كل نمط مضروبًا في درجته. يتبع inverse_transform الوصفة للعودة إلى 64 بكسلًا:

pca = PCA(n_components=10).fit(X)
codes = pca.transform(X)                # 10 أرقام لكل مسح ضوئي
rebuilt = pca.inverse_transform(codes)  # 64 بكسل مجددًا

إليك ثلاث عمليات مسح أُعيد بناؤها باستخدام أعداد متزايدة من الأرقام:

الرقم 0 والرقم 3 والرقم 5، أُعيد بناء كل منها باستخدام 2 و5 و10 و20 رقمًا، ثم المسح الحقيقي. باستخدام رقمين، تبدو الأرقام الثلاثة كلها ضبابية متشابهة؛ وباستخدام 20 رقمًا، يصبح كل رقم واضحًا

تُنتج أعداد قليلة صورة ضبابية للرقم المتوسط؛ ويُعيد كل مكوّن يُضاف التفاصيل. وتبدو عشرون عددًا واضحة بالفعل بدلًا من 64.

challenge icon

التحدي

متوسط

يرسل قلم ذكي كل رقم على هيئة k من أرقام PCA، يقرأها البرنامج. ما الذي يُفقد؟

  1. لائم PCA باستخدام k مكوّنات على X. اضغط جميع المسحات، ثم أعد بناءها في rebuilt.
  2. اطبع الأسطر أدناه؛ الخطأ هو متوسط الفرق المطلق عن X.
  3. ارسم أحدث مسحة، X[-1]، على axs[0] وإعادة بناءها على axs[1]، وكلاهما باستخدام gray_r. اعرض النتيجة.

بالنسبة إلى 7:

Sent: 7 numbers per scan instead of 64
Average pixel error: 1.739

ويرسم هذا. ثم يصف Coddy لوحاتك:

صورتان بقياس 8 في 8 جنبًا إلى جنب: أحدث مسحة للقلم، وهي 8، وإعادة بنائها من 7 أرقام، وهي 8 أكثر ضبابية

جرّب بنفسك

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

# 1,797 صورة ممسوحة ضوئيًا، كل منها بدقة 64 بكسل؛ أحدث صورة ممسوحة ضوئيًا للقلم هي الصف الأخير
digits = load_digits()
X = digits.data
k = int(input())

# لا تغيّر الأسطر أدناه
fig, axs = plt.subplots(1, 2)
axs[0].set_title("Scan")
axs[1].set_title(f"Rebuilt from {k} numbers")

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

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

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

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