AffinityParam-class {bluster} | R Documentation

## Affinity propogation

### Description

Use affinity propagation from the apcluster package to cluster observations. Note that this requires the installation of the apcluster package.

### Usage

    AffinityParam(
      s = NULL,
      p = NA,
      q = NA,
      maxits = 1000,
      convits = 100,
      lam = 0.9,
      nonoise = FALSE
    )

    ## S4 method for signature 'ANY,AffinityParam'
    clusterRows(x, BLUSPARAM, full = FALSE)

### Arguments

`s` | A function that accepts a matrix of observations by dimensions and returns a similarity matrix. If `NULL`, defaults to the output of `negDistMat` with `r=2`.
`p, q` | Numeric scalars controlling the input preference, i.e., the resolution of the clustering. These are passed to the `apcluster` function, where values of `NA` are the default.
`maxits, convits, lam, nonoise` | Further arguments to pass to the `apcluster` function.
`x` | A numeric matrix-like object where rows represent observations and columns represent variables.
`BLUSPARAM` | A AffinityParam object.
`full` | Logical scalar indicating whether the full affinity propagation statistics should be returned.

### Details

To modify an existing AffinityParam object `x`, users can simply call `x[[i]]` or `x[[i]] <- value` where `i` is any argument used in the constructor.

Setting `q` (and less typically, `p`) allows us to tune the resolution of the clustering. In particular, when `p=NA`, it is computed based on the setting of `q`:

- If the specified `q` lies in [0, 1], `p` is defined as the `q`-quantile of the finite similarities across all pairs of observations. When `q=NA`, it defaults to 0.5.

- If `q` is negative, `p` is defined as the `M + abs(M) * q` where `M` is the smallest finite similarity across all pairs. This yields smaller `p` values while still responding to the scale of the similarities.

The resulting value is used as the self-preference, i.e., the diagonal of the availability matrix. Larger values yield more clusters as each data point is more inclined to form its own cluster.

### Value

The `AffinityParam` constructor will return a AffinityParam object with the specified parameters.

The `clusterRows` method will return a factor of length equal to `nrow(x)` containing the cluster assignments. If `full=TRUE`, a list is returned with `clusters` (the factor, as above) and `objects` (a list containing `similarity`, the similarity matrix; and `apcluster`, the direct output of `apcluster`).

### Author(s)

Aaron Lun

### See Also

`apcluster` from the apcluster package, which does all of the heavy lifting.

### Examples

    clusterRows(iris[,1:4], AffinityParam())
    clusterRows(iris[,1:4], AffinityParam(q=0.9))
    clusterRows(iris[,1:4], AffinityParam(s=apcluster::expSimMat()))

[Package bluster version 1.2.1 Index]