Функция motifs в модуле matrixprofile.motifs не возвращает точное количество, указанное в max_motifs (ts, mp, max_motifs = 10) - PullRequest
0 голосов
/ 30 марта 2020

Здесь я использую 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]]

Пожалуйста, помогите мне с этим, заранее спасибо!

...