.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/feature_selection/plot_feature_selection_pipeline.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_feature_selection_plot_feature_selection_pipeline.py: ================== Pipeline ANOVA SVM ================== يوضح هذا المثال كيف يمكن دمج اختيار الميزات بسهولة ضمن مجرى تعلم الآلة. نعرض أيضًا أنه يمكنك بسهولة فحص جزء من المجرى. .. GENERATED FROM PYTHON SOURCE LINES 12-16 .. code-block:: Python # Authors: The scikit-learn developers # SPDX-License-Identifier: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 17-19 سنبدأ بتوليد مجموعة بيانات تصنيف ثنائي. بعد ذلك، سنقوم بتقسيم مجموعة البيانات إلى مجموعتين فرعيتين. .. GENERATED FROM PYTHON SOURCE LINES 19-33 .. code-block:: Python from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split X, y = make_classification( n_features=20, n_informative=3, n_redundant=0, n_classes=2, n_clusters_per_class=2, random_state=42, ) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) .. GENERATED FROM PYTHON SOURCE LINES 34-46 خطأ شائع يرتكب مع اختيار الميزات هو البحث عن مجموعة فرعية من الميزات التمييزية على مجموعة البيانات الكاملة، بدلاً من استخدام مجموعة التدريب فقط. استخدام scikit-learn :func:`~sklearn.pipeline.Pipeline` يمنع ارتكاب مثل هذا الخطأ. هنا، سنوضح كيفية بناء مجرى حيث تكون الخطوة الأولى هي اختيار الميزات. عند استدعاء `fit` على بيانات التدريب، سيتم تحديد مجموعة فرعية من الميزات وسيتم تخزين فهرس هذه الميزات المحددة. سيقوم محدد الميزات لاحقًا بتقليل عدد الميزات، وتمرير هذه المجموعة الفرعية إلى المصنف الذي سيتم تدريبه. .. GENERATED FROM PYTHON SOURCE LINES 46-56 .. code-block:: Python from sklearn.feature_selection import SelectKBest, f_classif from sklearn.pipeline import make_pipeline from sklearn.svm import LinearSVC anova_filter = SelectKBest(f_classif, k=3) clf = LinearSVC() anova_svm = make_pipeline(anova_filter, clf) anova_svm.fit(X_train, y_train) .. raw:: html
Pipeline(steps=[('selectkbest', SelectKBest(k=3)), ('linearsvc', LinearSVC())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.


.. GENERATED FROM PYTHON SOURCE LINES 57-63 بمجرد اكتمال التدريب، يمكننا التنبؤ بعينات جديدة غير مرئية. في هذه الحالة، سيقوم محدد الميزات بتحديد الميزات الأكثر تمييزًا فقط بناءً على المعلومات المخزنة أثناء التدريب. بعد ذلك، سيتم تمرير البيانات إلى المصنف الذي سيجري التنبؤ. هنا، نعرض المقاييس النهائية عبر تقرير تصنيف. .. GENERATED FROM PYTHON SOURCE LINES 63-69 .. code-block:: Python from sklearn.metrics import classification_report y_pred = anova_svm.predict(X_test) print(classification_report(y_test, y_pred)) .. rst-class:: sphx-glr-script-out .. code-block:: none precision recall f1-score support 0 0.92 0.80 0.86 15 1 0.75 0.90 0.82 10 accuracy 0.84 25 macro avg 0.84 0.85 0.84 25 weighted avg 0.85 0.84 0.84 25 .. GENERATED FROM PYTHON SOURCE LINES 70-73 كن على علم بأنه يمكنك فحص خطوة في المجرى. على سبيل المثال، قد نكون مهتمين بمعلمات المصنف. نظرًا لأننا اخترنا ثلاث ميزات، فإننا نتوقع أن يكون لدينا ثلاثة معاملات. .. GENERATED FROM PYTHON SOURCE LINES 73-76 .. code-block:: Python anova_svm[-1].coef_ .. rst-class:: sphx-glr-script-out .. code-block:: none array([[0.75788833, 0.27161955, 0.26113448]]) .. GENERATED FROM PYTHON SOURCE LINES 77-80 ومع ذلك، لا نعرف الميزات التي تم تحديدها من مجموعة البيانات الأصلية. يمكننا المتابعة بعدة طرق. هنا، سنقوم بعكس تحويل هذه المعاملات للحصول على معلومات حول المساحة الأصلية. .. GENERATED FROM PYTHON SOURCE LINES 80-83 .. code-block:: Python anova_svm[:-1].inverse_transform(anova_svm[-1].coef_) .. rst-class:: sphx-glr-script-out .. code-block:: none array([[0. , 0. , 0.75788833, 0. , 0. , 0. , 0. , 0. , 0. , 0.27161955, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.26113448]]) .. GENERATED FROM PYTHON SOURCE LINES 84-86 يمكننا أن نرى أن الميزات ذات المعاملات غير الصفرية هي الميزات المحددة بواسطة الخطوة الأولى. .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.020 seconds) .. _sphx_glr_download_auto_examples_feature_selection_plot_feature_selection_pipeline.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/feature_selection/plot_feature_selection_pipeline.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/feature_selection/plot_feature_selection_pipeline.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_feature_selection_pipeline.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_feature_selection_pipeline.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_feature_selection_pipeline.zip ` .. include:: plot_feature_selection_pipeline.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_