K-means trên sân bóng đá
Ở chương trước, bạn đã dùng bộ dữ liệu lineup để tìm hiểu về phân cụm phân cấp (hierarchical). Ở chương này, bạn sẽ dùng lại dữ liệu đó để học về phân cụm k-means.
Nhắc lại: data frame lineup chứa vị trí của 12 cầu thủ tại thời điểm bắt đầu một trận bóng đá 6 đấu 6.
Cũng như trước, bạn biết trận này có hai đội trên sân, nên bạn có thể chạy k-means với k = 2 để xác định cầu thủ nào thuộc đội nào.
Lưu ý: trong hàm kmeans(), giá trị k được chỉ định bằng tham số centers.
Bài tập này là một phần của khóa học
Phân cụm bằng R
Hướng dẫn bài tập
- Xây dựng mô hình k-means tên
model_km2cho dữ liệulineupbằng hàmkmeans()vớicenters = 2. - Trích xuất vector gán nhãn cụm từ mô hình
model_km2$clustervà lưu vào biếnclust_km2. - Gắn các nhãn cụm này thành một cột
clustervào data framelineupvà lưu kết quả thành data frame mớilineup_km2. - Dùng ggplot để vẽ vị trí của từng cầu thủ trên sân và tô màu theo cụm của họ.
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.
# Build a kmeans model
model_km2 <- kmeans(___, centers = ___)
# Extract the cluster assignment vector from the kmeans model
clust_km2 <- ___
# Create a new data frame appending the cluster assignment
lineup_km2 <- mutate(___, cluster = ___)
# Plot the positions of the players and color them using their cluster
ggplot(___, aes(x = ___, y = ___, color = factor(___))) +
geom_point()