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

اختزل باستخدام PCA

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

64 بكسلًا أكثر مما تحتاج إليه الأرقام. يمكن لـ PCA استهداف نسبة من التباين بدلًا من عدد المكوّنات:

منحنى تصاعدي لنسبة تباين الأرقام' التي تحتفظ بها أول n مكوّنات؛ يرتفع بشدة في البداية، ثم يستوي؛ ويلتقي به خط متقطع عند 90% عند 21 مكوّنًا

يحتفظ n_components=0.9 بأقل عدد من المكوّنات التي تفسّر 90%:

pca = PCA(n_components=0.9)
X_small = pca.fit_transform(X)
print(pca.n_components_, X_small.shape)

يعرض هذا 21 (1797, 21): ثلث الأرقام، ومعظم الصورة.

لا توجد أداة تحجيم هنا: تشترك كل بكسلة في وحدة واحدة، وتتراوح كثافة الحبر من 0 إلى 16. سيؤدي التحجيم إلى تضخيم بكسلات الحواف شبه الفارغة وتحويلها إلى سمات كاملة.

challenge icon

التحدي

متوسط

حان وقت تقليص الصور الممسوحة ضوئيًا. يقرأ البرنامج نسبة التباين المراد الاحتفاظ بها، مثل 0.8.

  1. اطبع عدد المكونات التي تحتاج إليها PCA لهذه النسبة في وحدات البكسل الخام، ثم في وحدات البكسل المحجّمة.
  2. احتفظ بالنسخة التي تحتاج إلى عدد أقل: اطبع اسمها وشكل بياناتها المختزلة.

لـ 0.6:

Raw pixels: 7 components
Scaled pixels: 11 components
Keep: raw pixels, shape (1797, 7)

من الآن فصاعدًا، يحتفظ المشروع بنسبة 80% من التباين.

جرّب بنفسك

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

# من Look at the Digits: 1,797 صورة ممسوحة ضوئيًا، تتكوّن كل منها من 64 بكسل، وتتراوح قيمة الحبر من 0 إلى 16
digits = load_digits()
X = digits.data
y = digits.target

# نسبة التباين المطلوب الاحتفاظ بها، مثل 0.8
share = float(input())

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

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

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

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