기술나눔

AI 학습 가이드 기계 학습 - K-평균 클러스터링 모델 훈련 및 예측

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

AI 학습 가이드 기계 학습 - K-평균 클러스터링 모델 훈련 및 예측

인공지능(AI)은 오늘날 세계에서 가장 뜨거운 주제 중 하나이며, 우리가 살고 일하는 방식을 변화시키고 있습니다. 머신러닝은 AI의 중요한 분야로서 다양한 분야에서 큰 잠재력과 가치를 보여왔습니다. 기계 학습에서 클러스터링은 중요한 알고리즘이며 K-평균 클러스터링은 고전적인 방법 중 하나입니다. 이번 블로그에서는 K-평균 군집화 모델의 훈련 과정과 예측 과정을 자세히 소개하고, K-평균 군집화를 활용해 데이터에 대한 군집 분석을 수행하는 방법을 보여주는 예제를 제공하겠습니다.

K-평균 클러스터링 모델

K-평균 클러스터링(K-means Clustering)은 데이터 세트의 샘플을 K개의 클러스터로 나누어 동일한 클러스터 내 샘플 간의 거리를 최대한 작게 하고 서로 다른 클러스터 간의 거리를 최대한 크게 만드는 비지도 학습 알고리즘입니다. K-평균 클러스터링에서는 각 클러스터를 중심으로 표현하고, 클러스터 내 샘플과 중심 사이의 거리를 최소화하여 반복적으로 클러스터링을 수행합니다.

K-평균 클러스터링 프로세스는 대략 다음 단계로 나눌 수 있습니다.

  1. K개의 초기 중심점 선택
  2. 가장 가까운 중심점이 있는 클러스터에 각 샘플을 할당합니다.
  3. 각 클러스터의 중심 업데이트
  4. 클러스터 할당이 더 이상 변경되지 않거나 반복 횟수의 상한에 도달할 때까지 2단계와 3단계를 반복합니다.

K-평균 군집화 모델의 예측 과정은 중심이 가장 가까운 군집에 새 샘플을 할당하는 것입니다.

K-평균 군집화 모델의 훈련 과정

이번 절에서는 K-평균 군집화 모델의 학습 과정을 자세히 소개하겠습니다. 설명의 편의를 위해 Python의 scikit-learn 라이브러리를 데모용으로 사용하겠습니다.

먼저 관련 라이브러리를 가져와야 합니다.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
  • 1
  • 2
  • 3
  • 4

다음으로 다음을 보여주기 위해 몇 가지 시뮬레이션 데이터를 생성합니다.

X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)
  • 1

그런 다음 K-평균 클러스터링 모델을 사용하여 데이터를 학습할 수 있습니다.

kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
  • 1
  • 2

마지막으로 훈련 결과와 클러스터 중심을 시각화할 수 있습니다.

plt.scatter(X[:, 0], X[:, 1], s=50, c="lightblue", marker="o", edgecolor="black")
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=250, marker="*", c="red", edgecolor="black")
plt.show()
  • 1
  • 2
  • 3

위의 단계를 통해 K-평균 클러스터링 모델의 학습 과정을 완료하고 학습 결과의 시각적 이미지도 얻었습니다.

K-평균 군집화 모델의 예측 과정

다음으로 K-평균 군집화 모델의 예측 과정을 소개하겠습니다. K-평균 클러스터링 모델에서 예측 프로세스는 중심이 가장 가까운 클러스터에 새 샘플을 할당하는 것입니다.

먼저, 훈련된 K-평균 클러스터링 모델을 사용하여 새 샘플을 예측할 수 있습니다.

new_samples = np.array([[0, 0], [4, 4]])
predicted_labels = kmeans.predict(new_samples)
print(predicted_labels)
  • 1
  • 2
  • 3

위 코드에서는 두 개의 새로운 샘플을 생성합니다.[0, 0]그리고[4, 4], 그리고 사용predict 예측하는 방법입니다. 마지막으로 새 샘플에 대해 예측된 클러스터 레이블을 얻습니다.

K-평균 군집화 모델의 학습 및 예측 과정을 보다 직관적으로 이해하기 위해 구체적인 예를 들어 설명하겠습니다.

세 가지 특성을 가진 데이터세트가 있다고 가정해 보겠습니다.X , 우리는 그것을 3개의 클러스터로 나누고 싶습니다. 먼저 K-평균 클러스터링 모델을 사용하여 데이터를 훈련할 수 있습니다.

kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
  • 1
  • 2

다음으로 훈련된 모델을 새 샘플에 적용합니다.

new_samples = np.array([[1, 1, 1], [2, 2, 2]])
predicted_labels = kmeans.predict(new_samples)
print(predicted_labels)
  • 1
  • 2
  • 3

위의 예를 통해 K-평균 클러스터링 모델의 학습 및 예측 과정을 명확하게 확인할 수 있습니다.

요약하다

이 블로그의 소개를 통해 K-평균 클러스터링 모델의 훈련 과정과 예측 과정을 자세히 이해하고 Python의 scikit-learn 라이브러리를 사용하여 K-평균 클러스터링을 수행하는 방법을 예제를 통해 보여줍니다. K-평균 클러스터링은 데이터 분석, 영상 처리 등 다양한 분야에 적용할 수 있는 간단하고 효율적인 클러스터링 알고리즘입니다. 이 블로그가 머신러닝과 인공지능을 배우는 데 도움이 되길 바랍니다!