股票的层次结构
在第 1 章,您使用 k-means 聚类根据股票价格变动对公司进行了聚类。现在,您将对这些公司执行层次聚类。已提供一个 NumPy 数组 movements(价格变动),其中每一行对应一家公司的数据,以及一个公司名称列表 companies。由于 SciPy 的层次聚类无法整合进 sklearn 的 pipeline,因此您需要使用 sklearn.preprocessing 中的 normalize() 函数,而不是 Normalizer。
linkage 和 dendrogram 已经从 scipy.cluster.hierarchy 导入,PyPlot 已以 plt 的名称导入。
本练习是课程的一部分
Python 中的无监督学习
练习说明
- 从
sklearn.preprocessing导入normalize。 - 对
movements使用normalize()函数,为每只股票重新缩放价格变动。 - 对
normalized_movements调用linkage()函数,并使用'complete'连接方式,计算层次聚类。将结果赋值给mergings。 - 绘制该层次聚类的树状图,使用公司名称列表
companies作为labels。此外,像在上一个练习中一样,指定关键字参数leaf_rotation=90和leaf_font_size=6。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Import normalize
____
# Normalize the movements: normalized_movements
normalized_movements = ____
# Calculate the linkage: mergings
mergings = ____
# Plot the dendrogram
____
plt.show()