Learn R Programming

IDmining (version 1.0.7)

MBFR_parallel: Morisita-Based Filter for Regression Problems (Parallel)

Description

Executes the MBFR algorithm on a chosen number of workers (CPU parallel computing).

Usage

MBFR_parallel(XY, scaleQ, m=2, C=NULL, ncores=4)

Arguments

XY

A \(N \times E\) matrix, data.frame or data.table where \(N\) is the number of data points, \(E\) is the number of variables (i.e. the input variables also called "features" + the output variable). The last column contains the values of the output variable. And each variable (input + output) is rescaled to the \([0,1]\) interval by the function.

scaleQ

A vector containing the values of \(\ell^{-1}\) chosen by the user (see Details).

m

The value of the parameter m (by default: m=2).

C

The number of steps of the SFS procedure (by default: C = E-1).

ncores

Number of workers (by default: ncores = 4)

Value

A list of five elements:

  1. a vector containing the identifier numbers of the original features in the order they are selected through the Sequential Forward Selection (SFS) search procedure.

  2. the names of the corresponding features.

  3. the corresponding values of \(Diss\).

  4. the ID estimate of the output variable.

  5. a \(C \times 3\) matrix containing: (column 1) the ID estimates of the subsets retained by the SFS procedure with the target variable; (column 2) the ID estimates of the subsets retained by the SFS procedure without the output variable; (column 3) the values of \(Diss\) of the subsets retained by the SFS procedure.

Details

  1. \(\ell\) is the edge length of the grid cells (or quadrats). Since the data (and consenquently the grid) are rescaled to the \([0,1]\) interval, \(\ell\) is equal to \(1\) for a grid consisting of only one cell.

  2. \(\ell^{-1}\) is the number of grid cells (or quadrats) along each axis of the Euclidean space in which the data points are embedded.

  3. \(\ell^{-1}\) is equal to \(Q^{(1/E)}\) where \(Q\) is the number of grid cells and \(E\) is the number of variables (or features).

  4. \(\ell^{-1}\) is directly related to \(\delta\) (see References).

  5. \(\delta\) is the diagonal length of the grid cells.

  6. The values of \(\ell^{-1}\) in scaleQ 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}\)) (see logMINDEX).

References

J. Golay, M. Leuenberger and M. Kanevski (2017). Feature selection for regression problems based on the Morisita estimator of intrinsic dimension, Pattern Recognition 70:126<U+2013>138.

J. Golay, M. Leuenberger and M. Kanevski (2015). Morisita-based feature selection for regression problems.Proceedings of the 23rd European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning (ESANN), Bruges (Belgium).

Examples

Run this code
# NOT RUN {
bf <- Butterfly(10000)

fly_select <- MBFR_parallel(bf, 5:25, ncores=2)
var_order  <- fly_select[[2]]
var_perf   <- fly_select[[3]]

dev.new(width=5, height=4)
plot(var_perf,type="b",pch=16,lwd=2,xaxt="n",xlab="",ylab="",
     ylim=c(0,1),col="red",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 Dissimilarity",line = 2.5,cex=1)

bf_large <- Butterfly(10^5)
system.time(MBFR(bf_large, 5:25))
system.time(MBFR_parallel(bf_large, 5:25))
# }

Run the code above in your browser using DataLab