第一行代表第 1 条时间线。小打击是数据点。
第二行代表线的聚类以及中心的中心线。
使用哪些方法来预测下一个星团撞击/质心将如第三张图片所示?
我发现了这些问题:
如果有帮助的话。我无法提供训练数据,只能提供历史数据,因为它可能会发生变化(也许历史数据可以用作训练数据?)
最佳答案
有趣的问题。
我会尝试两种方法,具体取决于我们计算出每个簇的质心的稳健程度。
方法 1
如果如图所示,可以使用基于阈值的方法对数据点进行聚类。我们可以首先找出c1
、c2
和c3
处的质心,并将簇质心视为时间序列。那么使用一些exponential smoothing来预测质心c4
的下一个位置应该不难。 。假设您的原始数据如下所示:
0 3 4 5 11 12 14 21 23 25 34 37 38 ???
(cluster1) (cluster2) (cluster3) (cluster4)
如果我们的阈值为 5(任意两个连续数据点之间的最大距离),我们可以轻松找出上面的 4 个簇。然后我们可以获得低于质心的位置。 (例如,(21+23+25)/3=23
)。
3 12.33 23 36.33 42 (predicted)
假设应用一些基本的指数平滑后,您得到下一个质心位置c4=42
。
下一步是根据质心预测罢工的相对位置。我们可以使用之前集群中的所有先前攻击作为我们的训练数据。我只是从历史数据中获取一些统计数据,看看它的效果如何。
簇内打击之间的平均距离:
(3+1+1)+(1+2) + (2+2) + (3+1)
---------------------------- = 1.55
9
和
% of times we have 4 strikes: 25%
% of times we have 3 strikes: 75%
然后我们可以进行抽奖(25% vs 75%)来决定在 c4
处是 4 次罢工还是 3 次罢工。可以使用平均距离统计来导出打击的相对位置。例如,如果我们有 3 次打击,质心位于 42:
strike1: 42-1.55 = 40.55
strike2: 42
strike3: 42+1.55 = 43.55
如果我们有 4 次罢工:
strike1: 42-1.55/2-1.55
strike2: 42-1.55/2
strike3: 42+1.55/2
strike4: 42+1.55/2+1.55
注意:一旦观察到 c4
中的实际数据点,我们就会更新统计数据,以便我们始终能够纠正我们的预测。一旦我们观察到 c4 中的实际数据点,我们将更新质心预测的指数平滑。现在我们准备好预测 c5
和 c5
中的罢工等等。
方法2
如果我们没有可靠的方法来进行聚类,请尝试使用一些特征工程进行线性回归。目标变量将是下一次打击的 x 位置。我们可以使用的功能包括:
- 前 k 个点
- 每两个连续点之间的 k-1 距离
- 最近 3 个点的移动平均线
- 最近 5 个点的移动平均线
- ...
- 最近 9 个点的移动平均线
- 两个连续点之间的 n 个最大距离(用于测量簇间距离)
- 两个连续点之间的 n 个最小距离(用于测量簇内距离)
发挥你的想象力并继续。希望对您有所帮助。
关于machine-learning - 查找模式并在一维中进行预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497475/