回顾:犬种
本课属于 Coddy Machine Learning 学习旅程的“无监督学习”单元。第 19 课,共 51 课。
挑战
中等一家狗狗收容所有五间犬舍,希望相似的犬种住在同一间。breeds.csv 中有 21 个犬种;起始代码设置了切割高度 cut。
- 缩放
features,并构建一棵 ward 树。 - 在
ax上绘制它的树状图:犬种名称旋转 90 度,颜色在切割高度处停止,并画一条灰色虚线作为切割线。显示图表。 - 切割这棵树,用实际单位描述各组,并按体重从轻到重打印每组信息,每组以其中第一个犬种命名。
对于另一家收容所:
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以及它切成 2 组的树:
然后 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 在线编译器