ลำดับชั้นของหุ้น
ในบทที่ 1 คุณได้ใช้ k-means clustering เพื่อจัดกลุ่มบริษัทตามการเคลื่อนไหวของราคาหุ้น ในแบบฝึกหัดนี้ จะลองทำ hierarchical clustering ของบริษัทเหล่านั้นแทน โดยจะมี NumPy array ของการเคลื่อนไหวของราคา movements ให้พร้อมแล้ว โดยแต่ละแถวสอดคล้องกับบริษัทหนึ่ง และมีรายชื่อบริษัท companies ให้ด้วย เนื่องจาก SciPy hierarchical clustering ไม่สามารถใช้งานร่วมกับ sklearn pipeline ได้โดยตรง จึงต้องใช้ฟังก์ชัน normalize() จาก sklearn.preprocessing แทน Normalizer
linkage และ dendrogram ถูก import จาก scipy.cluster.hierarchy ไว้แล้ว และ PyPlot ถูก import เป็น plt แล้วเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Unsupervised Learning ใน Python
คำแนะนำการฝึกหัด
- Import
normalizeจากsklearn.preprocessing - ปรับสเกลการเคลื่อนไหวของราคาสำหรับแต่ละหุ้น โดยใช้ฟังก์ชัน
normalize()กับmovements - นำฟังก์ชัน
linkage()ไปใช้กับnormalized_movementsโดยใช้ linkage แบบ'complete'เพื่อคำนวณ hierarchical clustering แล้วกำหนดผลลัพธ์ให้กับตัวแปรmergings - พล็อต dendrogram ของ hierarchical clustering โดยใช้รายชื่อบริษัท
companiesเป็นlabelsพร้อมระบุ keyword argumentleaf_rotation=90และleaf_font_size=6เช่นเดียวกับแบบฝึกหัดก่อนหน้า
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import normalize
____
# Normalize the movements: normalized_movements
normalized_movements = ____
# Calculate the linkage: mergings
mergings = ____
# Plot the dendrogram
____
plt.show()