Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 高斯混合模型聚类算法_R_K Means_Apache Spark Mllib_Sparklyr_Gmm - Fatal编程技术网

R 高斯混合模型聚类算法

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

我正在尝试使用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_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