簡體   English   中英

R中使用hclust的加權觀測頻率聚類

[英]Weighted observation frequency clustering using hclust in R

我有一個500K觀測值的大型矩陣,可以使用分層聚類進行聚類。 由於尺寸大,我沒有計算能力來計算距離矩陣。

為了克服這個問題,我選擇匯總我的矩陣以合並那些將我的矩陣減少到大約1萬個觀測值的觀察值。 我有此匯總矩陣中每一行的頻率。 現在,我需要將此頻率作為權重合並到我的層次結構集群中。

數據是500K觀測值的數字變量和分類變量的混合,因此我使用了菊花包來為我的聚合數據集計算出更高的相似度。 我想將stats包中的hclust用於聚合數據集,但是我想考慮每次觀察的頻率。 從hclust的幫助信息中,參數如下:

    hclust(d, method = "complete", members = NULL)

成員參數的信息為:NULL或長度為d的向量。 請參閱“詳細信息”部分。 當您查看詳細信息部分時,您將獲得:如果members != NULL ,則d被視為聚類之間的差異矩陣,而不是單例之間的相似性,並且成員給出每個聚類的觀察次數。 這樣,可以“在樹狀圖的中間開始”層次聚類算法,例如,以便在切割上方重建樹的一部分(請參見示例)。 僅對於有限數量的距離/鏈接組合,可以有效地計算聚類之間的差異(即,沒有簇本身),最簡單的是平方的歐幾里得距離和質心鏈接。 在這種情況下,聚類之間的差異是聚類平均值之間的平方歐幾里德距離。

從上面的描述中,我不確定是否可以將頻率權重分配給成員參數,因為尚不清楚這是否是此參數的目的。 我想這樣使用它:

hclust(d, method = "complete", members = df$freq)

其中df$freq是聚合矩陣中每一行的頻率。 因此,如果將一行重復10次,則該值為10。

如果有人可以幫助我,那將是很棒的,

謝謝

是的,這對於大多數鏈接(特別是單個鏈接,組平均鏈接和完整鏈接)都可以正常工作。 對於病房等,您需要自己正確考慮體重。

但是即使那部分也不難。 只需確保使用簇的大小,因為您需要傳遞兩個簇的距離,而不是兩個點。 因此,矩陣應包含位置x處n1個點和位置y處n2個點的距離。 對於最小值/最大值/平均值,此n消失或抵消。 對於病房,您應該獲得類似於SSQ的公式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM