- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试使用 fviz_cluster()
可视化 k-medoid (PAM) 聚类结果,但函数不接受它们。
它在 ?fviz_clust
中声明“对象参数 = 由函数 pam()
、clara()
创建的类“分区”的对象> 或 fanny()
在集群包中"
我已经尝试通过其他方式访问聚类向量;
pam_gower_2$clustering
pam_gower_2[[3]]
然后我得到一个单独的错误:
Error: $ operator is invalid for atomic vectors"
pam_gower_2 的类是分区吗?正如论证所期望的那样。
class(pam_gower_2)
> class(pam_gower_2)
[1] "pam" "partition"
这是我正在使用的代码:
df_gower <- df[, c(2:21)]
df_gower <- df_gower[, c(1:4, 11:12, 14:15, 5:10, 16:20)]
gower_dist <- daisy(df_gower, metric="gower", type=list(ordratio=c(2:4, 6), symm=c(7:8), asymm=c(5), logratio=c(13)))
gower_mat <- as.matrix(gower_dist)
tendency_gower <- get_clust_tendency(gower_mat, 100, graph=T)
tendency_gower$hopkins_stat
fviz_nbclust(gower_mat, pam, method="wss")
fviz_nbclust(gower_mat, pam, method="silhouette")
pam_gower_2 <- pam(gower_mat, k=2, diss=T)
# all of the above functions as expected
fviz_cluster(pam_gower_2, gower_mat)
上面一行产生以下错误:
Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x),:'data' must be of a vector type, was 'NULL'
非常感谢您的反馈/修复、为什么这不起作用的原因,或可视化的替代方法。
谢谢:)
最佳答案
这是fviz_cluster
的文档:
data: the data that has been used for clustering. Required only when object is a class of kmeans or dbscan.
因此,您只需将 pam
的结果传递给 fviz_cluster
。
这里是 fviz_cluster
和 pam
的最小示例:
library("factoextra")
library("cluster")
data("USArrests")
res <- pam(USArrests, 4)
fviz_cluster(res)
如果您将 pam
与距离矩阵一起应用,则会出现错误。解决方法是在之后设置结果的 data
字段。下面是使用距离矩阵 (diss
) 的修改示例:
library("factoextra")
library("cluster")
data("USArrests")
diss = dist(USArrests)
res <- pam(diss, 4)
res$data = USArrests
fviz_cluster(res)
关于r - fviz_cluster() 不接受 k-medoid (PAM) 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58716614/
为什么要使用 kmedoids 算法而不是 kmeans?难道仅仅是事实可在 kmeans 中使用的指标数量非常有限,还是还有更多? 是否有数据示例,选择最佳代表更有意义来自数据而不是来自 R^n 的
我正在关注一篇优秀的媒体文章:https://towardsdatascience.com/k-medoids-clustering-on-iris-data-set-1931bf781e05从头开始
我对 K-medoids 的理解是质心是从现有点中随机选取的。通过将剩余点除以最近的质心来计算聚类。计算误差(绝对距离)。 a) 如何选择新的质心?从示例中可以看出它们是随机挑选的?然后再次计算误差,
我找到了 this K-Medoids 的实现,我决定在我的代码中尝试它。 我的原始数据集是一个 21x6 矩阵。 要生成我正在使用的距离矩阵: import scipy.spatial.distan
我一直在尝试用 C++ 实现 k-medoids。到目前为止,我已经想出通过提供簇数(或种子数)来实现 k-medoids,as described in Wikipedia's k-medoids
我研究过 K-medoid 算法 (PAM) 是一种基于分区的聚类算法,是 K-means 算法的变体。它解决了K-means产生空簇和对异常值/噪声敏感的问题。 但是,K-medoid 的时间复杂度
我找不到在 Pyspark 中使用 PAM (K-medoids) 的库。 我在 Scala 中发现了这个: https://gist.github.com/erikerlandson/c3c35f0
我找不到在 Pyspark 中使用 PAM (K-medoids) 的库。 我在 Scala 中发现了这个: https://gist.github.com/erikerlandson/c3c35f0
尝试使用 fviz_cluster() 可视化 k-medoid (PAM) 聚类结果,但函数不接受它们。 它在 ?fviz_clust 中声明“对象参数 = 由函数 pam()、clara() 创建
我一直在研究和研究基于分区的聚类算法,如 K-means 和 K-Medoids。我了解到,与 K-means 相比,K-medoids 对于离群值更稳健。但是,我很好奇如果在分配数据点期间,两个或多
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我正在阅读有关 k-means 聚类和 k-medoid 聚类之间差异的内容。 据推测,在 k-medoid 算法中使用成对距离度量(而不是更熟悉的欧几里得距离平方和来评估我们使用 k-means 发
我是一名优秀的程序员,十分优秀!