# Biclustering

Biclustering, Co-Clustering oder Two-Mode Clustering ist eine Data-Mining-Technik, die das gleichzeitige Clustering von Zeilen und Spalten einer Matrix ermöglicht. Der Begriff wurde von Mirkin eingeführt, aber die Technik selbst wurde ursprünglich bereits viel früher eingeführt (z. B. von J.A. Hartigan unter dem Begriff Direct Clustering).

## Definition

Sei $A=(a_{ij})_{m\times n}$ eine Datenmenge in Form einer rechteckigen Matrix, die sich aus $n$ Spalten und $m$ Zeilen zusammensetzt. Jede Spalte steht für ein Sample (Datenprobe) und jede Zeile für ein Feature (Komponente eines Samples). Jedem Sample ist somit eine Serie von Features zugeordnet. Das Element $a_{ij}$ repräsentiert die Expression des $i$-ten Features im $j$-ten Sample.
Weiters seien die Klassen $S_{1},...,S_{r}$ eine Klassifikation der Samples und die Klassen $F_{1},...,F_{r}$ eine Klassifikation der Features. Eine Submatrix von $A$, die als Paar $(S_{k},F_{k})$ mit $k\in \{1,...,r\}$ dargestellt wird, wird als Bicluster bezeichnet.
Beim Biclustering entsteht eine Partition $B=\{(S_{1},F_{1}),...,(S_{r},F_{r})\}$ von $A$, bestehend aus $r$ Biclustern. Manche Biclustering-Methoden erlauben Bicluster, die Sample- und Feature-Klassen mit unterschiedlichen Indizes beinhalten (das sind Paare $(S_{k},F_{l})$ mit $k,l\in \{1,...,r\}$ und $k\neq l$).

## Komplexität

Die Komplexität des Biclustering-Problems ist abhängig von der exakten Problemformulierung, insbesondere von der Gütefunktion, die zur Evaluierung der Qualität des gegebenen Biclusters verwendet wird. Die interessantesten Varianten dieses Problems sind jedoch NP-vollständig und erfordern entweder einen hohen Rechenaufwand oder die Verwendung einer verlustbehafteten Heuristik, um die Berechnung zu verkürzen.

## Typen von Biclustern

Verschiedene Biclustering-Algorithmen haben verschiedene Definitionen für den Bicluster:
* Bicluster mit konstanten Werten (a),
* Bicluster mit konstanten Zeilenwerten (b) oder Spaltenwerten (c),
* Bicluster mit kohärenten Werten (d, e).
a) Bicluster mit konstanten Werten :
| 2,0 | 2,0 | 2,0 | 2,0 | 2,0 |
| 2,0 | 2,0 | 2,0 | 2,0 | 2,0 |
| 2,0 | 2,0 | 2,0 | 2,0 | 2,0 |
| 2,0 | 2,0 | 2,0 | 2,0 | 2,0 |
| 2,0 | 2,0 | 2,0 | 2,0 | 2,0 |
b) Bicluster mit konstanten Zeilenwerten :
| 1,0 | 1,0 | 1,0 | 1,0 | 1,0 |
| 2,0 | 2,0 | 2,0 | 2,0 | 2,0 |
| 3,0 | 3,0 | 3,0 | 3,0 | 3,0 |
| 4,0 | 4,0 | 4,0 | 4,0 | 4,0 |
| 4,0 | 4,0 | 4,0 | 4,0 | 4,0 |
c) Bicluster mit konstanten Spaltenwerten :
| 1,0 | 2,0 | 3,0 | 4,0 | 5,0 |
| 1,0 | 2,0 | 3,0 | 4,0 | 5,0 |
| 1,0 | 2,0 | 3,0 | 4,0 | 5,0 |
| 1,0 | 2,0 | 3,0 | 4,0 | 5,0 |
| 1,0 | 2,0 | 3,0 | 4,0 | 5,0 |
d) Bicluster mit kohärenten Werten (additiv) :
| 1,0 | 4,0 | 5,0 | 0,0 | 1,5 |
| 4,0 | 7,0 | 8,0 | 3,0 | 4,5 |
| 3,0 | 6,0 | 7,0 | 2,0 | 3,5 |
| 5,0 | 8,0 | 9,0 | 4,0 | 5,5 |
| 2,0 | 5,0 | 6,0 | 1,0 | 2,5 |
e) Bicluster mit kohärenten Werten (multiplikativ) :
| 1,0 | 0,5 | 2,0 | 0,2 | 0,8 |
| 2,0 | 1,0 | 4,0 | 0,4 | 1,6 |
| 3,0 | 1,5 | 6,0 | 0,6 | 2,4 |
| 4,0 | 2,0 | 8,0 | 0,8 | 3,2 |
| 5,0 | 2,5 | 10,0 | 1,0 | 4,0 |
Die Beziehung zwischen diesen Clustermodellen und anderen Clusteringtypen, wie Correlation Clustering, wird diskutiert in.

## Algorithmen

