Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3258

 

Как я понимаю, питон может работать с целочисленной матрицей и тут скорости уже другого порядка

import numpy as np
import time

def calc_corr_matrix():
    arr = np.random.randint(1, 101, size=(15000, 100), dtype=np.int32)
    corr_matrix = np.corrcoef(arr, rowvar=False)
    size_in_mb = corr_matrix.nbytes / 1024**2
    print("Array size:", size_in_mb, "MB")
    return corr_matrix

np.random.seed(123)  # Задаем зерно для воспроизводимости результатов

start_time = time.time()
corr_matrix = calc_corr_matrix()
end_time = time.time()

print("Time taken:", end_time - start_time, "seconds")

Если код корректен, то результат таков

Array size: 0.0762939453125 MB
Time taken: 0.5172276496887207 seconds

Вопрос точности/сопоаставимости результатов самих вычислений нужно проверять.

 
fxsaber #:

Это просто переход от CMatrixDouble к matrix<double>.

На приведение форматов в обе стороны суммарно увеличивается время выполнения на 20%. Но это все равно значительно (> 3 раза) медленнее NumPy.

 
Maxim Dmitrievsky #:

Замер времени с учетом создания матрицы

Сохраните обе матрицы в файлы для сверки результатов.

 
Aleksey Vyazmikin #:

Вот на R ChatGPT предлагает

Этот вариант R почти в 6 раз уступает NumPy.

 
Aleksey Vyazmikin #:

Как я понимаю, питон может работать с целочисленной матрицей и тут скорости уже другого порядка

Если код корректен, то результат таков

Вопрос точности/сопоаставимости результатов самих вычислений нужно проверять.

Судя по

Array size: 0.0762939453125 MB
Посчитана матрица 100*100 а не 15000*15000
 
Forester #:

С памятью все хуже.
Перед запуском



А во время работы Алглибовского PearsonCorrM память все время растет: и 5 гг видел, на скрин 4,6 попало


и во время работы штатного Matrix.CorrCoef

Видимо штатный оптиизирован для мин. использования памяти, а алглибовский оптимизирован на скорость.

Возможно где-то resize массива происходит, что очень медленно. Если найти и сразу задать финальный размер, то может и быстрее будет

 

Вы изумительно умеете переводить любую идею на г.. подсчет всяких малоинтересных результатов :) 

Алексей особенный любитель

 
fxsaber #:

Сохраните обе матрицы в файлы для сверки результатов.

https://drive.google.com/file/d/1ATJkHwUY8jzeRp-rdTsYBeYHor-68EPB/view?usp=share_link

 
Вам нужен инструмент который может считать матрицу вне памяти
Это главный приоритет, а не скорость подсчета матрицы. 
Потому что если оперативки не хватит(а её не хватит) то какая разница с какой скоростью матрица считаеться
 
Можно взять терабайтник и посчитать на диске, будет специальный диск под матрицу 💩
Причина обращения: