Bắt đầu ngayBắt đầu miễn phí

Bắt gặp Pokémon: phân cụm phân cấp

Chúng ta sẽ tiếp tục điều tra các lần bắt gặp Pokémon huyền thoại từ bài tập trước. Hãy nhớ rằng trong biểu đồ scatter ở bài đó, bạn đã nhận ra hai khu vực có mật độ bắt gặp Pokémon cao. Điều này cho thấy các điểm dữ liệu tách thành hai cụm. Trong bài này, bạn sẽ tạo hai cụm cho các lần bắt gặp bằng phương pháp phân cụm phân cấp.

'x''y' là các cột tọa độ X và Y của vị trí bắt gặp, được lưu trong một pandas DataFrame, df. Bạn có sẵn để sử dụng: matplotlib.pyplotplt, seabornsns, và pandaspd.

Bài tập này là một phần của khóa học

Phân cụm trong Python

Xem khóa học

Hướng dẫn bài tập

  • Import các thư viện linkagefcluster.
  • Dùng hàm linkage() để tính khoảng cách theo phương pháp ward.
  • Tạo nhãn cụm cho từng điểm dữ liệu với hai cụm bằng hàm fcluster().
  • Vẽ các điểm bằng seaborn và gán màu khác nhau cho mỗi cụm.

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 linkage and fcluster functions
from scipy.cluster.hierarchy import ____, ____

# Use the linkage() function to compute distance
Z = ____(____, 'ward')

# Generate cluster labels
df['cluster_labels'] = ____(____, ____, criterion='maxclust')

# Plot the points with seaborn
sns.scatterplot(x=____, y=____, hue=____, data=df)
plt.show()
Chỉnh sửa và Chạy Mã