股票的階層結構
在第 1 章中,你使用 k-means 分群,根據股票價格變動來分群公司。現在你將對這些公司進行階層式分群。你會拿到一個包含價格變動的 NumPy 陣列 movements(列代表公司),以及公司名稱清單 companies。由於 SciPy 的階層式分群無法放進 sklearn 的 pipeline,因此你需要改用 sklearn.preprocessing 中的 normalize() 函式,而不是 Normalizer。
linkage 與 dendrogram 已從 scipy.cluster.hierarchy 匯入,且 PyPlot 也已以 plt 名稱匯入。
本練習屬於課程
Unsupervised Learning in Python
練習說明
- 從
sklearn.preprocessing匯入normalize。 - 對
movements使用normalize()函式,為每檔股票的價格變動重新縮放。 - 對
normalized_movements套用linkage(),並使用'complete'連結法,以計算階層式分群。將結果指定給mergings。 - 繪製階層式分群的系統樹(dendrogram),並使用公司名稱清單
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()