如何解决使用最小观察范围识别数值向量中最频繁的观察
问题:
假设我有一个数值向量 x
的某个距离(在 R 中)的观测值。例如,它可能是许多人的投掷长度。
x <- c(3,3,7,8,12,15,20,30)
h <- hist(x,breaks = 30,xlim = c(1,30))
然后我想定义一组 S
的“选择器”(范围),选择尽可能多的我的观察,同时尽可能短的距离(成本是范围的总和在S
)。每个选择器 si
范围必须至少为 3(其分辨率)。
示例:
在玩具数据 x
中,我可以放置 [6;8] 中的第一个选择器 s1
,它将选择 4+2 个观测值(距离 7 和 8),使用 3 个距离并选择 6/总共 15 个观察结果([7;9] 会给出相同的结果,但为简单起见,我将选择器中点放在最大频率中)。接下来将添加 s2
[14;16](6 距离并选择 9/15)。总之,S
将按照以下步骤构建:
- [6;8] (3,6/15) #
s1
- [6;8],[14;16] (6,9/15) #
s2
- [3;8],[14;16] (9,12/15) #Extending
s1
(最便宜) - [3;8],[12;16] (11,13/15) #Extending
s2
- [3;8],[12;16],[29;31],(14,14/15) #
s3
- [3;8],[12;20],(18,15/15) #Extending
s2
当使用某个总距离(S
的总和)或当 S
覆盖了特定部分的数据时,将停止迭代。或者根据覆盖的数据部分绘制 S
的总和,然后从中做出决定。
对于非常大的数据(1,000,000s 距离空间中的 100,000s 聚类观察),我可能会通过增加允许的最小步长(高于 1,可能尝试 100)并降低分辨率(高于其 3,可以尝试 1000 次)。
由于它相当于最大化 density(x)
下的面积,同时最小化 x 的范围,我的直觉是可以使用 density()
和 {{1 }} 。也许它甚至是一个众所周知的最大化/最小化问题。
任何可以帮助我入门的建议将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。