Существует функция построения Matlab "cov"
для вычисления матрицы ковариации заданной матрицы C
. Если C
слишком большой, например 1000*60000
double, и на моем компьютере недостаточно ОЗУ, необходимо написать функцию для вычисления матрицы ковариации заданной матрицы C
в блоках или кусках. Мой вопрос заключается в том, как вычислить ковариационную матрицу в блоках/кусках? Предположим, что размер данной матрицы равен 1000*60000
double, с которой мой компьютер не может обрабатывать с помощью функции "cov"
.Как вычислить матрицу ковариации в блоках?
ответ
Предполагая, что вы имеете в виду у вас есть 60000 наблюдение 1000 переменных, то вы можете просто вычислить матрицу covaraince на куски, а затем объединить их, как вы идете:
- Partition свои наблюдения на куски размером N. (N должен быть определенно, чтобы вписываться в оперативной памяти)
- Compute ковариация для куска -ro
- Объединить кусок N-го с общей ковариацией для предыдущих N-1 кусков
Here - это обсуждение того, как вы комбинируете матрицы ковариации. В основном, вы хотите отслеживать как ковариации, так и средства кусков при их обработке, а затем объединять, используя свой квадрат квадратного квадрата минус средства представления, указанного в первом свойстве ковариаций, перечисленных here.
@dpmcmixxvi, у меня есть 1000 временных точек и 60000 функций. Можете ли вы дать пример кода? – Shawn
На [wiki] (https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Covariance) существует версия psuedo-кода для версии того, что я описал выше для специального случая кусков размера N = 1. Вероятно, не будет очень эффективным в Matlab со всеми этими циклами, но вы должны иметь возможность взглянуть на уравнения на ссылке wiki и распространяться на общий случай. – dpmcmlxxvi
На самом деле, я только заметил, что они также предоставляют формулу для объединения двух ковариаций в самом низу. Это должно быть все, что вам нужно. – dpmcmlxxvi
- 1. Как вычислить матрицу ковариации
- 2. Вычислить матрицу ковариации без цикла
- 3. Как вычислить матрицу ковариации из случайного вектора?
- 4. Как эффективно вычислить матрицу ковариации из ff_matrix
- 5. Как вычислить матрицу ковариации с Pandas
- 6. Как вычислить производную/градиент ковариации?
- 7. Удалить постоянные столбцы из RDD и вычислить матрицу ковариации
- 8. EmguCV: Как создать матрицу ковариации из изображения?
- 9. Как преобразовать список корреляций в матрицу ковариации?
- 10. Как получить матрицу дисперсии-ковариации в Matlab?
- 11. Как создать желаемую (большую) матрицу ковариации/корреляции?
- 12. вычислить матрицу
- 13. Gretl - как вычислить матрицу
- 14. Как вычислить матрицу Confusion?
- 15. Как вычислить корреляционную матрицу?
- 16. Как вычислить матрицу ковариации без каких-либо встроенных функций или циклов в MATLAB?
- 17. Вычислить ковариации и корреляции EWMA в R
- 18. Как найти матрицу ковариации по категориям в data.table в R
- 19. python - как вычислить корреляционную матрицу с nans в матрице данных
- 20. Как правильно вычислить эту матрицу
- 21. Как организовать запрос RPostgreSQL и создать матрицу ковариации в R
- 22. Вычислить матрицу перехода букв
- 23. Cv :: PCA (openCV) вычисляет матрицу ковариации самих данных? или мы должны передать ему матрицу covarince?
- 24. Python - вычислить матрицу совпадения
- 25. Как вычислить матрицу итерации в Gauss Seidel
- 26. как вычислить корреляционную матрицу в matlab
- 27. Как вычислить массивную матрицу несходства в R
- 28. Как вычислить матрицу, образованную вектором в Mathematica
- 29. Как вычислить матрицу расстояния в искрах?
- 30. Как извлечь матрицу ковариации дисперсии для определенных значений?
Возможно, вы приобрели 1000 x 60000? Обычно у вас должно быть больше наблюдений (первое измерение), чем переменных (второе измерение). –
@ A.Donda, да, 1000 * 60000 - правильный размер. 6000 функций и 1000 точек времени. – Shawn