.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/neighbors/plot_classification.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_classification.py: ================================ تصنيف أقرب الجيران ================================ هذا المثال يوضح كيفية استخدام :class:`~sklearn.neighbors.KNeighborsClassifier`. نقوم بتدريب مصنف مثل هذا على مجموعة بيانات الزهرة النرجسية ونلاحظ الفرق في حدود القرار التي تم الحصول عليها فيما يتعلق بمعلمة `weights`. .. GENERATED FROM PYTHON SOURCE LINES 9-13 .. code-block:: Python # المؤلفون: مطوري سكايلرن # معرف الترخيص: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 14-18 تحميل البيانات ------------- في هذا المثال، نستخدم مجموعة بيانات الزهرة النرجسية. نقوم بتقسيم البيانات إلى مجموعة تدريب واختبار. .. GENERATED FROM PYTHON SOURCE LINES 18-26 .. code-block:: Python from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split iris = load_iris(as_frame=True) X = iris.data[["sepal length (cm)", "sepal width (cm)"]] y = iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0) .. GENERATED FROM PYTHON SOURCE LINES 27-37 مصنف أقرب الجيران ------------------------------ نريد استخدام مصنف أقرب الجيران مع مراعاة حي من 11 نقطة بيانات. نظرًا لأن نموذج أقرب الجيران لدينا يستخدم المسافة الإقليدية للعثور على الجيران الأقرب، فمن المهم بالتالي قياس البيانات مسبقًا. يرجى الرجوع إلى المثال المعنون :ref:`sphx_glr_auto_examples_preprocessing_plot_scaling_importance.py` للحصول على معلومات أكثر تفصيلاً. لذلك، نستخدم :class:`~sklearn.pipeline.Pipeline` لربط مقياس قبل استخدام المصنف الخاص بنا. .. GENERATED FROM PYTHON SOURCE LINES 37-45 .. code-block:: Python from sklearn.neighbors import KNeighborsClassifier from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler clf = Pipeline( steps=[("scaler", StandardScaler()), ("knn", KNeighborsClassifier(n_neighbors=11))] ) .. GENERATED FROM PYTHON SOURCE LINES 46-51 حدود القرار ----------------- الآن، نقوم بتدريب مصنفين مع قيم مختلفة لمعلمة `weights`. نقوم برسم حدود القرار لكل مصنف بالإضافة إلى مجموعة البيانات الأصلية لملاحظة الفرق. .. GENERATED FROM PYTHON SOURCE LINES 51-83 .. code-block:: Python import matplotlib.pyplot as plt from sklearn.inspection import DecisionBoundaryDisplay _, axs = plt.subplots(ncols=2, figsize=(12, 5)) for ax, weights in zip(axs, ("uniform", "distance")): clf.set_params(knn__weights=weights).fit(X_train, y_train) disp = DecisionBoundaryDisplay.from_estimator( clf, X_test, response_method="predict", plot_method="pcolormesh", xlabel=iris.feature_names[0], ylabel=iris.feature_names[1], shading="auto", alpha=0.5, ax=ax, ) scatter = disp.ax_.scatter(X.iloc[:, 0], X.iloc[:, 1], c=y, edgecolors="k") disp.ax_.legend( scatter.legend_elements()[0], iris.target_names, loc="lower left", title="Classes", ) _ = disp.ax_.set_title( f"3-Class classification\n(k={clf[-1].n_neighbors}, weights={weights!r})" ) plt.show() .. image-sg:: /auto_examples/neighbors/images/sphx_glr_plot_classification_001.png :alt: 3-Class classification (k=11, weights='uniform'), 3-Class classification (k=11, weights='distance') :srcset: /auto_examples/neighbors/images/sphx_glr_plot_classification_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 84-92 الخلاصة ---------- نلاحظ أن لمعلمة `weights` تأثير على حدود القرار. عندما `weights="unifom"` سيكون لجميع الجيران الأقرب نفس التأثير على القرار. في حين عندما `weights="distance"` يكون الوزن المعطى لكل جار يتناسب مع العكس لمسافة ذلك الجار من نقطة الاستعلام. في بعض الحالات، قد يؤدي أخذ المسافة في الاعتبار إلى تحسين النموذج. .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.753 seconds) .. _sphx_glr_download_auto_examples_neighbors_plot_classification.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_classification.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_classification.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_classification.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_classification.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_classification.zip ` .. include:: plot_classification.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_