Транспонирование (Transpose)

Разделы: Алгоритмы

Loginom: Куб (визуализатор), Свёртка столбцов (обработчик), Кросс-таблица (обработчик)

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

Операция транспонирования обозначается символом «T», указываемом после обозначения матрицы в верхнем регистре, например .

Очевидно, что если исходная матрица имела размер , то транспонированная матрица будет размером . Матрица-строка в результате транспонирования преобразуется в матрицу-столбец и наоборот. Несложно увидеть, что . Например

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

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

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

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

Например, исходная таблица может иметь вид:

Дата Товар Кол-во продаж
05.02.2019 Обои 75
05.02.2019 Затирка 54
07.02.2019 Обои 21
09.02.2019 Герметик 35

Тогда результатом транспонирования будет таблица вида:

Дата Обои Затирка Герметик
05.02.2019 75
05.02.2019 54
07.02.2019 21
09.02.2019 35

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

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

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