Menu
CoddyTech

복습: 개 품종

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

challenge icon

챌린지

중급

한 개 보호소에는 견사 방이 다섯 개 있으며, 비슷한 품종끼리 같은 방을 쓰게 하려 합니다. breeds.csv에는 21개 품종이 있으며, 시작 코드에서 절단 높이인 cut을 설정합니다.

  1. features를 스케일링하고 Ward 트리를 만드세요.
  2. ax에 덴드로그램을 그리세요. 품종 이름은 90도 회전하고, 색상은 절단 높이까지만 표시하며, 회색 점선으로 절단선을 그리세요. 그래프를 표시하세요.
  3. 트리를 자르고, 실제 단위로 그룹 프로필을 만든 다음, 가장 가벼운 그룹부터 가장 무거운 그룹까지 각 그룹을 첫 번째 품종의 이름으로 표시해 출력하세요.

다른 보호소의 경우:

5 breeds like Maltese: 4.1 kg, 24 cm, energy 3.2, 14.4 years
3 breeds like Whippet: 12.7 kg, 46 cm, energy 4.7, 13.3 years

그리고 트리를 두 그룹으로 자르면 다음과 같습니다.

8개 품종의 트리로, 제목은 개 품종이며 이름이 위쪽으로 표시되어 있고, 높이 4에 그어진 회색 점선 절단선이 두 개의 색상 가지와 교차함: Maltese, Shih Tzu, Bichon Frise, Papillon, Toy Poodle; Whippet, Brittany, Basenji

그러면 Coddy가 여러분의 트리를 설명합니다.

직접 해보기

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster

# 21개 견종: 몸무게 (kg), 키 (cm), 활동성 1~5, 수명 (년)
breeds = pd.read_csv("breeds.csv")
features = ["weight_kg", "height_cm", "energy", "lifespan_yr"]
# 보호소에는 견사 5개가 있으므로 이 높이에서 트리를 자릅니다
cut = 2.5

fig, ax = plt.subplots(figsize=(8, 5))
fig.subplots_adjust(bottom=0.35)  # 트리 아래에 이름을 표시할 공간
ax.set_title("Dog Breeds")
ax.set_ylabel("Merge height")

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

비지도 학습의 모든 레슨

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