gpt4 book ai didi

java - 将 1D 数据集映射到 3D 空间

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:20:59 24 4
gpt4 key购买 nike

我有一个一维数据集如下

19, 23, 35, 39, 39, 48, 48, 72, 83, 91, 151, 152, 153, 156, 158, 160, 250, 340, 490

我想从这个值集中获得最频繁的范围。我想到了应用 k-mean 聚类算法并采用元素最多的聚类。我使用 k = sqrt(n/2)

输出应该是151 - 160

在搜索时,我看到几篇文章建议对一维数据集应用 k 均值聚类不是一个好主意。因此我想到了将 1d 数据集映射到 3d 空间。我所做的只是假设每个数据点的 y 和 z 坐标为 0。

是否有更好的方法将此数据集映射到 3d 空间?或者是否有更好的方法从一维数据集中获取最频繁的范围?

最佳答案

每次添加维度都会让生活变得更加困难,因此从 1 维度移动到 3 维度不太可能让生活变得更轻松。

我会将数据按顺序排序,然后考虑从右向左移动数据的方法。例如,移动指针,使它们之间有一个 N 项的窗口,并找到窗口左端值与窗口右端值之间的差值最小的位置。

如果您真的想像聚类一样使用 k-means,您可以对排序值数组使用动态规划来获得准确答案。从左到右计算每个点,对于 i=1..k,将到该点的值划分为 i 个簇的成本最低的方法。您可以通过考虑使 m..N 成为单个集群的每个 m 的成本并查看 m-1 的答案以计算出划分前一个集群的最佳成本,从而为 i 个集群计算位置 N 的最佳答案值最多分为 i-1 个簇。

关于java - 将 1D 数据集映射到 3D 空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33979663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com