- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下二进制数据框,df
。
structure(list(a = c(0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), b = c(0,
0, 0, 0, 0, 0, 1, 0, 1, 0, 1), c = c(0, 0, 0, 0, 1, 0, 0, 1,
0, 1, 0), d = c(1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), e = c(0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 1), f = c(0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1), g = c(0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), h = c(1, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0), i = c(0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
0)), class = "data.frame", row.names = c(NA, -11L), .Names = c("a",
"b", "c", "d", "e", "f", "g", "h", "i"))
> df
a b c d e f g h i
1 0 0 0 1 0 0 0 1 0
2 0 0 0 0 0 0 1 0 0
3 0 0 0 0 1 1 1 0 0
4 0 0 0 0 0 0 1 0 0
5 1 0 1 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0 1
7 0 1 0 1 0 0 0 0 0
8 1 0 1 0 0 0 0 1 0
9 0 1 0 0 0 0 0 1 1
10 0 0 1 1 0 0 0 0 1
11 0 1 0 0 1 1 0 0 0
我想检查行之间的相似性,因此使用 MDS 图。我在 dist
中使用 binary
(即 Jaccard)方法执行经典 MDS 缩放。
# Load libraries
library(dplyr)
library(ggplot2)
library(magrittr)
# Perform MDS scaling using binary method
mds_df <- df %>%
dist(method = "binary") %>%
cmdscale
接下来,我标记我的列,将它们绑定(bind)到我的原始数据框,并添加行号以用作我的绘图中的标签。
# Name columns
colnames(mds_df) <- c("mds_x", "mds_y")
# Bind to original data frame
df %<>%
cbind(mds_df) %>%
mutate(tags = row_number())
最后,我使用 ggplot2
绘制我的结果。
g <- ggplot(df) + geom_point(aes(x = mds_x, y = mds_y), size = 5)
g <- g + geom_text(aes(x = mds_x, y = mds_y, label = tags), position = position_jitter(width = 0.05, height = 0.05))
g <- g + xlab("Coordinate 1") + ylab("Coordinate 2")
print(g)
现在,请注意矩阵中的第 2 行和第 4 行完全相同。在图中,它们正好落在彼此之上。伟大的!说得通。接下来,查看第 6 行和第 7 行。它们没有共同的 1
值,但非常接近。唔。更糟糕的是,第 3 行和第 11 行有两个共同的 1
,但绘制得更远。很奇怪。
我意识到 Jaccard 方法将这些公共(public)元素与两个集合中的元素总数进行比较(即相交于并集),但第 6 行和第 7 行有三个元素不共同且不共同,而第 3 和 11 行有两个元素相同,两个不相同。直觉上,我觉得 3 和 11 应该比 6 和 7 靠得更近。这是因为距离度量选择不当还是我的编码/逻辑有缺陷?是否有另一种绘图方法可以更直观地显示这些结果?
最佳答案
由于您有 9 个变量,因此您要在 9 维空间中绘制 11 个观测值。当您将其压缩到二维空间时,细节会丢失。如果您使用 eig=TRUE
运行 cmdscale()
,您将获得有关最终解决方案的更多信息。 GOF
值是拟合优度,1.0 是满分。你有 .52,所以你在 2 维的 9 维中显示了大约 52% 的空间信息。那很好但不是很好。如果增加到 3 维,您将获得 .68 的 GOF
值。 cmdscale()
函数计算度量多维缩放(也称为主坐标分析)。
由于您已经加载了 vegan 包,您可以选择使用 monoMDS()
或 metaMDS()
尝试非度量多维 (NMDS) 缩放。 NMDS 的问题在于解决方案可以找到局部最小值,因此最好尝试多次运行并选择最好的一个。这就是 metaMDS()
所做的。默认情况下,它会尝试 20 个随机启动配置。如果其中 2 个基本相同,则它们是收敛的。您的数据没有找到 2 个相同的解决方案,所以我只是绘制了 20 个中最好的一个。使用 trymax=100
,我终于得到了收敛的解决方案,但该解决方案与使用默认 20 次尝试:
df.dst <- dist(df, method="binary")
df.meta <- metaMDS(df.dst)
plot(df.meta, "sites")
text(df.meta, "sites", pos=3)
我认为该图中的距离更好一些。当然 11 和 3 比 6 和 7 更接近。
关于r - 二进制数据的 MDS 图 : counterintuitive clustering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48788876/
从 Wildfly 8.2.1.Final 升级到 Wildfly 9.0.1.Final 后,我们开始收到很多警告,如下所示: WARNING [org.jgroups.protocols.TCP]
如果是,在哪里可以找到?!根据this infoq 条目,他们已经开源了。但是现在,他们的网站上没有这样的产品。 最佳答案 本页,http://terracotta.org/dl/oss-downlo
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicates: Difference between clustered and nonclustered index What
我将 H2 数据库用于包含大量时间序列的环境数据。时间序列只是定期(例如每小时一次)记录在数据库中的传感器的测量值。 表中存储的数据: CREATE TABLE hydr (dt timestamp
Cluster 和 MPP super 计算机架构之间有什么区别? 最佳答案 在集群中,每台机器在内存、磁盘等方面都在很大程度上独立于其他机器。它们使用普通网络上的一些变体相互连接。集群主要存在于程序
我正在尝试为 akka 集群构建一个大脑 split 解析器。但是很难模拟某些节点无法从原始集群的其余部分访问并形成自己的集群的场景。 不能通过停止和重启节点来完成,因为新启动的节点不是同一个节点,因
我正在尝试在我的应用程序中使用集群。但是,在导入语句中,我得到“无法解析导入 com.google.maps (clustering.Cluster)”。 此外,在使用 ClusterManager
我想知道 Hive 中 Cluster By 和 CLUSTERED BY 的主要区别是什么。 Cluster By 用于对表进行分桶。并且会用到Hash函数。 CLUSTERED BY 用于在 re
我有3台机器,为redis集群创建了6个节点,我几个月前创建成功了,但现在它掉线了,我尽力修复它,但它不起作用,所以我清理所有数据并重新创建它从零开始,当我使用以下命令创建集群时,它在这里阻塞,等待节
我尝试使用 swarm 和 consul 设置 docker 集群。我有 manager、host1 和 host2。 我在管理器上运行 consul 和 swarm manager 容器。 $ do
如果我不使用 DTW 作为距离度量,那么 tslearn.clustering.TimeSeriesKMeans 和 sklearn.cluster.KMeans 是否等同? 如果不是,谁能告诉我这两
我正在研究 Flink 1.9.1 的 docker/k8s 部署可能性。 我正在阅读/观看 [1][2][3][4]。 目前我们确实认为我们会尝试采用作业集群方法,尽管我们想知道这方面的社区趋势是什
我可以使用一些关于 R 中方法的建议来确定最佳集群数,然后用不同的统计标准描述集群。我是 R 的新手,对聚类分析的统计基础有基本的了解。 确定簇数的方法:在文献中,一种常用的方法是所谓的“肘部准则”,
我有一个查询无法执行,并显示“由于文件组“DEFAULT”中磁盘空间不足,无法为数据库“TEMPDB”分配新页面”。 在排除故障的过程中,我正在检查执行计划。有两个标记为“聚集索引扫描(聚集)”的昂贵
我刚刚下载了 Elasticsearch 发行版并运行了它。 curl 'localhost:9200' { "status" : 200, "name" : "cbs", "clu
我有一个集群,其“cluster_ Purpose”设置为“dev_test”。我想将其更改为“生产”。在文档中找不到任何内容。 最佳答案 回答我自己的问题。这是不可能的。 关于Azure ML :
如何将主聚集索引更改为非聚集索引。 (作为“辅助”表,我想对“标题”表的外键列使用聚集索引。) 这对我不起作用(错误似乎是合理的:) DROP INDEX ClientUsers.PK_ClientU
我注意到,当使用 sklearn.cluster.KMeans 从方法 .cluster_centers_ 获取集群时,集群中心和每个集群的手动计算均值似乎不会给出完全相同的答案。 对于小样本量,差异
我在集群环境中使用 Quartz Scheduler 作为 Spring bean。 我有一些用@NotConcurrent 注释的作业,它们在每个集群中运行一次(即仅在一个节点中,仅在一个线程中)。
Node.js 本身有一个名为 Cluster 的核心模块(引用:http://nodejs.org/docs/v0.8.3/api/cluster.html),Learnboost 发布了一个名为
我是一名优秀的程序员,十分优秀!