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

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

Xem khóa học

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

  • Xây dựng mô hình k-means tên model_km2 cho dữ liệu lineup bằng hàm kmeans() với centers = 2.
  • Trích xuất vector gán nhãn cụm từ mô hình model_km2$cluster và lưu vào biến clust_km2.
  • Gắn các nhãn cụm này thành một cột cluster vào data frame lineup và lưu kết quả thành data frame mới lineup_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()
Chỉnh sửa và Chạy Mã