Самый быстрый способ вычисления подмножества корреляционной матрицыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Самый быстрый способ вычисления подмножества корреляционной матрицы

Сообщение Anonymous »


Я неравнодушен к использованию встроенного в pandas метода corr для кадров данных. Однако я пытаюсь вычислить корреляционную матрицу кадра данных с 45 000 столбцов. А затем повторите это 250 раз. Расчет давит на мою оперативку (16 ГБ, Mac Book Pro). Я собираю статистику по столбцам результирующей корреляционной матрицы. Поэтому мне нужна корреляция одного столбца с каждым другим столбцом, чтобы вычислить эту статистику. Мое решение — вычислить корреляцию подмножества столбцов с каждым другим столбцом, но мне нужен эффективный способ сделать это.

Учитывайте:

импортировать панд как pd импортировать numpy как np np.random.seed([3,1415]) df = pd.DataFrame(np.random.rand(6, 4), columns=list('ABCD')) дф
Изображение


Я хочу вычислить корреляции только для ['A', 'B']

corrs = df.corr()[['A', 'B']] Коррс
Изображение


Я закончу расчетом среднего значения или какой-нибудь другой статистики.

Я не могу использовать код, который использовал для создания примера, потому что при масштабировании у меня не хватает памяти для него. При выполнении расчета он должен использовать объем памяти, пропорциональный количеству столбцов, выбранных для расчета корреляций относительно всего остального.

Мне нужно наиболее эффективное решение в любом масштабе. У меня есть решение, но я ищу другие идеи, чтобы добиться лучшего результата. Любой предоставленный ответ, который возвращает правильный ответ, как показано в демонстрации, и удовлетворяет ограничению памяти, будет одобрен мной (и я также призываю голосовать за друг друга).

Ниже мой код:
def corr(df, k=0, l=10): d = df.values ​​- df.values.mean(0) d_ = d[:, k:l] s = d.std(0, Keepdims=True) return pd.DataFrame(d.T.dot(d[:, k:l]) / s.T.dot(s[:, k:l]) / d.shape[0], df.columns, df.columns[k:l])
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Самый быстрый способ вычисления суммы квадратных элементов результата умножения матрицы?
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Тепловая карта корреляционной матрицы
    Anonymous » » в форуме Python
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Создание кластеров с использованием корреляционной матрицы в Python
    Anonymous » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Создание кластеров с использованием корреляционной матрицы в Python
    Anonymous » » в форуме Python
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Создание кластеров с использованием корреляционной матрицы в Python
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»