.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/neighbors/plot_lof_outlier_detection.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_lof_outlier_detection.py: ============================================================== الكشف عن القيم الشاذة باستخدام عامل الانحراف المحلي (LOF) ============================================================== خوارزمية عامل الانحراف المحلي (LOF) هي طريقة غير خاضعة للإشراف للكشف عن الانحرافات والتي تحسب انحراف الكثافة المحلية لنقطة بيانات معينة فيما يتعلق بجيرانها. تعتبر هذه الخوارزمية العينات التي لها كثافة أقل بكثير من جيرانها كقيم شاذة. يوضح هذا المثال كيفية استخدام LOF للكشف عن القيم الشاذة، وهو الاستخدام الافتراضي لهذا المقدر في مكتبة ساي كيت ليرن (scikit-learn). تجدر الإشارة إلى أنه عند استخدام LOF للكشف عن القيم الشاذة، لا تتوفر له طرق 'predict' و 'decision_function' و 'score_samples'. راجع :ref:`دليل المستخدم ` للحصول على التفاصيل حول الفرق بين الكشف عن القيم الشاذة والكشف عن البيانات الجديدة وكيفية استخدام LOF للكشف عن البيانات الجديدة. يتم ضبط عدد الجيران المعتبرين (البارامتر 'n_neighbors') عادةً 1) أكبر من الحد الأدنى لعدد العينات التي يجب أن يحتويها التجمع، بحيث يمكن أن تكون العينات الأخرى قيمًا شاذة محلية بالنسبة لهذا التجمع، و2) أصغر من الحد الأقصى لعدد العينات القريبة التي يمكن أن تكون قيمًا شاذة محلية. في الممارسة العملية، هذه المعلومات غير متوفرة عادةً، ويبدو أن أخذ 'n_neighbors=20' يعمل بشكل جيد بشكل عام. .. GENERATED FROM PYTHON SOURCE LINES 23-27 .. code-block:: Python # المؤلفون: مطوري ساي كيت ليرن (scikit-learn) # معرف الترخيص: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 28-30 توليد البيانات مع القيم الشاذة --------------------------- .. GENERATED FROM PYTHON SOURCE LINES 32-45 .. code-block:: Python import numpy as np np.random.seed(42) X_inliers = 0.3 * np.random.randn(100, 2) X_inliers = np.r_[X_inliers + 2, X_inliers - 2] X_outliers = np.random.uniform(low=-4, high=4, size=(20, 2)) X = np.r_[X_inliers, X_outliers] n_outliers = len(X_outliers) ground_truth = np.ones(len(X), dtype=int) ground_truth[-n_outliers:] = -1 .. GENERATED FROM PYTHON SOURCE LINES 46-52 ملاءمة النموذج للكشف عن القيم الشاذة (الافتراضي) --------------------------------------------- استخدم 'fit_predict' لحساب العلامات المتوقعة لعينات التدريب (عندما يتم استخدام LOF للكشف عن القيم الشاذة، لا يمتلك المقدر طرق 'predict' و 'decision_function' و 'score_samples'). .. GENERATED FROM PYTHON SOURCE LINES 52-60 .. code-block:: Python from sklearn.neighbors import LocalOutlierFactor clf = LocalOutlierFactor(n_neighbors=20, contamination=0.1) y_pred = clf.fit_predict(X) n_errors = (y_pred != ground_truth).sum() X_scores = clf.negative_outlier_factor_ .. GENERATED FROM PYTHON SOURCE LINES 61-63 رسم النتائج ------------ .. GENERATED FROM PYTHON SOURCE LINES 65-96 .. code-block:: Python import matplotlib.pyplot as plt from matplotlib.legend_handler import HandlerPathCollection def update_legend_marker_size(handle, orig): "Customize size of the legend marker" handle.update_from(orig) handle.set_sizes([20]) plt.scatter(X[:, 0], X[:, 1], color="k", s=3.0, label="Data points") # plot circles with radius proportional to the outlier scores radius = (X_scores.max() - X_scores) / (X_scores.max() - X_scores.min()) scatter = plt.scatter( X[:, 0], X[:, 1], s=1000 * radius, edgecolors="r", facecolors="none", label="Outlier scores", ) plt.axis("tight") plt.xlim((-5, 5)) plt.ylim((-5, 5)) plt.xlabel("prediction errors: %d" % (n_errors)) plt.legend( handler_map={scatter: HandlerPathCollection(update_func=update_legend_marker_size)} ) plt.title("Local Outlier Factor (LOF)") plt.show() .. image-sg:: /auto_examples/neighbors/images/sphx_glr_plot_lof_outlier_detection_001.png :alt: Local Outlier Factor (LOF) :srcset: /auto_examples/neighbors/images/sphx_glr_plot_lof_outlier_detection_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.102 seconds) .. _sphx_glr_download_auto_examples_neighbors_plot_lof_outlier_detection.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_lof_outlier_detection.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_lof_outlier_detection.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_lof_outlier_detection.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_lof_outlier_detection.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_lof_outlier_detection.zip ` .. include:: plot_lof_outlier_detection.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_