The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Title: Alternating K-Means Biclustering
Version: 0.1.0
Description: Implements the alternating k-means biclustering algorithm in Fraiman and Li (2020) <doi:10.48550/arXiv.2009.04550>.
License: GPL-3
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.1.1
Depends: R (≥ 2.10)
NeedsCompilation: no
Packaged: 2020-09-18 17:38:42 UTC; lizichao
Author: Zichao Li [aut, cre], Nicolas Fraiman [aut]
Maintainer: Zichao Li <lizichao@live.unc.edu>
Repository: CRAN
Date/Publication: 2020-09-24 09:10:15 UTC

Alternating k-means biclustering

Description

This function uses the alternating k-means biclustering algorithm to extract the k biclusters in the matrix X. See the paper "Biclustering with Alternating K-Means" for more details.

Usage

akmbiclust(X, k, lambda = 0, nstart = 1)

Arguments

X

Data matrix.

k

The number of biclusters.

lambda

Regularization parameter. Default is 0.

nstart

The number of random initializations. Default is 1.

Value

A list containing three objects:

row_labels

The bicluster labels of every row.

col_labels

The bicluster labels of every column.

loss

The loss of the produced biclusters.

Author(s)

Nicolas Fraiman and Zichao Li

References

N. Fraiman and Z. Li (2020). Biclustering with Alternating K-Means. arXiv preprint arXiv:2009.04550.

Examples

# we create a 100 by 100 matrix X which has an underlying 2 by 2 block structure.
# The entries in the two 50 by 50 blocks on the top left and bottom right follow
# i.i.d. normal with mean 0 and variance 4. The entries in the two 50 by 50 blocks
# on the top right and bottom left follow i.i.d. normal with mean 0 and variance 1.

X <- matrix(rnorm(10000, 0, 1), 100, 100)
X[1:50, 1:50] <- matrix(rnorm(2500, 0, 2), 50, 50)
X[51:100, 51:100] <- matrix(rnorm(2500, 0, 2), 50, 50)

# Alternating k-means biclustering
# Result: perfect
result <- akmbiclust(X, 2, lambda = 0, nstart = 100)
result$row_labels
result$col_labels

# Separate k-means clustering on the rows and columns
# Result: random
kmeans(X, 2)$cluster
kmeans(t(X), 2)$cluster

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.