问题标签 [multi-dimensional-scaling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multi-dimensional-scaling - R中的多维缩放(手动完成)
如何通过 R 中的迭代专业化手动进行多维缩放?有谁知道如何编码 Guttman 的变换?
r - R中格特曼变换的矩阵V
我正在尝试编写一个代码来获取矩阵 V。 V 给出了如图所示。Wijmatrix(1,n,n)
这就是我目前所拥有的,但它给了我一个只有 1 和 11 的矩阵。它认为这是不对的。有人可以告诉我我做错了什么吗?
我正在使用这个数据集矩阵:
python - 相异矩阵中具有缺失值的多维缩放
我有一个相异矩阵,我想使用sklearn.manifold.MDS函数在其上执行多维缩放 (MDS)。该矩阵中某些元素之间的差异没有意义,因此我想知道是否有办法在稀疏矩阵或缺失值的矩阵上运行 MDS?根据这个问题,与 0 的差异被视为缺失值,但我无法在官方文档中找到此声明。值 0 的差异不是被解释为彼此非常接近的点吗?
欢迎任何关于如何基于稀疏相异矩阵获得我的高维数据集的低维表示的建议。谢谢!
r - 从数据帧 R 手动构建 SIMPER 对比矩阵
我正在使用包中的simper
功能vegan
。简而言之,simper
比较一组组并计算哪些变量对它们的差异贡献最大,以及在cusum
给出累积贡献的列中贡献了多少。输出是每个组间对比及其结果的嵌套列表。例如。
由此,我对 1) 每个嵌套列表的名称(即正在对比的组)、2) 行名(即哪些变量导致差异)和 3) cusum 列(即有多少)感兴趣他们做出了贡献)。
我想把它变成一个对比矩阵,显示每个组间对比的前 3 个贡献变量,以便更容易阅读并且不占用太多空间。这是我在excel中制作的一个例子:
我怀疑这会很棘手,但这是我到目前为止所拥有的:
这给出了这个整洁的小数据框:
但我不确定从这里去哪里。我看到这contrasts(dune.env$Management)
将给出矩阵的框架:
但我不确定如何手动填充它。任何帮助将不胜感激。
python - 多维缩放到python中的数据
我有以下代码将多维缩放应用于名为的数据样本parkinsonData
:
有了这个,我得到了这个 MDS 算法的 4 个不同的图,由于随机种子,它们都是不同的。这些图有不同的颜色,但parkinsonData
有一个名为status
0 或 1 值的列,我想在每个不同颜色的图中显示这种差异。
例如我想实现:
一张图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同颜色。
第二个图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同的颜色。(两种颜色都与第一个图不同)
第三个图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同的颜色。(两种颜色都不同于第一个和第二个图)
第四个图,状态字段中的 0 值使用一种颜色,状态字段中的 1 值使用不同的颜色。(两种颜色都与第一、二、三图不同)
任何人都知道如何实现这种预期的行为?
r - R中的大规模信号处理
我有高维数据,用于大脑信号,我想用 R 来探索。
因为我是一名数据科学家,所以我真的不使用 Matlab,而是使用 R 和 Python。不幸的是,与我合作的团队正在使用 Matlab 来记录信号。因此,对于那些对数据科学感兴趣的人,我有几个问题。
Matlab 文件,记录的数据,是具有以下尺寸的单个对象:1000*32*6000
1000:表示信号的采样率。
32:表示通道数。
6000:表示以秒为单位的时间,因此是 1 小时 40 分钟长。
我面临的问题/挑战:
我将我拥有的“mat”文件转换为 CSV 文件,因此我可以在 R 中使用它们。但是,CSV 文件是二维文件,尺寸为:1000*192000。
CSV 文件相当大,大约 1.3 GB。有没有更好的方法将“mat”文件转换为与 R 兼容且尺寸更小的文件?我用 readMat 试过“R.matlab”,但它与第 7 版的 Matlab 不兼容;所以我尝试保存为 V6 版本,但它显示“错误:无法分配大小为 5.7 Gb 的向量”
读取 CSV 文件所需的时间相当长!加载数据大约需要 9 分钟。那是使用“fread”,因为基本 R 函数 read.csv 需要永远。有没有更好的方法来更快地读取文件?
一旦我将数据读入R,它是1000 * 192000;而它实际上是 1000*32*6000。有没有办法在 R 中拥有多维对象,在给定时间访问信号和时间框架变得更容易。 像 dataset[1007,2],这将是 1007 秒和通道 2 的时间范围。我想以这种方式访问它的原因是轻松比较时间范围并将它们相互绘制。
任何问题的任何答案将不胜感激。
r - 图 metaMDS 中的轴中断
我有一张来自 16 个不同样本(木质部树组织)的真菌物种丰度表,这些样本属于三个健康类别。
我想根据健康等级可视化这些样本的相似性。我已经运行了 metaMDS(素食包)并绘制了 metaMDS 的输出,这是获得的距离的示例(data_mds)
如果我绘制它们,样本 9 将扭曲所有图形,因此所有其他 15 个样本将在一个位置重叠(如图所示)。
我尝试使用 gap.plot 在两组之间创建一个间隙,但我不知道如何创建一个图,其中 15 个样本更加分开(x 和 y 轴),然后为样本 9 设置一个单独的部分. 使用此代码,我设法创建了两个单独的图,但正如您在图 2 中看到的那样,15 个样本并未分布在 x 轴上。
感谢您的帮助
r - isoMDS(d) 中的错误:对象之间的距离为零或负数
我正在尝试使用包isoMDS
中的函数执行非度量 MDS(R 版本 3.3.3),MASS
但出现此错误:
这是我正在做的一个例子:
我不知道是否有办法解决这个问题,或者我做错了什么。我知道对象 1 和 2 是相同的,这可能就是距离为负数或等于零的原因。我发现我的问题是“常见问题解答”,但我找到的唯一答案之一是:
简短回答:您无法比较包括 NA 在内的距离,因此无法找到距离的单调映射。如果两行的数据确实相同,您可以在执行 MDS 时轻松删除其中的一个,然后将找到的位置分配给另一行。
所以,我的下一个问题是:在执行 MDS 时如何删除行,还有其他方法可以执行 NMDS 吗?
任何帮助将不胜感激!
c# - 将多个二维数组 [][] 放在相同的长度上
在处理锯齿状数组 [][] 时,我遇到了一个巨大的问题。
我编写了一个与大量 CSV 文件交互的程序。它会读取它们然后比较它们。现在我有一个问题,如果数组 A 具有 10 行和 10 列的维度,但数组 B 只有 5 行和 5 列的维度。我在数组 B 上得到“超出范围”。这只是一个例子,如果我有一个数组,每列中的行数不同,它会变得更糟......
我尝试检查“null”,但这不起作用,因为一旦它尝试访问该字段,我就会得到“超出范围”......
现在我有两个理论来解决这个问题:
A.)检查数组 B 中的“超出范围”,如果是,则在同一字段中填充数组 A,并使用“0”
B.)检查数组 A 和数组 B 是否具有相同的维度,如果不是,则用“0”填充数量较少的数组,使其具有相同的数量
在这两种解决方案上,我完全不知道如何在 C# 中做到这一点......我总是超出范围......
我目前对 1 个数组所做的是:
所以我得到了数组的维度并遍历它,将每个值设置为 1。但是我该如何处理我的 2 个数组的问题呢?
我研究了一下,但找不到任何解决方案=/
提前致谢
编辑:我正在尝试做的事情:
r - 在 R 的 vegan 包中使用 metaMDS 的 NMDS 的重叠百分比
如何计算 NMDS 图中 95% 置信区间椭圆的重叠百分比?我使用了“vegan”包,我的代码发布在下面。
数据表的列按物种,行按地块#1-16 分为四组,如下面的 NMDS 所示。这里以几行和几列为例。十列示例在这里:https ://www.dropbox.com/s/gf5llxm986i3kld/mydata.txt?dl=0 我很想按“治疗”排序,这样我就有四个椭圆
用于生成 NMDS 图的代码是:
`
下面是生成的 NMDS 图。