분류(Classification) - KNN(k-Nearest Neighbors)

수현·2024년 2월 20일

Machine Learning

목록 보기
5/7

미분류 데이터의 레이블 분류

미지의 데이터의 라벨을 분류하는 과정은 다음과 같다.

  1. 모델 구축: 데이터 분류를 위한 알고리즘을 기반으로 한 모델을 만든다.
  2. 학습: 모델은 제공된 레이블이 붙은 데이터(학습 데이터)로 부터 학습한다.
  3. 미지의 데이터 입력: 레이블이 없는 데이터를 모델에 입력으로 제공한다.
  4. 라벨 예측: 모델은 미지의 데이터 라벨을 예측한다.

예시

  • 학습 데이터(레이블 데이터): 사과 이미지(레이블: 사과), 바나나 이미지(레이블: 바나나)
  • 미지의 데이터 입력: 모르는 과일 이미지
  • 라벨 예측: 모델은 이미지를 분석하여 사과 또는 바나나로 라벨을 예측한다.

k-Nearest Neighbors, (k-NN)

kNN 알고리즘은 데이터 포인트의 라벨을 예측하기 위해 다음 과정을 거친다.

  1. k개의 가장 가까운 레이블된 데이터 포인트 찾기: 주어진 데이터 포인트 주변에서 가장 가까운 k개의 레이블이 붙은 데이터 포인트를 찾는다.
  2. 다수결 투표: k개의 가장 가까운 데이터 포인트들 중 다수가 속한 레이블로 데이터 포인트의 레이블을 예측한다.

예시

  • 데이터 포인트: 새로운 고객의 구매 성향 예측
    k개의 가까운 데이터 포인트: 가장 유사한 구매 이력을 가진 기존 고객 5명
  • 다수결 투표: 이 5명 중 3명이 '고가 제품 구매자', 2명이 '저가 제품 구매자'일 때, 새 고객은 '고가 제품 구매자'로 예측된다.

k-Nearest Neighbors: Fit(적합)

# KNeighborsClassifier 불러오기
from sklearn.neighbors import KNeighborsClassifier 

y = churn_df["churn"].values  # 타겟 변수(이탈 여부)
X = churn_df[["account_length", "customer_service_calls"]].values  # 특성 변수(계정 기간, 고객 서비스 호출 횟수)

# 이웃의 수가 6인 KNN 분류기 생성
knn = KNeighborsClassifier(n_neighbors=6)

# 데이터에 분류기를 적합시키기
knn.fit(X, y)

k-Nearest Neighbors: Predict(예측)

# X_new에 대한 레이블 예측
y_pred = knn.predict(X_new)

# 예측값 출력
print("예측값: {}".format(y_pred))

output
Predictions: [0 1 0]

profile
데이터 분석 공부중:)

0개의 댓글