我正在尝试使用python断裂点检测库。我看不到如何在现实世界中获得变化点的数量。所有这些示例似乎都是从已知变化点数量的实验数据开始的。
我可以将数据输入算法中,并找到固定数量的更改点的更改点。但是我不知道如何检测断点的数量。
import numpy as np
import ruptures as rp
# values is real world time series data from graylog histo.
signal = np.array(values)
c = rpt.costs.CostL1().fit(signal)
model = "l2"
algo = rpt.Pelt(model=model, custom_cost=c)
algo = algo.fit(signal)
bkps = algo.predict(pen=300000)
rpt.display(signal, bkps, bkps, figsize=(20, 12))
我尝试了不同算法,成本函数等的各种组合。我希望可以轻松使用一些东西,即不要一直手动调整。在此示例中,笔的选择似乎决定了更改点的数量。