
250
|
第
7
章
df = sp500_px.loc[sp500_px.index >= '2011-01-01', syms1].transpose()
Z = linkage(df, method='complete')
7.3.2
树状图
层次聚类非常适合通过图形化方式表示成一棵树,这种表示称为
树状图
(
dendrogram
), 这
个名称来自于希腊语
dendro
(树)和
gramma
(图画)
。在
R
中,使用
plot
命令生成树状
图非常容易:
plot(hcl)
在
Python
中,可以使用
dendrogram
方法绘制出
linkage
函数的结果:
fig, ax = plt.subplots(figsize=(5, 5))
dendrogram(Z, labels=df.index, ax=ax, color_threshold=0)
plt.xticks(rotation=90)
ax.set_ylabel('distance')
结果如图
7-8
所示(请注意,我们绘制出的是彼此相似的公司,不是日期)。树的叶子表示
记录,树的分支的长度表示簇之间的相异度。
Google
和
Amazon
的收益之间的差异很大
,
它们与其他股票之间的差异更大。石油股票(
SLB
、
CVX
、
XOM
、
COP
)
聚集成了一个
簇,
Apple
(
AAPL
)自成一簇,其他股票彼此之间非常相似。
图 7-8:股票的树状图