2016-10-31 22 views
-1

Rを手動で指定せずに生成されるクラスタの数を判断する方法はありますか?クラスタの数を指定するR

文字列の値から「文字」を抽出した後、30000個の異なる値を持つ変数をクラスター化して、どの値を同じように扱うべきかを判断しました。おそらく同じであるが、空間に例えば句読点等を異なる値があるので、

Emilia Clarke 
Emilia Clark e 

は、私は1つの距離である要素と30000 X 30000行列を生成した1

として分類されるべきです単語を別の単語に。

#Get all letters from a string 
> extract_letters <- lapply(str_split(data01,""),function(x) names(table(x))) 
#Get the distance of . I produced a 30000x30000 matrix 
> compute_dist <- adist(extract_letters) 
#Cluster 
> hc <- hclust(as.dist(compute_dist)) 
#Plot via dendogram 
> plot(hc) 

Kindly see the result dendogram

次のコードは、私が多数のためにプロットを調べることができなかったので、しかし、これはすでにここには適用されません、私は小さいデータのために使用しています一つです入力。メッシーdendogramsので、私は

> rect.hclust(hc,k=7) 

をoutputedているどのように多くのクラスタを検出することができません私は、生成されるクラスタの数にはアイデアを得ません。私は、クラスタの数を決定するために導入されているパラメータk

cutree(hc, k = 7) 
+1

または予測。次に、クラスタリングはモデルの一部とみなすことができ、(クロス)検証に基づいてクラスタの数を最適化することができます。 – Roland

+0

@Roland、私は同じことが可能な値を分類するためにこれをやっています。 – icychamp

+0

私はそれを理解していますが、それはおそらく究極の目標ではありません。なぜ彼らは分類する必要がありますか?カテゴリ分類がうまく機能するかどうかをどうやって確認しますか? – Roland

答えて

0

にインデックスの多くを指定する必要があるため、私はcutreeを行うための方法はありませんので、私はhclust自体の出力に依存しています。最も一般的なメソッドインデックスはギャップインデックス、CHインデックス、DBインデックス、シルエットインデックスです。
これらの索引のほとんどは、クラスタ間の変動を最小限に抑えながらクラスタ間の変動を最大化しようとしています。 R NbClustパッケージの

はmethod.YouがNbClustパッケージの詳細を読むことができますクラスタリング階層とk平均のクラスタの数を決定するために約30の指標を導入して、私はあなたが推論のためのいくつかのモデルを使用するためにこれをやっていると仮定し https://cran.r-project.org/web/packages/NbClust/NbClust.pdf

関連する問題