.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/decomposition/plot_ica_vs_pca.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_decomposition_plot_ica_vs_pca.py: ======================================== FastICA على سحب النقاط ثنائية الأبعاد ======================================== يوضح هذا المثال بصريًا في فضاء الميزات مقارنة بالنتائج باستخدام تقنيتين مختلفتين لتحليل المكونات. :ref:`ICA` مقابل :ref:`PCA`. تمثيل ICA في فضاء الميزات يعطي نظرة على 'ICA الهندسي': ICA هو خوارزمية تجد اتجاهات في فضاء الميزات المرتبطة بالانحرافات ذات اللاغاوسية العالية. هذه الاتجاهات لا تحتاج إلى أن تكون متعامدة في فضاء الميزات الأصلي، ولكنها متعامدة في فضاء الميزات المبيض، حيث ترتبط جميع الاتجاهات بنفس التباين. PCA، من ناحية أخرى، يجد اتجاهات متعامدة في فضاء الميزات الخام التي ترتبط باتجاهات تحسب التباين الأقصى. هنا، نقوم بمحاكاة مصادر مستقلة باستخدام عملية غير غاوسية للغاية، 2 طالب T مع عدد منخفض من درجات الحرية (الشكل العلوي الأيسر). نقوم بمزجها لإنشاء الملاحظات (الشكل العلوي الأيمن). في هذا الفضاء الخام للملاحظات، يتم تمثيل الاتجاهات التي حددتها PCA بواسطة المتجهات البرتقالية. نمثل الإشارة في فضاء PCA، بعد التبييض بواسطة التباين المقابل للمتجهات PCA (الأسفل اليسار). تشغيل ICA يقابل إيجاد دوران في هذا الفضاء لتحديد اتجاهات اللاغاوسية القصوى (الأسفل الأيمن). .. GENERATED FROM PYTHON SOURCE LINES 27-30 .. code-block:: Python # المؤلفون: مطوري سكايت-ليرن # معرف SPDX-License: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 31-33 توليد بيانات العينة -------------------- .. GENERATED FROM PYTHON SOURCE LINES 33-54 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from sklearn.decomposition import PCA, FastICA rng = np.random.RandomState(42) S = rng.standard_t(1.5, size=(20000, 2)) S[:, 0] *= 2.0 # مزج البيانات A = np.array([[1, 1], [0, 2]]) # مصفوفة المزج X = np.dot(S, A.T) # توليد الملاحظات pca = PCA() S_pca_ = pca.fit(X).transform(X) ica = FastICA(random_state=rng, whiten="arbitrary-variance") S_ica_ = ica.fit(X).transform(X) # تقدير المصادر .. GENERATED FROM PYTHON SOURCE LINES 55-57 رسم النتائج ------------ .. GENERATED FROM PYTHON SOURCE LINES 57-111 .. code-block:: Python def plot_samples(S, axis_list=None): plt.scatter( S[:, 0], S[:, 1], s=2, marker="o", zorder=10, color="steelblue", alpha=0.5 ) if axis_list is not None: for axis, color, label in axis_list: x_axis, y_axis = axis / axis.std() plt.quiver( (0, 0), (0, 0), x_axis, y_axis, zorder=11, width=0.01, scale=6, color=color, label=label, ) plt.hlines(0, -5, 5, color="black", linewidth=0.5) plt.vlines(0, -3, 3, color="black", linewidth=0.5) plt.xlim(-5, 5) plt.ylim(-3, 3) plt.gca().set_aspect("equal") plt.xlabel("x") plt.ylabel("y") plt.figure() plt.subplot(2, 2, 1) plot_samples(S / S.std()) plt.title("True Independent Sources") axis_list = [(pca.components_.T, "orange", "PCA"), (ica.mixing_, "red", "ICA")] plt.subplot(2, 2, 2) plot_samples(X / np.std(X), axis_list=axis_list) legend = plt.legend(loc="upper left") legend.set_zorder(100) plt.title("Observations") plt.subplot(2, 2, 3) plot_samples(S_pca_ / np.std(S_pca_)) plt.title("PCA recovered signals") plt.subplot(2, 2, 4) plot_samples(S_ica_ / np.std(S_ica_)) plt.title("ICA recovered signals") plt.subplots_adjust(0.09, 0.04, 0.94, 0.94, 0.26, 0.36) plt.tight_layout() plt.show() .. image-sg:: /auto_examples/decomposition/images/sphx_glr_plot_ica_vs_pca_001.png :alt: True Independent Sources, Observations, PCA recovered signals, ICA recovered signals :srcset: /auto_examples/decomposition/images/sphx_glr_plot_ica_vs_pca_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.443 seconds) .. _sphx_glr_download_auto_examples_decomposition_plot_ica_vs_pca.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/decomposition/plot_ica_vs_pca.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/decomposition/plot_ica_vs_pca.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_ica_vs_pca.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_ica_vs_pca.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_ica_vs_pca.zip ` .. include:: plot_ica_vs_pca.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_