始める無料で始める

サッカーフィールドでの k-means クラスタリング

前の章では lineup データセットを使って階層的クラスタリングを学びました。この章では同じデータを使って k-means クラスタリングを学びましょう。 復習として、lineup データフレームには 6v6 サッカーの試合開始時における 12 人の選手の位置情報が含まれています。

今回も、フィールドには2つのチームがいることがわかっています。そこで k = 2 を使って k-means 分析を行い、各選手がどちらのチームに属するかを判定しましょう。

kmeans() 関数では、k の値を centers パラメータで指定することに注意してください。

この演習はコースの一部です

Rによるクラスター分析

コースを見る

演習の手順

  • kmeans() 関数を使い、centers = 2 を指定して lineup データの k-means モデル model_km2 を作成してください。
  • モデルからクラスター割り当てのベクトル model_km2$cluster を取り出し、変数 clust_km2 に格納してください。
  • クラスター割り当てを cluster という列として lineup データフレームに追加し、結果を新しいデータフレーム lineup_km2 として保存してください。
  • ggplot を使って各選手のフィールド上の位置をプロットし、クラスターごとに色分けしてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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()
コードを編集して実行