Data clustering is the unsupervised learning task of dividing data into groups. If the goal is not only to group data, but also to infer the hidden structure responsible for generating the data, a source is associated with each cluster. Conventional clustering methods assume that each data item belongs to a single cluster.
The program takes a binary matrix as an input and factorizes it into two binary matrices such that their Boolean matrix product is an approximation of the input matrix.