Spec-Zone.ru › scikit-learn

Note

Go to the end to download the full example code or to run this example in your browser via JupyterLite or Binder.

Nearest Centroid Classification

Sample usage of the Nearest Centroid Classifier with different shrink thresholds. It will plot the decision boundaries for each class.

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import ListedColormap

from sklearn import datasets
from sklearn.inspection import DecisionBoundaryDisplay
from sklearn.neighbors import NearestCentroid

# import some data to play with
iris = datasets.load_iris()
# we only take the first two features. We could avoid this ugly
# slicing by using a two-dim dataset
X = iris.data[:, :2]
y = iris.target

for shrinkage in [None, 0.2]:
    # we create an instance of Nearest Centroid Classifier and fit the data.
    clf = NearestCentroid(shrink_threshold=shrinkage)
    clf.fit(X, y)
    y_pred = clf.predict(X)
    acc = np.mean(y == y_pred)

    _, ax = plt.subplots()
    disp = DecisionBoundaryDisplay.from_estimator(
        clf, X, ax=ax, response_method="predict", alpha=0.5
    )

    # Plot also the training points
    cmap = ListedColormap(disp.multiclass_colors_)
    plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap, edgecolor="k", s=20)
    plt.title(
        f"3-Class classification (shrink_threshold={shrinkage})\nAccuracy: {acc:.2f}"
    )
    plt.axis("tight")

plt.show()
  • 3-Class classification (shrink_threshold=None) Accuracy: 0.81
  • 3-Class classification (shrink_threshold=0.2) Accuracy: 0.82

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

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_nearest_centroid.ipynb

Download Python source code: plot_nearest_centroid.py

Download zipped: plot_nearest_centroid.zip

Related examples

Plot the decision surface of decision trees trained on the iris dataset

Nearest Neighbors Classification

Comparing Nearest Neighbors with and without Neighborhood Components Analysis

SVM with custom kernel

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/auto_examples/neighbors/plot_nearest_centroid.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API