Equal - depth binning - 是不是只是将数据分组到 k 组

Posted

技术标签:

【中文标题】Equal - depth binning - 是不是只是将数据分组到 k 组【英文标题】:Equal - depth binning- whether it is just grouping data into k groupsEqual - depth binning - 是否只是将数据分组到 k 组 【发布时间】:2015-12-14 10:07:07 【问题描述】:

等深或等频分箱的一个小困惑

等深分箱表示 - 它将范围划分为 N 个区间,每个区间包含大致相同数量的样本

让我们获取一小部分虹膜数据

5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa

如果我需要对我的第一列进行装箱,结果会是什么? 无论是只是对数据进行分组,还是包含一些计算,例如等宽分箱。

如果要分箱的元素数量是奇数,会发生什么情况。我将如何平等地分箱?

【问题讨论】:

【参考方案1】:

就像@Anony-Mousse 提到的那样,并不总是能够完全在一个 bin 中获得相同数量的样本,大约才是我们想要的。

我将带您了解unique(N)/bins > 0 的情况,其中N 表示要分箱 的数组中的值。假设

N = [1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] bins = 4

在这里,length(N) = 20length(unique(N)) = 6,生成 unique(N)/bins = 1.5 > 0。这意味着每个 bin 将大约有 1.5 个样本。所以你将把1放在bin1中,把0.5个残差带到下一个bin,使那个bin中的元素数量为1.5 + 0.5 = 2,所以23将是在 bin2 中。推断这个逻辑,最终的 bin 将具有以下拆分。 [1], [2,3], [4], [5,6] 当然 1 重复 6 次,6 重复 10 次。 我不希望 ties 放在单独的垃圾箱中,这通常是拥有垃圾箱的关键(将值分组彼此接近)。

对于unique(N)/bins < 0 的情况,可以应用相同的逻辑。希望这能回答你的问题。

【讨论】:

【参考方案2】:

有时您无法制作完全相同大小的垃圾箱。

例如,如果您的数据是

1,1,1,2,99

而你想要 4 个 bin,那么最直观的结果应该是

[1,1,1], [2], [], [99]

大多数工具都会产生以下答案之一:

[1,1,1], [], [2], [99]
[1,1], [1], [2], [99]
[1], [1], [1], [2,99]

没有一个在每个 bin 中正好有 1.25 个元素。最后两个解决方案最接近,但也是最不直观的。这就是为什么一个人只要求“大约相同的数字”。有时,没有好的解决方案恰好具有这种频率。

【讨论】:

假设我有 4 个垃圾箱。从您提到的答案来看,数据是这样的“[1,1,1],[2],[],[99]”,那么我们如何将元素放入这些垃圾箱中?有什么方程式吗? 好的。如果我有 8 个元素要分箱到 4 个箱中。然后我需要对数据进行排序并删除元素。不是吗?例如:4,2,1,8,0,9,5,5 排序--> 0,1,2,4,5,5,8,9 ;所以垃圾箱就像 [0,1] [2,4] [5,5] [8,9] 。对吗? 分位数分箱是一种方法,但在处理 ties 的方式上仍然会有所不同。解决方案 [0,1,2][4,5,5][][8,9] 也同样好,只是使用了不同的逻辑。

以上是关于Equal - depth binning - 是不是只是将数据分组到 k 组的主要内容,如果未能解决你的问题,请参考以下文章

关于深度测试

shell equal

GC depth: GC含量和测序深度

外显子分析报错解决方案bin field of BAM record does not equal value computed based on alignment start and end, a

关于在2.7中出现 "UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode

Linux shell :两字符串比较。 输入两不同字符串,结果确显示:the two string are equal!! 郁闷。。。。