使用 KMeans 分群股票
在這個練習中,你會使用公司每日股價波動來做分群(也就是每個交易日收盤價與開盤價的美元差)。你會拿到一個 NumPy 陣列 movements,其中包含 2010 到 2015 年(來自 Yahoo! Finance)的每日波動:每一列代表一間公司,每一欄代表一個交易日。
有些股票本來就比較貴。為了考量這點,請在管線的最前面加入 Normalizer。在分群開始前,Normalizer 會分別把每家公司的股價轉換到相對尺度。
注意,Normalizer() 和你在前一個練習用的 StandardScaler() 不同。StandardScaler() 會對「特徵」做標準化(例如前一題魚類資料的各項特徵),方式是移除平均值並縮放到單位變異;而 Normalizer() 則是對「每個樣本」— 在這裡指每家公司的股價 — 各自重新縮放,彼此獨立。
KMeans 與 make_pipeline 已替你匯入。
本練習屬於課程
Unsupervised Learning in Python
練習說明
- 從
sklearn.preprocessing匯入Normalizer。 - 建立一個名為
normalizer的Normalizer實例。 - 建立一個名為
kmeans、具有10個叢集的KMeans實例。 - 使用
make_pipeline()建立名為pipeline的管線,串接normalizer與kmeans。 - 將管線擬合到陣列
movements。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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
____