2.4. Бинарная кластеризация ¶
С помощью модуля sklearn.cluster.bicluster можно выполнять бикластеризацию. Алгоритмы бикластеризации одновременно кластеризуют строки и столбцы матрицы данных. Эти группы строк и столбцов известны как бикластеры. Каждый определяет подматрицу исходной матрицы данных с некоторыми желаемыми свойствами.
Например, для данной матрицы формы (10, 10) один возможный бикластер с тремя строками и двумя столбцами индуцирует подматрицу формы (3, 2)
:
>>> import numpy as np >>> data = np.arange(100).reshape(10, 10) >>> rows = np.array([0, 2, 3])[:, np.newaxis] >>> columns = np.array([1, 2]) >>> data[rows, columns] array([[ 1, 2], [21, 22], [31, 32]])
Для целей визуализации, учитывая бикластер, строки и столбцы матрицы данных могут быть перегруппированы, чтобы сделать бикластер непрерывным.
Алгоритмы различаются тем, как они определяют бикластеры. Некоторые из распространенных типов включают:
- постоянные значения, постоянные строки или постоянные столбцы
- необычно высокие или низкие значения
- подматрицы с низкой дисперсией
- коррелированные строки или столбцы
Алгоритмы также различаются тем, как строки и столбцы могут быть назначены бикластерам, что приводит к различным структурам бикластеров. Блочные диагональные или шахматные структуры возникают, когда строки и столбцы делятся на разделы.
Если каждая строка и каждый столбец принадлежит ровно одному бикластеру, то при перестановке строк и столбцов матрицы данных выявляются бикластеры на диагонали. Вот пример этой структуры, в которой бикластеры имеют более высокие средние значения, чем другие строки и столбцы:
Пример бикластеров, образованных разделением строк и столбцов.
В случае шахматной доски каждая строка принадлежит всем кластерам столбцов, а каждый столбец принадлежит всем кластерам строк. Вот пример этой структуры, в которой разброс значений в каждом бикластере невелик:
Пример бикластеров шахматной доски.
После установки членства в кластере типовой, строк и столбцов могут быть найдены в rows_
и columns_
атрибутов. rows_[i]
— двоичный вектор с ненулевыми элементами, соответствующими строкам, принадлежащим бикластеру i
. Точно так же columns_[i]
указывает, какие столбцы принадлежат бикластеру i
.
Некоторые модели также имеют row_labels_
и column_labels_
атрибуты. Эти модели разделяют строки и столбцы, например, в блочно-диагональных и бикластерных структурах шахматной доски.
Примечание
У бикластеризации много других названий в различных областях, включая совместную кластеризацию, двухрежимную кластеризацию, двустороннюю кластеризацию, блочную кластеризацию, связанную двустороннюю кластеризацию и т. Д. Названия некоторых алгоритмов, таких как алгоритм спектральной совместной кластеризации, отражают эти альтернативные имена.
2.4.1. Спектральная кластеризация
Алгоритм SpectralCoclustering
находит бинарные кластера со значениями выше, чем в других соответствующих строках и столбцах. Каждая строка и каждый столбец принадлежит ровно одному бикластеру, поэтому переупорядочивание строк и столбцов для обеспечения непрерывности разделов показывает эти высокие значения по диагонали:
Примечание
Алгоритм рассматривает матрицу входных данных как двудольный граф: строки и столбцы матрицы соответствуют двум наборам вершин, а каждая запись соответствует ребру между строкой и столбцом. Алгоритм аппроксимирует нормализованный разрез этого графа, чтобы найти тяжелые подграфы.
2.4.1.1. Математическая постановка
Приближенное решение оптимального нормализованного разреза может быть найдено с помощью обобщенного разложения по собственным значениям лапласиана графа. Обычно это означало бы работать напрямую с матрицей Лапласа. Если исходная матрица данных $A$ имеет форму m×n, матрица Лапласа для соответствующего двудольного графа имеет вид $(m + n) \times (m + n)$. Однако в этом случае можно работать напрямую с $A$, который меньше и эффективнее.
Входная матрица $A$ предварительно обрабатывается следующим образом:
$$A_n = R^{-1/2} A C^{-1/2}$$
Где $R$ диагональная матрица с элементом $i$ равно $\sum_{j} A_{ij}$ а также $C$ диагональная матрица с элементом $j$ равно $\sum_{i} A_{ij}$.
Разложение по сингулярным числам, $A_n = U \Sigma V^\top$, обеспечивает разбиение строк и столбцов $A$. Подмножество левых сингулярных векторов дает разбиения по строкам, а подмножество правых сингулярных векторов дает разбиения по столбцам.
В $\ell = \lceil \log_2 k \rceil$ сингулярные векторы, начиная со второго, предоставляют желаемую информацию о разбиении. Они используются для формирования матрицы $Z$:
$$\begin{split}Z = \begin{bmatrix} R^{-1/2} U \\ C^{-1/2} V \end{bmatrix}\end{split}$$
где столбцы $U$ находятся $u_2, \dots, u_{\ell +1}$, и аналогично для $V$.
Затем ряды $Z$ сгруппированы с использованием k-средних . Первые n_rows
метки обеспечивают разделение строк, а остальные n_columns
метки — разделение столбцов.
Примеры
- Демонстрация алгоритма Spectral Co-Clustering : простой пример, показывающий, как сгенерировать матрицу данных с бикластерами и применить к ней этот метод.
- Бикластеризация документов с помощью алгоритма спектральной совместной кластеризации : пример поиска бикластеров в наборе данных из двадцати групп новостей.
Рекомендации
- Dhillon, Inderjit S, 2001. Совместная кластеризация документов и слов с использованием разделения двудольного спектрального графа.
2.4.2. Спектральная бикластеризация
Алгоритм SpectralBiclustering
предполагает, что матрица входных данных имеет скрытую структуру шахматной доски. Строки и столбцы матрицы с такой структурой могут быть разделены так, чтобы элементы любого бикластера в декартовом произведении кластеров строк и кластеров столбцов были приблизительно постоянными. Например, если есть два раздела строки и три раздела столбца, каждая строка будет принадлежать трем бикластерам, а каждый столбец будет принадлежать двум бикластерам.
Алгоритм разбивает строки и столбцы матрицы таким образом, чтобы соответствующая блочно-постоянная шахматная матрица обеспечивала хорошее приближение к исходной матрице.
2.4.2.1. Математическая постановка
Входная матрица $A$ сначала нормализуется, чтобы сделать узор шахматной доски более очевидным. Есть три возможных метода:
- Независимая нормализация строк и столбцов , как в Spectral Co-Clustering. Этот метод сводит сумму строк к константе, а сумму столбцов — к другой константе.
- Бистохастизация : повторная нормализация строк и столбцов до сходимости. Этот метод сводит сумму строк и столбцов к одной и той же константе.
- Нормализация журнала: вычисляется журнал матрицы данных: $L =\log A$. Тогда столбец означает $\overline{L_{i \cdot}}$, среднее значение строки $\overline{L_{\cdot j}}$, и общее среднее $\overline{L_{\cdot\cdot}}$ из $L$ вычислены. Итоговая матрица вычисляется по формуле
$K_{ij} = L_{ij} — \overline{L_{i \cdot}} — \overline{L_{\cdot j}} + \overline{L_{\cdot \cdot}}$
После нормализации вычисляются первые несколько сингулярных векторов, как в алгоритме спектральной совместной кластеризации.
Если использовалась логарифмическая нормализация, все сингулярные векторы имеют смысл. Однако, если использовалась независимая нормализация или бистохастизация, первые сингулярные векторы, $u_1$ а также $v_1$. отбрасываются. Отныне «первые» особые векторы относятся к $u_2 \dots u_{p+1}$ а также $v_2 \dots v_{p+1}$ кроме случая нормализации журнала.
Учитывая эти сингулярные векторы, они ранжируются в соответствии с тем, что может быть наилучшим образом аппроксимировано кусочно-постоянным вектором. Приближения для каждого вектора находятся с использованием одномерных k-средних и оцениваются с использованием евклидова расстояния. Выбирается некоторое подмножество наилучшего левого и правого сингулярного вектора. Затем данные проецируются на это лучшее подмножество сингулярных векторов и кластеризируются.
Например, если $p$ были вычислены сингулярные векторы, $q$ лучше всего находятся, как описано, где $q<p$. Позволять $U$ матрица со столбцами $q$ наилучшие левые особые векторы, и аналогично $V$ за право. Чтобы разделить строки, строки $A$ проецируются на $q$ пространственное пространство: $A∗V$. Обучение $m$ ряды этого $m \times q$ матрица в качестве выборок, а кластеризация с использованием k-средних дает метки строк. Аналогичным образом, проецируя колонны на $A^{\top} * U$ и кластеризовать это $n \times q$ матрица дает метки столбцов.
Примеры
- Демонстрация алгоритма Spectral Biclustering : простой пример, показывающий, как сгенерировать матрицу шахматной доски и выполнить ее бикластеризацию.
Рекомендации
- Kluger, Yuval, et. др., 2003. Спектральная бикластеризация данных микрочипов: гены и условия совместной кластеризации .
2.4.3. Оценка бикластеризации
Есть два способа оценки результата бикластеризации: внутренний и внешний. Внутренние меры, такие как стабильность кластера, зависят только от данных и самих результатов. В настоящее время в scikit-learn нет внутренних бикластерных мер. Внешние меры относятся к внешнему источнику информации, например к истинному решению. При работе с реальными данными истинное решение обычно неизвестно, но бикластеризация искусственных данных может быть полезна для оценки алгоритмов именно потому, что истинное решение известно.
Чтобы сравнить набор найденных бикластеров с набором истинных бикластеров, необходимы две меры сходства: мера сходства для отдельных бикластеров и способ объединения этих индивидуальных сходств в общую оценку.
Для сравнения отдельных бикластеров использовалось несколько показателей. На данный момент реализован только индекс Жаккара:
$$J(A, B) = \frac{|A \cap B|}{|A| + |B| — |A \cap B|}$$
где $A$ а также $B$ бикластеры, $|A \cap B|$ — количество элементов в их пересечении. Индекс Жаккара достигает минимального значения 0, когда бикластеры вообще не перекрываются, и максимального значения 1, когда они идентичны.
Было разработано несколько методов для сравнения двух наборов бикластеров. На данный момент consensus_score
доступны только (Hochreiter et. Al., 2010):
- Вычислите сходство бикластеров для пар бикластеров, по одному в каждом наборе, используя индекс Жаккара или аналогичный показатель.
- Назначьте бикластеры из одного набора в другой по принципу один к одному, чтобы максимизировать сумму их сходства. Этот шаг выполняется по венгерскому алгоритму.
- Окончательная сумма сходства делится на размер большего набора.
Минимальная оценка консенсуса, 0, возникает, когда все пары бикластеров совершенно не похожи. Максимальный балл 1 возникает, когда оба набора идентичны.
Рекомендации
- Hochreiter, Bodenhofer, et. др., 2010. FABIA: факторный анализ бикластерного приобретения .