.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/gaussian_process/plot_gpr_prior_posterior.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_gaussian_process_plot_gpr_prior_posterior.py: ========================================================================== توضيح العملية الغاوسية المسبقة واللاحقة لنوى مختلفة ========================================================================== يوضح هذا المثال التوزيع المسبق واللاحق لـ :class:`~sklearn.gaussian_process.GaussianProcessRegressor` مع نوى مختلفة. يتم عرض المتوسط والانحراف المعياري و 5 عينات لكل من التوزيعات المسبقة واللاحقة. هنا، نعطي فقط بعض الرسوم التوضيحية. لمعرفة المزيد عن صياغة النوى، ارجع إلى :ref:`دليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 11-15 .. code-block:: Python # Authors: The scikit-learn developers # SPDX-License-Identifier: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 16-22 دالة مساعدة --------------- قبل تقديم كل نواة متاحة بشكل فردي للعمليات الغاوسية، سنحدد دالة مساعدة تسمح لنا برسم عينات مأخوذة من العملية الغاوسية. ستأخذ هذه الدالة نموذج :class:`~sklearn.gaussian_process.GaussianProcessRegressor` وستقوم برسم عينات من العملية الغاوسية. إذا لم يتم ملاءمة النموذج، فسيتم رسم العينات من التوزيع المسبق، بينما بعد ملاءمة النموذج، فسيتم رسم العينات من التوزيع اللاحق. .. GENERATED FROM PYTHON SOURCE LINES 22-68 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np def plot_gpr_samples(gpr_model, n_samples, ax): """ارسم عينات مأخوذة من نموذج العملية الغاوسية. إذا لم يتم تدريب نموذج العملية الغاوسية، فسيتم رسم العينات المأخوذة من التوزيع المسبق. خلاف ذلك، يتم رسم العينات من التوزيع اللاحق. انتبه إلى أن العينة هنا تتوافق مع دالة. المعلمات ---------- gpr_model : `GaussianProcessRegressor` نموذج :class:`~sklearn.gaussian_process.GaussianProcessRegressor`. n_samples : int عدد العينات المراد رسمها من توزيع العملية الغاوسية. ax : محور matplotlib محور matplotlib حيث يتم رسم العينات. """ x = np.linspace(0, 5, 100) X = x.reshape(-1, 1) y_mean, y_std = gpr_model.predict(X, return_std=True) y_samples = gpr_model.sample_y(X, n_samples) for idx, single_prior in enumerate(y_samples.T): ax.plot( x, single_prior, linestyle="--", alpha=0.7, label=f"الدالة المعينة #{idx + 1}", ) ax.plot(x, y_mean, color="black", label="المتوسط") ax.fill_between( x, y_mean - y_std, y_mean + y_std, alpha=0.1, color="black", label=r"$\pm$ 1 الانحراف المعياري", ) ax.set_xlabel("x") ax.set_ylabel("y") ax.set_ylim([-3, 3]) .. GENERATED FROM PYTHON SOURCE LINES 69-72 توليد مجموعة البيانات والعملية الغاوسية --------------------------------------- سننشئ مجموعة بيانات تدريب سنستخدمها في الأقسام المختلفة. .. GENERATED FROM PYTHON SOURCE LINES 72-77 .. code-block:: Python rng = np.random.RandomState(4) X_train = rng.uniform(0, 5, 10).reshape(-1, 1) y_train = np.sin((X_train[:, 0] - 2.5) ** 2) n_samples = 5 .. GENERATED FROM PYTHON SOURCE LINES 78-85 دليل النواة --------------- في هذا القسم، نوضح بعض العينات المأخوذة من التوزيعات المسبقة واللاحقة للعملية الغاوسية مع نوى مختلفة. نواة دالة الأساس الشعاعي ............................ .. GENERATED FROM PYTHON SOURCE LINES 85-107 .. code-block:: Python from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import RBF kernel = 1.0 * RBF(length_scale=1.0, length_scale_bounds=(1e-1, 10.0)) gpr = GaussianProcessRegressor(kernel=kernel, random_state=0) fig, axs = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10, 8)) # رسم التوزيع المسبق plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[0]) axs[0].set_title("عينات من التوزيع المسبق") # رسم التوزيع اللاحق gpr.fit(X_train, y_train) plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[1]) axs[1].scatter(X_train[:, 0], y_train, color="red", zorder=10, label="الملاحظات") axs[1].legend(bbox_to_anchor=(1.05, 1.5), loc="upper left") axs[1].set_title("عينات من التوزيع اللاحق") fig.suptitle("نواة دالة الأساس الشعاعي", fontsize=18) plt.tight_layout() .. image-sg:: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_001.png :alt: نواة دالة الأساس الشعاعي, عينات من التوزيع المسبق, عينات من التوزيع اللاحق :srcset: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 108-114 .. code-block:: Python print(f"معلمات النواة قبل الملاءمة:\n{kernel})") print( f"معلمات النواة بعد الملاءمة: \n{gpr.kernel_} \n" f"احتمالية السجل: {gpr.log_marginal_likelihood(gpr.kernel_.theta):.3f}" ) .. rst-class:: sphx-glr-script-out .. code-block:: none معلمات النواة قبل الملاءمة: 1**2 * RBF(length_scale=1)) معلمات النواة بعد الملاءمة: 0.594**2 * RBF(length_scale=0.279) احتمالية السجل: -0.067 .. GENERATED FROM PYTHON SOURCE LINES 115-117 النواة التربيعية النسبية ......................... .. GENERATED FROM PYTHON SOURCE LINES 117-138 .. code-block:: Python from sklearn.gaussian_process.kernels import RationalQuadratic kernel = 1.0 * RationalQuadratic(length_scale=1.0, alpha=0.1, alpha_bounds=(1e-5, 1e15)) gpr = GaussianProcessRegressor(kernel=kernel, random_state=0) fig, axs = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10, 8)) # plot prior plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[0]) axs[0].set_title("عينات من التوزيع المسبق") # plot posterior gpr.fit(X_train, y_train) plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[1]) axs[1].scatter(X_train[:, 0], y_train, color="red", zorder=10, label="الملاحظات") axs[1].legend(bbox_to_anchor=(1.05, 1.5), loc="upper left") axs[1].set_title("عينات من التوزيع اللاحق") fig.suptitle("النواة التربيعية النسبية", fontsize=18) plt.tight_layout() .. image-sg:: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_002.png :alt: النواة التربيعية النسبية, عينات من التوزيع المسبق, عينات من التوزيع اللاحق :srcset: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 139-145 .. code-block:: Python print(f"معلمات النواة قبل الملاءمة:\n{kernel})") print( f"معلمات النواة بعد الملاءمة: \n{gpr.kernel_} \n" f"احتمالية السجل: {gpr.log_marginal_likelihood(gpr.kernel_.theta):.3f}" ) .. rst-class:: sphx-glr-script-out .. code-block:: none معلمات النواة قبل الملاءمة: 1**2 * RationalQuadratic(alpha=0.1, length_scale=1)) معلمات النواة بعد الملاءمة: 0.594**2 * RationalQuadratic(alpha=1.01e+06, length_scale=0.279) احتمالية السجل: -0.067 .. GENERATED FROM PYTHON SOURCE LINES 146-148 نواة Exp-Sine-Squared ....................... .. GENERATED FROM PYTHON SOURCE LINES 148-174 .. code-block:: Python from sklearn.gaussian_process.kernels import ExpSineSquared kernel = 1.0 * ExpSineSquared( length_scale=1.0, periodicity=3.0, length_scale_bounds=(0.1, 10.0), periodicity_bounds=(1.0, 10.0), ) gpr = GaussianProcessRegressor(kernel=kernel, random_state=0) fig, axs = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10, 8)) # plot prior plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[0]) axs[0].set_title("عينات من التوزيع المسبق") # plot posterior gpr.fit(X_train, y_train) plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[1]) axs[1].scatter(X_train[:, 0], y_train, color="red", zorder=10, label="الملاحظات") axs[1].legend(bbox_to_anchor=(1.05, 1.5), loc="upper left") axs[1].set_title("عينات من التوزيع اللاحق") fig.suptitle("نواة Exp-Sine-Squared", fontsize=18) plt.tight_layout() .. image-sg:: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_003.png :alt: نواة Exp-Sine-Squared, عينات من التوزيع المسبق, عينات من التوزيع اللاحق :srcset: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 175-181 .. code-block:: Python print(f"معلمات النواة قبل الملاءمة:\n{kernel})") print( f"معلمات النواة بعد الملاءمة: \n{gpr.kernel_} \n" f"احتمالية السجل: {gpr.log_marginal_likelihood(gpr.kernel_.theta):.3f}" ) .. rst-class:: sphx-glr-script-out .. code-block:: none معلمات النواة قبل الملاءمة: 1**2 * ExpSineSquared(length_scale=1, periodicity=3)) معلمات النواة بعد الملاءمة: 0.799**2 * ExpSineSquared(length_scale=0.791, periodicity=2.87) احتمالية السجل: 3.394 .. GENERATED FROM PYTHON SOURCE LINES 182-184 نواة Dot-product .................. .. GENERATED FROM PYTHON SOURCE LINES 184-207 .. code-block:: Python from sklearn.gaussian_process.kernels import ConstantKernel, DotProduct kernel = ConstantKernel(0.1, (0.01, 10.0)) * ( DotProduct(sigma_0=1.0, sigma_0_bounds=(0.1, 10.0)) ** 2 ) gpr = GaussianProcessRegressor(kernel=kernel, random_state=0, normalize_y=True) fig, axs = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10, 8)) # plot prior plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[0]) axs[0].set_title("عينات من التوزيع المسبق") # plot posterior gpr.fit(X_train, y_train) plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[1]) axs[1].scatter(X_train[:, 0], y_train, color="red", zorder=10, label="الملاحظات") axs[1].legend(bbox_to_anchor=(1.05, 1.5), loc="upper left") axs[1].set_title("عينات من التوزيع اللاحق") fig.suptitle("نواة Dot-product", fontsize=18) plt.tight_layout() .. image-sg:: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_004.png :alt: نواة Dot-product, عينات من التوزيع المسبق, عينات من التوزيع اللاحق :srcset: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 208-214 .. code-block:: Python print(f"معلمات النواة قبل الملاءمة:\n{kernel})") print( f"معلمات النواة بعد الملاءمة: \n{gpr.kernel_} \n" f"احتمالية السجل: {gpr.log_marginal_likelihood(gpr.kernel_.theta):.3f}" ) .. rst-class:: sphx-glr-script-out .. code-block:: none معلمات النواة قبل الملاءمة: 0.316**2 * DotProduct(sigma_0=1) ** 2) معلمات النواة بعد الملاءمة: 1.83**2 * DotProduct(sigma_0=0.107) ** 2 احتمالية السجل: -18098013535.226 .. GENERATED FROM PYTHON SOURCE LINES 215-217 نواة Matérn .............. .. GENERATED FROM PYTHON SOURCE LINES 217-238 .. code-block:: Python from sklearn.gaussian_process.kernels import Matern kernel = 1.0 * Matern(length_scale=1.0, length_scale_bounds=(1e-1, 10.0), nu=1.5) gpr = GaussianProcessRegressor(kernel=kernel, random_state=0) fig, axs = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10, 8)) # plot prior plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[0]) axs[0].set_title("عينات من التوزيع المسبق") # plot posterior gpr.fit(X_train, y_train) plot_gpr_samples(gpr, n_samples=n_samples, ax=axs[1]) axs[1].scatter(X_train[:, 0], y_train, color="red", zorder=10, label="الملاحظات") axs[1].legend(bbox_to_anchor=(1.05, 1.5), loc="upper left") axs[1].set_title("عينات من التوزيع اللاحق") fig.suptitle("نواة Matérn", fontsize=18) plt.tight_layout() .. image-sg:: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_005.png :alt: نواة Matérn, عينات من التوزيع المسبق, عينات من التوزيع اللاحق :srcset: /auto_examples/gaussian_process/images/sphx_glr_plot_gpr_prior_posterior_005.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 239-246 .. code-block:: Python print(f"معلمات النواة قبل الملاءمة:\n{kernel})") print( f"معلمات النواة بعد الملاءمة: \n{gpr.kernel_} \n" f"احتمالية السجل: {gpr.log_marginal_likelihood(gpr.kernel_.theta):.3f}" ) .. rst-class:: sphx-glr-script-out .. code-block:: none معلمات النواة قبل الملاءمة: 1**2 * Matern(length_scale=1, nu=1.5)) معلمات النواة بعد الملاءمة: 0.609**2 * Matern(length_scale=0.484, nu=1.5) احتمالية السجل: -1.185 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 2.077 seconds) .. _sphx_glr_download_auto_examples_gaussian_process_plot_gpr_prior_posterior.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/gaussian_process/plot_gpr_prior_posterior.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/gaussian_process/plot_gpr_prior_posterior.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_gpr_prior_posterior.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_gpr_prior_posterior.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_gpr_prior_posterior.zip ` .. include:: plot_gpr_prior_posterior.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_