Phân cụm cổ phiếu bằng KMeans
Trong bài này, bạn sẽ phân cụm các công ty dựa trên biến động giá cổ phiếu hằng ngày (tức là chênh lệch đô-la giữa giá đóng cửa và mở cửa cho mỗi ngày giao dịch). Bạn được cung cấp một mảng NumPy movements gồm các biến động giá hằng ngày từ 2010 đến 2015 (lấy từ Yahoo! Finance), trong đó mỗi hàng tương ứng với một công ty và mỗi cột tương ứng với một ngày giao dịch.
Một số cổ phiếu đắt hơn những cổ phiếu khác. Để tính đến điều này, hãy thêm một Normalizer ở đầu pipeline. Normalizer sẽ biến đổi riêng lẻ giá cổ phiếu của từng công ty về cùng một thang đo tương đối trước khi bắt đầu phân cụm.
Lưu ý Normalizer() khác với StandardScaler(), mà bạn đã dùng ở bài trước. Trong khi StandardScaler() chuẩn hóa các feature (như các đặc trưng của dữ liệu cá ở bài trước) bằng cách trừ trung bình và chia theo độ lệch chuẩn để có phương sai đơn vị, thì Normalizer() lại co giãn lại mỗi mẫu - ở đây là giá cổ phiếu của từng công ty - một cách độc lập với các mẫu khác.
KMeans và make_pipeline đã được import sẵn cho bạn.
Bài tập này là một phần của khóa học
Unsupervised Learning bằng Python
Hướng dẫn bài tập
- Import
Normalizertừsklearn.preprocessing. - Tạo một đối tượng
Normalizertên lànormalizer. - Tạo một đối tượng
KMeanstên làkmeansvới10cụm. - Dùng
make_pipeline()để tạo một pipeline tênpipelinenốinormalizervàkmeans. - Fit pipeline với mảng
movements.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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
____