주식의 계층 구조
1장에서는 k-means 클러스터링으로 주가 변동에 따라 회사를 클러스터링했죠. 이제 회사들의 계층적 클러스터링을 수행해 보겠습니다. 각 행이 회사에 해당하는 NumPy 배열 movements(주가 변동)과 회사 이름 목록 companies가 제공되어 있습니다. SciPy의 계층적 클러스터링은 sklearn 파이프라인에 바로 맞지 않으므로, Normalizer 대신 sklearn.preprocessing의 normalize() 함수를 사용해야 합니다.
linkage와 dendrogram은 이미 scipy.cluster.hierarchy에서 임포트되어 있고, PyPlot도 plt로 임포트되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 Unsupervised Learning
연습 안내
sklearn.preprocessing에서normalize를 임포트하세요.movements에normalize()함수를 사용해 각 주식의 주가 변동을 재스케일하세요.'complete'링크지를 사용하여normalized_movements에linkage()함수를 적용해 계층적 클러스터링을 계산하세요. 결과를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()