Instead of covering numbers which are expensive to compute in many fractal-based methods, est.packing exploits packing numbers as a proxy to describe spatial density. Since it involves random permutation of the dataset at each iteration, every run might have different results.

est.packing(X, eps = 0.01)

Arguments

X

an \((n\times p)\) matrix or data frame whose rows are observations.

eps

small positive number for stopping threshold.

Value

a named list containing containing

estdim

estimated intrinsic dimension.

References

Kégl B (2002). “Intrinsic Dimension Estimation Using Packing Numbers.” In Proceedings of the 15th International Conference on Neural Information Processing Systems, NIPS'02, 697--704.

Author

Kisung You

Examples

# \donttest{
## create 'swiss' roll dataset
X = aux.gensamples(dname="swiss")

## try different eps values
out1 = est.packing(X, eps=0.1)
out2 = est.packing(X, eps=0.01)
out3 = est.packing(X, eps=0.001)

## print the results
line1 = paste0("* est.packing : eps=0.1   gives ",round(out1$estdim,2))
line2 = paste0("* est.packing : eps=0.01  gives ",round(out2$estdim,2))
line3 = paste0("* est.packing : eps=0.001 gives ",round(out3$estdim,2))
cat(paste0(line1,"\n",line2,"\n",line3))
#> * est.packing : eps=0.1   gives 1.72
#> * est.packing : eps=0.01  gives 1.62
#> * est.packing : eps=0.001 gives 2.34
# }