我有一组数据:
(1438672131.185164, 377961152)
(1438672132.264816, 377961421)
(1438672133.333846, 377961690)
(1438672134.388937, 377961954)
(1438672135.449144, 377962220)
(1438672136.540044, 377962483)
(1438672137.172971, 377962763)
(1438672138.24253, 377962915)
(1438672138.652991, 377963185)
(1438672139.069998, 377963285)
(1438672139.44115, 377963388)
我需要弄清楚的是如何将它们分组。到目前为止,我使用了一种超级duper简单的方法,只需对元组的第二部分的两部分进行差分,如果差分大于某个预定义的阈值,我会将它们分为不同的组。但结果却不尽如人意。你知道吗
但理论上我认为,通过在一行或多行上拟合,可以确定元组第二部分的值是否属于同一个组,因为我知道元组的第一部分是严格单音的,因为它是一个时间戳(time.time()
),而且我知道所有得到结果的数据集都接近线性。假设元组是(y, x)
。只有三种选择:
y = mx + c
c
或者c
和不同的m
上述一组仅为一组。以下小组将分为三组:
(1438672131.185164, 377961152)
(1438672132.264816, 961421)
(1438672133.333846, 477961690)
(1438672134.388937, 377961954)
(1438672135.449144, 962220)
(1438672136.540044, 377962483)
(1438672137.172971, 377962763)
(1438672138.24253, 377962915)
(1438672138.652991, 377963185)
(1438672139.069998, 477963285)
(1438672139.44115, 963388)
第1组:
(1438672131.185164, 377961152)
(1438672134.388937, 377961954)
(1438672136.540044, 377962483)
(1438672137.172971, 377962763)
(1438672138.24253, 377962915)
(1438672138.652991, 377963185)
第2组:
(1438672132.264816, 961421)
(1438672135.449144, 962220)
(1438672139.44115, 963388)
第3组:
(1438672133.333846, 477961690)
(1438672139.069998, 477963285)
有没有一个模块或其他简单的解决方案可以解决这个问题?我在numpy和scipy中发现了最小二乘法,但我不太确定如何正确使用或应用它们。如果除了线性函数还有别的方法,我也很高兴听到关于它们的消息!你知道吗
编辑2 不幸的是,这是一个二维问题,而不是一维问题。例如
(1439005464, 477961152)
应(如果假设该数据的关系约为1:300)仍然是第一组。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