Zahlreiche Biclustering-Algorithmen wurden für die Bioinformatik entwickelt, darunter: Block Clustering, CTWC (Coupled Two-Way Clustering), ITWC (Interrelated Two-Way Clustering), δ-Bicluster, δ-pCluster, δ-Pattern, FLOC, OPC, Plaid Model, OPSMs (Order-preserving Submatrices), Gibbs, SAMBA (Statistical-Algorithmic Method for Bicluster Analysis), Robust Biclustering Algorithm (RoBA), Crossing Minimization, cMonkey, PRMs, DCC, LEB (Localize and Extract Biclusters), QUBIC (QUalitative BIClustering), BCCA (Bi-Correlation Clustering Algorithm) und FABIA (Factor Analysis for Bicluster Acquisition). Auch in anderen Anwendungsgebieten werden Biclustering-Algorithmen vorgeschlagen und eingesetzt. Dort sind sie unter den Bezeichnungen Co-Clustering, Bidimensional Clustering sowie Subspace Clustering zu finden.
Biclustering hat sich zur Erkennung lokaler Muster in Zeitreihendaten als relevant gezeigt. Daher haben sich neueste Ansätze für Zeitreihendaten von Genexpressionen dem Biclustering-Problem gewidmet, mit dem interessante Bicluster auf Bicluster mit aneinander angrenzenden Spalten beschränkt werden können. Diese Einschränkung führt zu einem Problem, das in polynomieller Zeit gelöst werden kann. Zudem ermöglicht es die Entwicklung von effizienten erschöpfenden Enumerationsalgorithmen, wie CCC-Biclustering und e-CCC-Biclustering. Manche der neuesten Algorithmen haben versucht, zusätzliche Unterstützung für das Biclustering von rechteckigen Matrizen mit anderen Datentypen, darunter cMonkey, zu inkludieren.
Es gibt eine fortlaufende Debatte über die Beurteilung der Ergebnisse dieser Methoden, da Biclustering die Überlappung von Clustern erlaubt und manche Algorithmen die Exklusion schwierig vereinbarter Spalten/Bedingungen erlauben. Nicht alle der verfügbaren Algorithmen sind deterministisch. Der Analytiker muss die Aufmerksamkeit auf das Ausmaß jener Ergebnisse richten, die stabile Minima darstellen. Da sich das Problem auf unüberwachtes Lernen bezieht, erweist sich die Fehlererkennung in den Ergebnissen wegen des fehlenden Goldstandards als schwierig. Ein Ansatz ist die Anwendung mehrerer Biclustering-Algorithmen, deren Mehrheit oder qualifizierte Mehrheit das beste Ergebnis ermittelt. Eine andere Möglichkeit ist eine Qualitätsanalyse der Shifting- und Scaling-Pattern von Biclustern. Biclustering wird auch im Bereich des Text Mining (oder der Klassifizierung) unter dem Begriff Co-Clustering eingesetzt. Textkorpora werden in Vektorform als eine Matrix D dargestellt, deren Zeilen für die Dokumente und deren Spalten für die Wörter eines Wörterbuches stehen. Die Matrix-Elemente D$_{ij}$ bezeichnen das Vorkommen des Wortes j im Dokument i. Co-Clustering-Algorithmen werden anschließend zur Erkennung von Blöcken in D angewandt, welche einer Gruppe von Dokumenten (Zeilen) entsprechen, die durch eine Gruppe von Wörtern (Spalten) gekennzeichnet sind.
Mehrere Ansätze wurden basierend auf den Informationsinhalten der erhaltenen Blöcke vorgeschlagen: Matrix-basierte Ansätze, wie SVD und BVD sowie Graph-basierte. Informationstheoretische Algorithmen weisen iterativ jeder Zeile einen Cluster von Dokumenten und jeder Spalte einen Cluster von Wörtern zu, sodass die gegenseitige Information maximiert wird. Matrix-basierte Methoden fokussieren sich auf die Dekomposition von Matrizen in Blöcke, damit der Fehler der Dekomposition zwischen der ursprünglichen Matrix und den neu gebildeten Matrizen minimiert wird. Graph-basierte Methoden neigen dazu, die Überschneidungen zwischen den Clustern zu minimieren. Sind zwei Gruppen von Dokumenten d$_1$ und d$_2$ gegeben, kann die Anzahl der Überschneidungen anhand der Anzahl der Wörter, die in Dokumenten der Gruppen d$_1$ und d$_2$ auftreten, gemessen werden.
Bisson und Hussain haben einen neuen Ansatz zur Verwendung der Ähnlichkeit zwischen Wörtern und der Ähnlichkeit zwischen Dokumenten zum Co-Clustering einer Matrix vorgeschlagen. Ihre Methode χ-Sim (Cross Similarity) basiert auf dem Finden einer Ähnlichkeit zwischen Dokumenten und Wörtern und der anschließenden Verwendung von klassischen Clusteringmethoden, wie dem hierarchischen Clustering.