.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/neighbors/plot_nca_dim_reduction.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. or to run this example in your browser via JupyterLite or Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_neighbors_plot_nca_dim_reduction.py: ============================================================== الحد من الأبعاد باستخدام تحليل مكونات الجوار ============================================================== مثال على استخدام تحليل مكونات الجوار للحد من الأبعاد. يقارن هذا المثال بين طرق مختلفة للحد من الأبعاد (الخطية) تطبق على مجموعة بيانات الأرقام. تحتوي مجموعة البيانات هذه على صور للأرقام من 0 إلى 9 مع حوالي 180 عينة من كل فئة. كل صورة لها أبعاد 8x8 = 64، ويتم تقليلها إلى نقطة بيانات ثنائية الأبعاد. يحدد تحليل المكونات الرئيسية (PCA) المطبق على هذه البيانات مجموعة من السمات (المكونات الرئيسية، أو الاتجاهات في فضاء الميزات) التي تحسب معظم التباين في البيانات. هنا نرسم العينات المختلفة على أول مكونين رئيسيين. يحاول تحليل التمييز الخطي (LDA) تحديد السمات التي تحسب معظم التباين *بين الفئات*. على وجه الخصوص، LDA، على عكس PCA، هي طريقة مشرفة، تستخدم تسميات الفئات المعروفة. يحاول تحليل مكونات الجوار (NCA) إيجاد فضاء ميزات بحيث يعطي خوارزمية أقرب جار احتمالية أفضل دقة. مثل LDA، إنها طريقة مشرفة. يمكن للمرء أن يرى أن NCA يفرض تجميعًا للبيانات له معنى بصريًا على الرغم من التخفيض الكبير في البعد. .. GENERATED FROM PYTHON SOURCE LINES 30-99 .. rst-class:: sphx-glr-horizontal * .. image-sg:: /auto_examples/neighbors/images/sphx_glr_plot_nca_dim_reduction_001.png :alt: PCA, KNN (k=3) Test accuracy = 0.52 :srcset: /auto_examples/neighbors/images/sphx_glr_plot_nca_dim_reduction_001.png :class: sphx-glr-multi-img * .. image-sg:: /auto_examples/neighbors/images/sphx_glr_plot_nca_dim_reduction_002.png :alt: LDA, KNN (k=3) Test accuracy = 0.66 :srcset: /auto_examples/neighbors/images/sphx_glr_plot_nca_dim_reduction_002.png :class: sphx-glr-multi-img * .. image-sg:: /auto_examples/neighbors/images/sphx_glr_plot_nca_dim_reduction_003.png :alt: NCA, KNN (k=3) Test accuracy = 0.70 :srcset: /auto_examples/neighbors/images/sphx_glr_plot_nca_dim_reduction_003.png :class: sphx-glr-multi-img .. code-block:: Python # المؤلفون: مطوري سكايت-ليرن # معرف الترخيص: BSD-3-Clause import matplotlib.pyplot as plt import numpy as np from sklearn import datasets from sklearn.decomposition import PCA from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier, NeighborhoodComponentsAnalysis from sklearn.pipeline import make_pipeline from sklearn.preprocessing import StandardScaler n_neighbors = 3 random_state = 0 # تحميل مجموعة بيانات الأرقام X, y = datasets.load_digits(return_X_y=True) # تقسيم البيانات إلى مجموعتين تدريب واختبار X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.5, stratify=y, random_state=random_state ) dim = len(X[0]) n_classes = len(np.unique(y)) # تقليل البعد إلى 2 باستخدام PCA pca = make_pipeline(StandardScaler(), PCA(n_components=2, random_state=random_state)) # تقليل البعد إلى 2 باستخدام LinearDiscriminantAnalysis lda = make_pipeline(StandardScaler(), LinearDiscriminantAnalysis(n_components=2)) # تقليل البعد إلى 2 باستخدام NeighborhoodComponentAnalysis nca = make_pipeline( StandardScaler(), NeighborhoodComponentsAnalysis(n_components=2, random_state=random_state), ) # استخدام مصنف أقرب جار لتقييم الطرق knn = KNeighborsClassifier(n_neighbors=n_neighbors) # إنشاء قائمة بالطرق التي سيتم مقارنتها dim_reduction_methods = [("PCA", pca), ("LDA", lda), ("NCA", nca)] # plt.figure() for i, (name, model) in enumerate(dim_reduction_methods): plt.figure() # plt.subplot(1, 3, i + 1, aspect=1) # ملاءمة نموذج الطريقة model.fit(X_train, y_train) # ملاءمة مصنف أقرب جار على مجموعة التدريب المضمنة knn.fit(model.transform(X_train), y_train) # حساب دقة أقرب جار على مجموعة الاختبار المضمنة acc_knn = knn.score(model.transform(X_test), y_test) # تضمين مجموعة البيانات في بعدين باستخدام النموذج الملائم X_embedded = model.transform(X) # رسم النقاط المضمنة وإظهار درجة التقييم plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=y, s=30, cmap="Set1") plt.title( "{}, KNN (k={})\nTest accuracy = {:.2f}".format(name, n_neighbors, acc_knn) ) plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 2.698 seconds) .. _sphx_glr_download_auto_examples_neighbors_plot_nca_dim_reduction.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/scikit-learn/scikit-learn/main?urlpath=lab/tree/notebooks/auto_examples/neighbors/plot_nca_dim_reduction.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/neighbors/plot_nca_dim_reduction.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_nca_dim_reduction.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_nca_dim_reduction.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_nca_dim_reduction.zip ` .. include:: plot_nca_dim_reduction.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_