عرض استراتيجيات KBinsDiscretizer المختلفة#

يقدم هذا المثال الاستراتيجيات المختلفة المنفذة في KBinsDiscretizer:

  • 'uniform': التجزئة موحدة في كل خاصية، مما يعني أن عرض الفئات ثابت في كل بُعد.

  • 'quantile': تتم التجزئة على القيم المئينية، مما يعني أن كل فئة تحتوي على نفس العدد تقريبًا من العينات.

  • 'kmeans': تستند التجزئة على النقط المركزية لإجراء التجميع KMeans.

يوضح الرسم البياني المناطق التي يكون فيها الترميز المُجزأ ثابتًا.

Input data, strategy='uniform', strategy='quantile', strategy='kmeans'
# المؤلفون: مطوري scikit-learn
# معرف الترخيص: BSD-3-Clause

import matplotlib.pyplot as plt
import numpy as np

from sklearn.datasets import make_blobs
from sklearn.preprocessing import KBinsDiscretizer

strategies = ["uniform", "quantile", "kmeans"]

n_samples = 200
centers_0 = np.array([[0, 0], [0, 5], [2, 4], [8, 8]])
centers_1 = np.array([[0, 0], [3, 1]])

# إنشاء مجموعات البيانات
random_state = 42
X_list = [
    np.random.RandomState(random_state).uniform(-3, 3, size=(n_samples, 2)),
    make_blobs(
        n_samples=[
            n_samples // 10,
            n_samples * 4 // 10,
            n_samples // 10,
            n_samples * 4 // 10,
        ],
        cluster_std=0.5,
        centers=centers_0,
        random_state=random_state,
    )[0],
    make_blobs(
        n_samples=[n_samples // 5, n_samples * 4 // 5],
        cluster_std=0.5,
        centers=centers_1,
        random_state=random_state,
    )[0],
]

figure = plt.figure(figsize=(14, 9))
i = 1
for ds_cnt, X in enumerate(X_list):
    ax = plt.subplot(len(X_list), len(strategies) + 1, i)
    ax.scatter(X[:, 0], X[:, 1], edgecolors="k")
    if ds_cnt == 0:
        ax.set_title("Input data", size=14)

    xx, yy = np.meshgrid(
        np.linspace(X[:, 0].min(), X[:, 0].max(), 300),
        np.linspace(X[:, 1].min(), X[:, 1].max(), 300),
    )
    grid = np.c_[xx.ravel(), yy.ravel()]

    ax.set_xlim(xx.min(), xx.max())
    ax.set_ylim(yy.min(), yy.max())
    ax.set_xticks(())
    ax.set_yticks(())

    i += 1
    # تحويل مجموعة البيانات باستخدام KBinsDiscretizer
    for strategy in strategies:
        enc = KBinsDiscretizer(n_bins=4, encode="ordinal", strategy=strategy)
        enc.fit(X)
        grid_encoded = enc.transform(grid)

        ax = plt.subplot(len(X_list), len(strategies) + 1, i)

        # خطوط أفقية
        horizontal = grid_encoded[:, 0].reshape(xx.shape)
        ax.contourf(xx, yy, horizontal, alpha=0.5)
        # خطوط عمودية
        vertical = grid_encoded[:, 1].reshape(xx.shape)
        ax.contourf(xx, yy, vertical, alpha=0.5)

        ax.scatter(X[:, 0], X[:, 1], edgecolors="k")
        ax.set_xlim(xx.min(), xx.max())
        ax.set_ylim(yy.min(), yy.max())
        ax.set_xticks(())
        ax.set_yticks(())
        if ds_cnt == 0:
            ax.set_title("strategy='%s'" % (strategy,), size=14)

        i += 1

plt.tight_layout()
plt.show()

Total running time of the script: (0 minutes 0.682 seconds)

Related examples

تغيير معامل التنظيم في الشبكة العصبية متعددة الطبقات

تغيير معامل التنظيم في الشبكة العصبية متعددة الطبقات

تجريد الميزات

تجريد الميزات

مثال على هوامش SVM

مثال على هوامش SVM

توضيح تصنيف العملية الغاوسية (GPC) على مجموعة بيانات XOR

توضيح تصنيف العملية الغاوسية (GPC) على مجموعة بيانات XOR

Gallery generated by Sphinx-Gallery