построение 2D-матрицы в python, код и наиболее полезную визуализацию

У меня очень большая матрица (10×55678) в матричном формате «numpy». строки этой матрицы соответствуют некоторым «темам», а столбцы соответствуют словам (уникальные слова из текстового корпуса). Каждая запись i, j в этой матрице является вероятностью, означающей, что слово j принадлежит теме i с вероятностью x. так как я использую ids, а не реальные слова, и поскольку размерность моей матрицы действительно велика, мне нужно визуализировать ее в некотором роде. Какую визуализацию вы предлагаете? простой сюжет? или более сложный и информативный (я прошу эту причину, я не знаю о полезных видах визуализации). Если возможно, вы можете привести мне пример, используя матрицу numpy? благодаря

причина, по которой я задал этот вопрос, заключается в том, что я хочу иметь общее представление о распределении слов в теме в моем корпусе. любые другие методы приветствуются

  • фильтровать / выбирать строки данных в базе данных pandas по столбцу timestamp
  • Обработка исключений Python - номер строки
  • Использование QTDesigner с PyQT и Python 2.6
  • Определите, определена ли переменная в Python
  • Tensorflow: next_batch функция np массива
  • Определение привязки таблиц SQL Alchemy
  • Уменьшить левый и правый поля на графике matplotlib
  • ходьба и обработка файлов в каталоге на python
  • 2 Solutions collect form web for “построение 2D-матрицы в python, код и наиболее полезную визуализацию”

    Разумеется, вы можете использовать метод imshow или pcolor для отображения данных, но, как pcolor комментарии, его трудно интерпретировать без масштабирования подмножеств данных.

     a = np.random.normal(0.0,0.5,size=(5000,10))**2 a = a/np.sum(a,axis=1)[:,None] # Normalize pcolor(a) 

    Случайный случай случайных чисел

    Затем вы можете сортировать слова по вероятности того, что они принадлежат кластеру:

     maxvi = np.argsort(a,axis=1) ii = np.argsort(maxvi[:,-1]) pcolor(a[ii,:]) 

    введите описание изображения здесь

    Здесь индекс слова по оси y больше не равен первоначальному порядку, поскольку вещи были отсортированы.

    Другая возможность заключается в использовании пакета networkx для построения кластеров слов для каждой категории, где слова с наивысшей вероятностью представлены узлами, которые либо больше, либо ближе к центру графика, и игнорируют те слова, которые не имеют членства в категории , Это может быть проще, поскольку у вас есть большое количество слов и небольшое количество категорий.

    Надеемся, что одно из этих предложений полезно.

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

    В частности, в полных матричных графиках значения цвета оси z не очень точные или количественные, поэтому трудно увидеть, например, небольшие ряби на тренде или количественные оценки скоростей изменений и т. Д., Поэтому существует значительная стоимость для них. И они также более трудны для панорамирования и масштабирования, так как можно потеряться и, следовательно, не исследовать весь сюжет, тогда как панорамирование по 1-му сюжету тривиально.

    Также, конечно, как отмечали другие, 50 тыс. Точек слишком много, чтобы на самом деле визуализировать, поэтому вам нужно будет их отсортировать или что-то еще, чтобы уменьшить количество значений, которые вам действительно понадобятся для визуальной оценки.

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

    Python - лучший язык программирования в мире.