MBRM_parallel {IDmining} | R Documentation |
Morisita-Based Filter for Redundancy Minimization (Parallel)
Description
Executes the MBRM algorithm for unsupervised feature selection (CPU parallel computing).
Usage
MBRM_parallel(X, scaleQ, m=2, C=NULL, ID_tot=NULL, ncores=4)
Arguments
X |
A |
scaleQ |
A vector containing the values of |
m |
The value of the parameter m (by default: |
C |
The number of steps of the SFS procedure (by default: |
ID_tot |
The value of the full data ID if it is known a priori (by default: the value of ID_tot is estimated using the Morisita estimator of ID witin the function). |
ncores |
Number of workers (by default: |
Details
-
\ell
is the edge length of the grid cells (or quadrats). Since the the variables (and consenquently the grid) are rescaled to the[0,1]
interval,\ell
is equal to1
for a grid consisting of only one cell. -
\ell^{-1}
is the number of grid cells (or quadrats) along each axis of the Euclidean space in which the data points are embedded. -
\ell^{-1}
is equal toQ^{(1/E)}
whereQ
is the number of grid cells andE
is the number of variables (or features). -
\ell^{-1}
is directly related to\delta
(see References). -
\delta
is the diagonal length of the grid cells. The values of
\ell^{-1}
inscaleQ
must be chosen according to the linear part of the\log
-\log
plot relating the\log
values of the multipoint Morisita index to the\log
values of\delta
(or, equivalently, to the\log
values of\ell^{-1}
) (seelogMINDEX
).
Value
A list of four elements:
a vector containing the identifier numbers of the original features in the order they are selected through the Sequential Forward Selection (SFS) search procedure.
the names of the corresponding features.
the corresponding ID estimates.
the ID estimate of the full data set.
Author(s)
Jean Golay jeangolay@gmail.com
References
J. Golay and M. Kanevski (2017). Unsupervised feature selection based on the Morisita estimator of intrinsic dimension, Knowledge-Based Systems 135:125-134.
Examples
bf <- Butterfly(10000)
bf_select <- MBRM_parallel(bf[,-9], 5:25, ncores=2)
var_order <- bf_select[[2]]
var_perf <- bf_select[[3]]
## Not run:
dev.new(width=5, height=4)
plot(var_perf,type="b",pch=16,lwd=2,xaxt="n",xlab="", ylab="",
col="red",ylim=c(0,max(var_perf)),panel.first={grid(lwd=1.5)})
axis(1,1:length(var_order),labels=var_order)
mtext(1,text="Added Features (from left to right)",line=2.5,cex=1)
mtext(2,text="Estimated ID",line=2.5,cex=1)
bf_large <- Butterfly(10^5)
system.time(MBRM(bf_large[,-9], 5:25))
system.time(MBRM_parallel(bf_large[,-9], 5:25))
## End(Not run)