R 高斯混合模型聚类算法
我正在尝试使用Sparkyr中的高斯混合模型对数据进行聚类:R 高斯混合模型聚类算法,r,k-means,apache-spark-mllib,sparklyr,gmm,R,K Means,Apache Spark Mllib,Sparklyr,Gmm,我正在尝试使用Sparkyr中的高斯混合模型对数据进行聚类: ml_gaussian_mixture(formula= ~ var1 + var2 + var3 + var4 + var5, k = 5) 但是,调用此函数不会像ml\u kmeans()那样返回用于计算集群数量的度量(此函数返回WSSSE)。 有没有办法在Sparkyr中获得ml\u gaussian\u Mixed()的轮廓分数或BIC? gmm_model <- ml_gaussian_mixture(iris_tb
ml_gaussian_mixture(formula= ~ var1 + var2 + var3 + var4 + var5, k = 5)
但是,调用此函数不会像ml\u kmeans()
那样返回用于计算集群数量的度量(此函数返回WSSSE)。
有没有办法在Sparkyr中获得ml\u gaussian\u Mixed()
的轮廓分数或BIC?
gmm_model <- ml_gaussian_mixture(iris_tbl, Species ~ .)
然后可以使用它来获取BIC或AIC
我相信一定有办法直接得到它。但如果不是,您可以将BIC计算为
log(n) + k-1 + k * p + k * p * (p-1) / 2 - 2 * gmm_model$summary$log_likelihood
其中n
-样本数,k
-聚类数,p
-变量数。
在上面的例子中,k-1+k*p+k*p*(p-1)/2
是高斯混合模型中自由参数的数量(具有未计量的协方差矩阵)
例如:
library(sparklyr)
sc <- spark_connect(master = "local")
iris_tbl <- sdf_copy_to(sc, iris, name = "iris_tbl", overwrite = TRUE)
gmm_model <- ml_gaussian_mixture(iris_tbl, Species ~ .)
gmm_model$summary$log_likelihood
#[1] -294.1398
库(年)
它似乎不起作用。调用gmm_model$summary$log_时,我得到null。请参见编辑中的示例。很可能你没有适应。我很想知道你是怎么适应的。我适应了,但调用gmm_model$summary$log_likelion时仍然检索NULL。看看我给出的示例是否有效。如果是这样,那么很可能是与您的数据相关的问题。
library(sparklyr)
sc <- spark_connect(master = "local")
iris_tbl <- sdf_copy_to(sc, iris, name = "iris_tbl", overwrite = TRUE)
gmm_model <- ml_gaussian_mixture(iris_tbl, Species ~ .)
gmm_model$summary$log_likelihood
#[1] -294.1398