Здесь я использую stumpy.stumped, чтобы найти профиль матрицы
Это мой временной ряд (полные данные)
Entire_data= spark.sql('SELECT Closw from rk02_eurusd_candlestick_1_m_bid_01_01_2018_31_12_2018_csv where Closw is not null order by Gmt_time').toPandas()
ECG_data= Entire_data['Close']
ECG_data_values=ECG_data.values
print('The ecg data values are \n',ECG_data_values)
output:
The ecg data values are
[1.19985 1.19985 1.19985 ... 1.14627 1.14627 1.14627]
Временной ряд содержит данные минут за 2018 год. I рассчитать профиль матрицы с 60-минутным окном для этих данных, используя Stumpy.stumped
start = time.time()
mp =stumpy.stumped(dask_client,ECG_data_values,60)
end = time.time()
print('mp is \n',mp)
print('timetaken for stumpy \n', end - start)
Output:
mp is
[[0.05810642702033023 504378 -1 504378]
[0.04393523046509543 345806 -1 345806]
[0.07967330055954358 504378 -1 504378]
...
[8.9131475674334 441593 441593 -1]
[8.9131475674334 441594 441594 -1]
[8.9131475674334 441595 441595 -1]]
timetaken for stumpy
2083.619256258011
mparr = np.array(mp)
print(mparr)
mparr1 = ((mparr[:, 0], mparr[:, 1]))
print(mparr1)
Output:
(array([0.05810642702033023, 0.04393523046509543, 0.07967330055954358, ...,
8.9131475674334, 8.9131475674334, 8.9131475674334], dtype=object), array([504378, 345806, 504378, ..., 441593, 441594, 441595], dtype=object))
Вот где у меня проблема, я пытаюсь выяснить 10 мотивов
motifs ,motif_distance = motifs.motifs(ECG_data_values,mparr1, max_motifs=10)
print('top motifs: \n',motifs)
Мы ожидаем 10 мотивов, т. Е. 10 списков, но он возвращает только 4 списка (мотивов), это правильно? Я сделал какую-нибудь ошибку?
Output:
[[356, 342497], [8, 39, 410,.......525115, 525178, 525209, 525301, 525332, 525366, 525397], [201362, 332401], [9901, 40141, 120721, 161041, 382802, 413041, 463501, 503821, 516782]]
Пожалуйста, помогите мне с этим, заранее спасибо!