KMeans を使った株式のクラスタリング
この演習では、企業の株価の一日あたりの値動き(取引日ごとの始値と終値の差(ドル))を使って企業をクラスタリングします。2010 年から 2015 年までの一日あたりの値動きを格納した NumPy 配列 movements(Yahoo! Finance から取得)が与えられており、各行が企業、各列が取引日に対応します。
銘柄によって株価の水準は異なります。これを考慮するため、パイプラインの最初に Normalizer を入れてください。Normalizer は、クラスタリングを始める前に各企業の株価系列を相対的なスケールにそれぞれ変換します。
Normalizer() は、前の演習で使用した StandardScaler() とは異なる点に注意してください。StandardScaler() が(前の演習の魚のデータのような)特徴量を、平均を引いて分散を 1 にスケーリングすることで標準化するのに対し、Normalizer() は他のサンプルとは独立に、各サンプル(ここでは各企業の株価系列)を再スケーリングします。
KMeans と make_pipeline はすでにインポートされています。
この演習はコースの一部です
Pythonで学ぶ教師なし学習
演習の手順
sklearn.preprocessingからNormalizerをインポートします。Normalizerのインスタンスを作成し、normalizerと名付けます。KMeansのインスタンスを作成し、クラスタ数を10に設定してkmeansと名付けます。make_pipeline()を使って、normalizerとkmeansを連結したパイプラインpipelineを作成します。movements配列に対してパイプラインを学習(fit)させます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import Normalizer
____
# Create a normalizer: normalizer
normalizer = ____
# Create a KMeans model with 10 clusters: kmeans
kmeans = ____
# Make a pipeline chaining normalizer and kmeans: pipeline
pipeline = ____
# Fit pipeline to the daily price movements
____