k-NN의 판단 방식
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 6번째.
이 장에서는 k-NN을 자세히 살펴봅니다. 장을 마칠 때쯤이면 순한 고추와 매운 고추를 보여 주는 이 지도처럼 어떤 데이터든 지도를 그릴 수 있게 됩니다:
새 고추에 라벨을 지정하기 위해 k-최근접 이웃은 가장 가까운 학습용 고추 k개를 찾고, 이 고추들이 투표합니다:
가장 가까운 것은 거리가 가장 작은 것을 뜻하며, 2절에서 배운 내용입니다. k를 선택합니다:
model = KNeighborsClassifier(n_neighbors=5)n_neighbors는 별도로 지정하지 않으면 k가 5입니다. 클래스가 두 개일 때 홀수 k로는 동점이 절대 발생하지 않습니다.
챌린지
쉬움천문학 동아리는 stars.csv에 있는 별을 온도와 등급에 따라 왜성과 거성으로 분류합니다. 시작 코드는 새로운 별과 k를 읽습니다.
- 직접 k개의 가장 가까운 별을 찾으세요.
distance열을 추가한 다음 정렬하세요. - 그중 거성이 몇 개인지 출력한 다음, 투표에서 승리한 유형을 출력하세요.
- 모든 별로 학습한 k-NN 모델의 k를 사용해 결과를 확인하세요.
다른 동아리의 별과 k = 5에 대해:
Giants among the nearest 5: 4
By hand: giant
Model: giant직접 해보기
import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
# 별 하나당 한 행: 온도는 천 켈빈 단위, 등급은 값이 작을수록 더 밝음, 왜성 또는 거성
stars = pd.read_csv("stars.csv")
X = stars[["temp_kK", "magnitude"]]
y = stars["type"]
# 새로운 별과 k
temp = float(input())
mag = float(input())
k = int(input())
new_star = pd.DataFrame({"temp_kK": [temp], "magnitude": [mag]})
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러