가까운 중심 분류

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 Scikit-learn 을 사용하여 최근접 중심 분류 (Nearest Centroid Classification) 를 구현하는 방법을 안내합니다. 최근접 중심 분류는 각 클래스의 중심점을 계산한 다음, 새로운 데이터 포인트가 어떤 중심점에 가장 가까운지에 따라 분류하는 간단한 분류 방법입니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습용 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 가져오기

먼저, NumPy, Matplotlib, Scikit-learn 데이터셋, NearestCentroid, DecisionBoundaryDisplay 등 필요한 라이브러리를 가져와야 합니다.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import datasets
from sklearn.neighbors import NearestCentroid
from sklearn.inspection import DecisionBoundaryDisplay

데이터 로드

다음으로, Scikit-learn 에서 아이리스 (iris) 데이터셋을 로드하고 시각화를 위해 처음 두 개의 특징만 선택합니다.

iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

색상 맵 생성

시각화를 위해 Matplotlib 의 ListedColormap 함수를 사용하여 두 개의 색상 맵을 생성합니다.

cmap_light = ListedColormap(["orange", "cyan", "cornflowerblue"])
cmap_bold = ListedColormap(["darkorange", "c", "darkblue"])

분류기 생성 및 학습

0.2 의 축소 (shrinkage) 값을 가진 최근접 중심 분류기 (Nearest Centroid Classifier) 의 인스턴스를 생성하고 데이터를 학습합니다.

clf = NearestCentroid(shrink_threshold=0.2)
clf.fit(X, y)

예측 및 정확도 측정

입력 데이터에 대한 클래스 레이블을 예측하고 분류기의 정확도를 측정합니다.

y_pred = clf.predict(X)
print("Accuracy: ", np.mean(y == y_pred))

결정 경계 시각화

Scikit-learn 의 DecisionBoundaryDisplay 함수를 사용하여 분류기의 결정 경계를 시각화합니다.

_, ax = plt.subplots()
DecisionBoundaryDisplay.from_estimator(
    clf, X, cmap=cmap_light, ax=ax, response_method="predict"
)

데이터 포인트 플롯

Matplotlib 의 scatter 함수를 사용하여 입력 데이터 포인트를 플롯합니다.

plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor="k", s=20)

제목 및 축 레이블 추가

Matplotlib 의 title, xlabel, 및 ylabel 함수를 사용하여 플롯에 제목과 축 레이블을 추가합니다.

plt.title("가장 가까운 중심 분류")
plt.xlabel("꽃받침 길이")
plt.ylabel("꽃받침 너비")

플롯 표시

Matplotlib 의 show 함수를 사용하여 플롯을 표시합니다.

plt.show()

요약

이 실험에서는 Scikit-learn 을 사용하여 가장 가까운 중심 분류를 구현하는 방법을 배웠습니다. 아이리스 데이터셋을 로드하고, 분류기를 생성하고, 클래스 레이블을 예측하고, 정확도를 측정하고, 결정 경계와 입력 데이터 포인트를 시각화했습니다.