عن المشروع

UMAP (Uniform Manifold Approximation and Projection) هو أسلوب لتقليل الأبعاد لأغراض التصور والتضمين غير الخطي العام، وهو مُنفَّذ كحزمة بايثون باسم umap-learn. صُمِّم ليعمل مثل محوِّل scikit-learn، لذا يمكن استخدامه كبديل مباشر لـ t-SNE في خطوط المعالجة القائمة. تستند الطريقة إلى ثلاث افتراضات: أن البيانات موزَّعة بانتظام على متعدد شعب ريماني، وأن المقياس الريماني ثابت محلياً، وأن متعدد الشعب متصل محلياً. تُستخدم هذه الافتراضات لبناء تمثيل طوبولوجي ضبابي، ويُعثر على التضمين بالبحث عن إسقاط منخفض الأبعاد ذي البنية المكافئة الأقرب. الرياضيات موصوفة في ورقة ArXiv 1802.03426، مع مقدمة أوسع في مقال Nature Reviews Methods Primers. التثبيت متاح عبر conda-forge (conda install -c conda-forge umap-learn) أو PyPI (pip install umap-learn). يعتمد على scikit-learn وnumpy وscipy وnumba وtqdm وpynndescent. تشمل الإضافات الاختيارية الرسم البياني (matplotlib وdatashader وholoviews)، وParametric UMAP (TensorFlow)، وتحسينات tbb لوحدة المعالجة المركزية على x86. الاستخدام الأساسي يحاكي scikit-learn: import umap from sklearn.datasets import load_digits digits = load_digits() embedding = umap.UMAP().fit_transform(digits.data) تشمل المعاملات الرئيسية n_neighbors، الذي يتحكم في مقدار البنية المحلية مقابل الشاملة التي يتم الحفاظ عليها (عادةً 5-50، مع 10-15 كقيمة افتراضية معقولة)، وmin_dist، الذي يتحكم في مدى إحكام تجميع النقاط (0.001-0.5، مع 0.1 كقيمة افتراضية معقولة)، وmetric، الذي يحدد دالة المسافة في فضاء الإدخال. يُدعم إدخال المصفوفات المتفرقة. تشمل الفوائد الموثقة السرعة على مجموعات البيانات الكبيرة وعالية الأبعاد، والتوسع في بُعد التضمين للمعالجة المسبقة العامة، والحفاظ على بعض البنية الشاملة، ودعم المسافات غير المترية مثل جيب التمام والارتباط، والقدرة على إضافة نقاط جديدة إلى تضمين قائم عبر transform، والتقليل المُوجَّه أو شبه المُوجَّه بتمرير التسميات كـ y. تشمل الميزات التجريبية التحويل العكسي، والتضمينات غير الإقليدية مثل التضمينات الزائدية، والتضمينات مع عدم اليقين، ودعماً أولياً لإطارات البيانات. توفر الحزمة أيضاً densMAP، الذي يُفعَّل باستخدام densmap=True، والذي يعزز UMAP للحفاظ على معلومات الكثافة المحلية. يضيف densMAP معاملات مثل dens_frac وdens_lambda وdens_var_shift وoutput_dens، ويوصي بقيم n_neighbors أكبر (مثل 30). يدرِّب Parametric UMAP شبكة عصبية لتعلُّم تحويل قائم على UMAP، مما يدعم استدلالاً أسرع على البيانات غير المرئية، وتحويلات عكسية أكثر متانة، ومتغيرات التشفير التلقائي، والتصنيف شبه المُوجَّه. توفر الحزمة الفرعية umap.plot رسماً بيانياً أساسياً وتفاعلياً مع أدوات التمرير وخيارات تشخيصية. لتسريع GPU، تشير الوثائق إلى torchdr، وهو تنفيذ قائم على PyTorch يسرِّع حساب kNN وبناء الألفة وتحسين التضمين على GPU. الوثائق مستضافة على Read the Docs، وتشمل الأسئلة الشائعة. المشروع مرخَّص بموجب BSD ثلاثي البنود ويرحِّب بالمساهمات. تطلب الوثائق من المستخدمين الاستشهاد بورقة برمجيات JOSS، وورقة ArXiv، وعند الاقتضاء، مراجع densMAP وParametric UMAP وNature Primer.