![](/img/trans.png)
[英]Compute dissimilarity between each pairs of categorical unit in a data frame in R
[英]Compute dissimilarity matrix for large data
我正在嘗試基於具有數值和分類特征的大數據框架計算差異矩陣。 當我從群集程序包運行daisy
函數時,我收到錯誤消息:
錯誤:無法分配大小為X的向量。
在我的情況下,X約為800 GB。 知道我該如何處理這個問題嗎? 另外,如果有人可以幫助我在並行內核中運行該功能,那也很好。 在下面,您可以找到計算虹膜數據集上相異矩陣的函數:
require(cluster)
d <- daisy(iris)
我以前也有過類似的問題。 在我的數據集的甚至5k行上運行daisy()
花費了很長時間。
我最終在h2o
包中使用了kmeans
算法,該算法並行化和1-hot編碼分類數據。 在將數據插入h2o.kmeans
之前,我只需要確保對數據進行居中和縮放(平均0 w / h2o.kmeans
= 1)。 這樣一來,聚類算法就不會對具有高標稱差異的列進行優先排序(因為它正在嘗試最小化距離計算)。 我使用了scale()
函數。
安裝h2o之后:
h2o.init(nthreads = 16, min_mem_size = '150G')
h2o.df <- as.h2o(df)
h2o_kmeans <- h2o.kmeans(training_frame = h2o.df, x = vars, k = 5, estimate_k = FALSE, seed = 1234)
summary(h2o_kmeans)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.