0

k セントロイド クラスタリング関数は、数値データ マトリックスを入力として受け取ります。ただし、ここには距離行列しかありません。k重心アルゴリズムは距離行列で機能すると思います。

公式ドキュメントからの抜粋

使用法

library(flexclust)
kcca(x, k, family=kccaFamily("kmeans"), weights=NULL, group=NULL,
     control=NULL, simple=FALSE)

引数

x    A numeric matrix of data, or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns).

具体的には、距離行列をこの kcca() 関数に送信する必要があります。しかし、本によると、データマトリックスを取り込みます。

アップデート

仕事

バイナリ マトリックスの行をクラスター化します。各行はユーザーを表します。

データ

生データは、このような 10^5 * 10^5 バイナリ マトリックスです。

   1  2  3  4  5  6  7  8 ... 10^5
 _________________________
1| 0  0  1  0  1  1  1  0
2| 0  1  1  0  1  1  1  0
3| 0  0  0  1  0  1  1  0
4| 0  1  1  1  0  1  1  0
.
.
.
10^5

R が処理するには大きすぎます。また、行のクラスタリングに関心があるため、Java で行の距離を計算し、R が読み取る距離行列を生成します。

   1  2  3  4 ...
  ---------------
2| 2  
3| 1  3
4| 3  2  5
.
.
.

次に問題は、 Rの K 重心関数が距離行列ではなく生データ行列を取り込むことです。

このアップデートがお役に立てば幸いです。

4

1 に答える 1

3

K-centroids はcentroidsを計算できる必要があります。

おそらく、代わりにk-medoids akaを使用したいでしょう:PAM

http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/pam.html

ここで、クラスターは、k-means / k-centroids のような平均ベクトル ("centroid") の代わりに、元のデータ ベクトルの中心オブジェクト ("medoid"、中央値に似ていますが、距離に基づく) によって表されます。 .

于 2013-07-29T07:52:13.683 に答える