Menu
CoddyTech

복습: 와인 이웃

Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 10번째.

challenge icon

챌린지

쉬움

와인에 대해 이 장의 첫 번째 지도처럼 지도를 그려 보세요. 시작 코드는 와인 178개(특징 2개, 품종 0~2)를 나누고, ks를 나열하며 차트에 레이블을 붙입니다.

  1. 두 데이터 세트를 스케일링하되, 학습용 와인에 맞춰 스케일러를 학습합니다.
  2. 테스트 정확도가 가장 높은 k를 출력합니다(현재는 이렇지만, 더 공정한 평가는 7장에서 다룹니다).
  3. 그 k로 지도를 채웁니다. xx, yy 격자는 100×100이고, 양쪽 방향 모두 -3부터 3까지이며, 예측 결과는 zz에 저장합니다.
  4. 스케일링된 학습용 와인을 위에 산점도로 표시하고, names에서 가져온 레이블을 붙인 다음 범례를 추가합니다.

알코올과 플라보노이드를 사용하면 다음과 같습니다.

Best k: 13 (test accuracy 0.956)

알코올과 플라보노이드를 모두 스케일링한 와인 지도: 왼쪽은 주황색 영역, 오른쪽 위는 파란색 영역, 아래쪽은 초록색 영역이며, 각 클래스의 학습용 와인이 위에 표시되고 범례가 있음

Coddy가 지도를 설명해 줍니다.

직접 해보기

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler

# 세 가지 재배 품종의 와인 178개, 클래스 0, 1, 2
wine = load_wine()
# 열 6과 12: flavanoids 및 프롤린
X = wine.data[:, [6, 12]]
y = wine.target
names = ["cultivar A", "cultivar B", "cultivar C"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = range(1, 32, 2)  # k = 1, 3, 5, ..., 31

fig, ax = plt.subplots()
ax.set_title("Wine Neighbors")
ax.set_xlabel("flavanoids (scaled)")
ax.set_ylabel("proline (scaled)")

# 아래에 코드를 작성하세요

지도 학습의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러