【发布时间】:2022-12-07 05:44:09
【问题描述】:
我有一组简单的数据,显示每个数据点随时间的特定分数。这个数据集看起来有点像这样:
| id | day 1 | day 2 | day 3 | day 4 |
|---|---|---|---|---|
| 0 | 0 | 0.5 | 1 | 3 |
| 1 | 0 | 0.25 | 0.75 | 2.25 |
| 2 | 0 | 0 | 0.5 | 2.75 |
| 3 | 0 | 0.5 | 1 | 2 |
| ... | ... | ... | ... | ... |
目标是将该数据集分成 3 组,每组在任何给定日期具有相似的平均值.我知道这是一个 NP 最小化问题,找到最优解是低效的。但是近似解绝对没问题。
其中 global-mean 是未拆分数据的平均值,group1-3 是拆分组。 这看起来还不错,但显然还有改进的余地,因为这只是随机拼凑的。
我思考这个问题的时间越长,它似乎变得越复杂。
我目前正在使用 Python 3.10 来尝试解决它。
有谁知道如何解决这个问题?它不一定是一个优雅的解决方案。蛮力也应该产生足够的结果,对吧?
预先感谢您的宝贵时间。
【问题讨论】:
-
您是否正在寻找实施的完整算法?尝试看一下 K-Mean 聚类并返回一个最小的可重现代码,这样如果有任何问题我们可以帮助您 :)
-
根据您的需要以及有多少个 ID,简单的随机化可能非常接近您想要的。您可以通过“最小化”方法来改进它,您可以随机选择一个 ID 1 的组,然后将每个后续 ID 添加到所选的组中,从而使组之间的差异最小化(通过某些标准)。
标签: python r dataset subset similarity