Segments a hypervolume into multiple separate hypervolumes.

Share:

Description

Performs hierarchical clustering (using the 'single' method described in fastcluster::hclust) on the input hypervolume to determine which sets of points are closest to others, then cuts the resulting tree at a height equal to the characteristic distance between points multiplied by a distance factor. Random points in the input hypervolume corresponding to each distinct cluster are assigned to distinct output hypervolumes.

Because clustering algorithms scale quadratically with the number of input points, this algorithm can run slowly. Therefore by default, the function can thin the input hypervolume to a reduced number of random points before analysis. This causes some loss of resolution but improves runtimes.

Usage

1
hypervolume_segment(hv, distancefactor = hv@Dimensionality, npmax=NULL)

Arguments

hv

An input Hypervolume class object.

distancefactor

A numeric value characterizing the distance multiplication factor. Larger values result in fewer distinct output hypervolumes; smaller values result in more.

npmax

A numeric value describing the maximum number of random points to be retained in the input; passed to hypervolume_thin before analysis. Set to NULL to disable thinning.

Value

A HypervolumeList object.

See Also

hypervolume_thin

Examples

1
2
3
4
data(iris)
hv1 <- hypervolume(iris[,1:3],bandwidth=0.1)
hv1_segmented <- hypervolume_segment(hv1, npmax=1000,distancefactor=5)
plot(hv1_segmented)