จัดกลุ่มหุ้นด้วย KMeans
ในแบบฝึกหัดนี้ จะได้จัดกลุ่มบริษัทโดยใช้การเคลื่อนไหวของราคาหุ้นรายวัน (กล่าวคือ ผลต่างเป็นดอลลาร์ระหว่างราคาปิดและราคาเปิดของแต่ละวันซื้อขาย) โดยมี NumPy array ชื่อ movements ที่บันทึกการเคลื่อนไหวของราคาระหว่างปี 2010 ถึง 2015 (รวบรวมจาก Yahoo! Finance) ซึ่งแต่ละแถวแทนบริษัทหนึ่ง และแต่ละคอลัมน์แทนวันซื้อขายหนึ่งวัน
ราคาหุ้นของแต่ละบริษัทมีระดับที่แตกต่างกัน เพื่อรับมือกับจุดนี้ ให้เพิ่ม Normalizer ไว้ที่ต้น pipeline เพื่อให้ Normalizer แปลงราคาหุ้นของแต่ละบริษัทให้อยู่ในสเกลสัมพัทธ์ก่อนที่การจัดกลุ่มจะเริ่มต้น
ควรทราบว่า Normalizer() แตกต่างจาก StandardScaler() ที่ใช้ในแบบฝึกหัดก่อนหน้า โดย StandardScaler() จะ standardize features (เช่น features ของข้อมูลปลาในแบบฝึกหัดก่อน) ด้วยการลบค่าเฉลี่ยและปรับให้มี unit variance ในขณะที่ Normalizer() จะ rescale แต่ละตัวอย่าง — ในที่นี้คือราคาหุ้นของแต่ละบริษัท — โดยอิสระจากตัวอื่น
KMeans และ make_pipeline ได้รับการนำเข้าให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Unsupervised Learning ใน Python
คำแนะนำการฝึกหัด
- นำเข้า
Normalizerจากsklearn.preprocessing - สร้าง instance ของ
Normalizerชื่อว่าnormalizer - สร้าง instance ของ
KMeansชื่อว่าkmeansโดยกำหนดให้มี10คลัสเตอร์ - ใช้
make_pipeline()เพื่อสร้าง pipeline ชื่อว่าpipelineที่เชื่อมต่อnormalizerและkmeansเข้าด้วยกัน - Fit pipeline กับ array
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
____