【发布时间】:2022-01-22 03:35:54
【问题描述】:
几周以来,我使用以下脚本生成了一个散点图,其中包含大约 10,000 个(非零,正)数据点。由于转换出现警告,只有少数 (
visual <- ggplot(data=dots, aes(GRNHLin, REDHLin)) +
geom_point(colour=rgb(0.17, 0.44, 0.71), size=0.500, alpha=0.250) +
scale_x_log10(breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x)), limits = c(1,1e4)) +
scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x)), limits = c(1,1e3))
visual
从本周开始,我想做一些基于模型的聚类。我编写的脚本(见下文)使用相同的数据集(10,000 个非零的正数据点),但由于以下原因而遗漏了 9,000 多个数据点:
Warning messages:
1: In self$trans$transform(x) : NaNs produced
2: Transformation introduced infinite values in continuous x-axis
3: In self$trans$transform(x) : NaNs produced
4: Transformation introduced infinite values in continuous y-axis
5: Removed 9692 rows containing missing values (geom_point).
这是第二个脚本:
dots.Mclust <- Mclust(dots, modelNames="VVV", G=8)
visual <- fviz_cluster(dots.Mclust,
ellipse=FALSE,
shape=20,
geom = c("point")) +
scale_x_log10(breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x)), limits = c(1,1e3)) +
scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x)), limits = c(1,1e4))
visual
编辑
一些附加信息:
数据集仅包含大于 0 的值。Head(dots.Mclust) 提供以下内容:
$data
GRNHLin RED2HLin
[1,] 81.50364 176.379654
[2,] 57.94751 116.310577
[3,] 42.89310 119.758621
[4,] 41.82213 275.607971
[5,] 437.14648 141.309647
[6,] 15.20952 177.128616
[7,] 18.88731 257.249207
[8,] 768.64935 172.374069
[9,] 24.66220 118.283150
[10,] 17.12160 68.955154
[11,] 73.00019 71.517052
[12,] 1182.08911 180.694122
[13,] 320.09827 224.808563
[14,] 268.42401 235.375259
[15,] 149.05655 205.708282
[16,] 98.43160 152.093704
[17,] 25.10120 177.061386
[18,] 293.87103 239.007050
[19,] 118.42249 295.722168
[20,] 724.16718 243.950455
[21,] 255.26083 128.209717
[22,] 105.15983 247.946701
[23,] 86.25691 220.004745
[24,] 122.01743 32.232780
[25,] 50.42104 9.923141
在移除 x 轴和 y 轴上的缩放后,该图如下所示。显然,数据点出了问题。数据集中没有负值,但仍有(很多)点低于 0。此外,x 轴和 y 轴不涵盖条目 [12,] 中的值。这可能是问题的根本原因。但是这个错误值的问题是怎么发生的呢?
这里的根本问题是什么?
【问题讨论】:
-
请分享一些说明问题的数据点 - 确定其中大约一半留在其中的 10 个点,其中大约一半产生
NaNs。一旦您确定了导致问题的点样本,您很可能会立即解决自己的问题,但如果不发布该样本数据,我们将能够提供帮助。但是,如果没有数据,我们就没有多少工作可做,也没有办法测试可能的解决方案。 -
感谢您的评论!我提供了额外的信息,并可能发现了根本问题。但是,我不清楚这个潜在问题是如何发生的。
-
您错误地假设集群可视化与输入数据的规模相同。我不太了解这些算法,无法告诉您发生了什么,但输入可能已居中并重新缩放。绘制的输出显然具有不同的比例。我运行
Mclust并仅使用您提供的 25 个样本行绘制了结果。样本数据范围从 ~10 到 ~1200,输出图范围从 -2 到 3。如果您不了解正在绘制的内容,我建议您阅读聚类和绘图函数的文档。 -
谢谢。当为轴设置不同的限制时,散点图的形状似乎等于它必须具有的形状。通过这种方式,我得出结论,轴的某些东西出了问题。谁能帮帮我?
-
我认为除了您的期望之外没有任何问题。我认为一些关于聚类算法的背景知识、它们的工作原理以及它们的呈现方式将有助于您了解正在发生的事情。
标签: r mclust factoextra