始める無料で始める

株式の階層構造

第1章では、k-meansクラスタリングを使って企業を株価の値動きに応じてクラスタリングしました。今回は、企業に対して階層的クラスタリングを実行しましょう。

企業ごとの株価の値動きを表すNumPyの配列movements(行に各企業が入る)と、企業名のリストcompaniesがあります。SciPyの階層的クラスタリングは sklearnのパイプラインに組み込めないため、Normalizerの代わりにsklearn.preprocessingnormalize()関数を使う必要があります。

linkagedendrogramはすでにscipy.cluster.hierarchyからインポート済みで、PyPlotもpltとしてインポート済みです。

この演習はコースの一部です

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • sklearn.preprocessingからnormalizeをインポートしてください。
  • movementsnormalize()関数を適用し、各銘柄の株価の値動きを再スケーリングしてください。
  • normalized_movementslinkage()関数を適用し、'complete'連結法を使って階層的クラスタリングを計算してください。結果をmergingsに代入します。
  • 企業名のリストcompanieslabelsとして使い、階層的クラスタリングのデンドログラムを作成してください。さらに、前の演習と同様にleaf_rotation=90leaf_font_size=6のキーワード引数も指定してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import normalize
____

# Normalize the movements: normalized_movements
normalized_movements = ____

# Calculate the linkage: mergings
mergings = ____

# Plot the dendrogram
____
plt.show()
コードを編集して実行