私はk-meansクラスタリングをデータフレームdf1上で実行していますが、私は各観測の最も近いクラスタ中心を計算する簡単なアプローチを探しています新しいデータフレームdf2(同じ変数名を持つ)。 df1をトレーニングセット、df2をテストセットとみなします。トレーニングセットをクラスタリングし、各テストポイントを正しいクラスタに割り当てる必要があります。k-meansクラスタリング後の新しいデータのためのクラスタへの簡単なアプローチ
私はapply
機能といくつかの簡単なユーザー定義関数(トピックに関する以前の記事は、通常と同様のものを提案している)でこれを行う方法を知っている:
df1 <- data.frame(x=runif(100), y=runif(100))
df2 <- data.frame(x=runif(100), y=runif(100))
km <- kmeans(df1, centers=3)
closest.cluster <- function(x) {
cluster.dist <- apply(km$centers, 1, function(y) sqrt(sum((x-y)^2)))
return(which.min(cluster.dist)[1])
}
clusters2 <- apply(df2, 1, closest.cluster)
しかし、私はこのクラスタリングを準備しています学生がapply
関数に慣れていないコースの例ですから、組み込み関数を使ってクラスターをdf2に割り当てることができればと思っています。最も近いクラスタを見つける便利な組み込み関数がありますか?
[ここでRコードと説明と異なるクラスタリング手法を試すのに最適なリソースである](http://manuals.bioinformatics.ucr.edu/home/R_BioCondManual# TOC-Clustering-Exercises)[biganalyticsパッケージ](http://cran.r-project.org/web/packages/biganalytics/biganalytics.pdf)もあり、メモリに依存せず、K-meansアルゴリズム – marbel
学生に 'apply()'を導入することは賢明です(特別な機会に覚えておかなければならないさまざまなパッケージにそれらを導入するのではなく、繰り返し使用することになります) (彼らが再びそれらを使用する場合)。 – naught101