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' và '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.pyplot là plt, seaborn là sns, và pandas là pd.
Bài tập này là một phần của khóa học
Phân cụm trong Python
Hướng dẫn bài tập
- Import các thư viện
linkagevàfcluster. - 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()