サッカーフィールドでの 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()