Learn R Programming

FSinR (version 1.0.8)

ts: Tabu Search

Description

The Tabu Searchglover1986FSinR glover1990FSinR method starts with a certain set of features and in each iteration it searches among its neighbors to advance towards a better solution. The method has a memory (tabu list) that prevents returning to recently visited neighbors. The method ends when a certain number of iterations are performed, or when a certain number of iterations are performed without improvement, or when there are no possible neighbors. Once the method is finished, an intensification phase can be carried out that begins in the space of the best solutions found, or a diversification phase can be carried out in which solutions not previously visited are explored.

Usage

ts(
  data,
  class,
  featureSetEval,
  start = NULL,
  numNeigh = (ncol(data) - 1),
  tamTabuList = 5,
  iter = 100,
  iterNoImprovement = NULL,
  intensification = NULL,
  iterIntensification = 50,
  interPercentaje = 75,
  tamIntermediateMemory = 5,
  diversification = NULL,
  iterDiversification = 50,
  forgetTabuList = TRUE,
  verbose = FALSE
)

Arguments

data
  • A data frame with the features and the class of the examples

class
  • The name of the dependent variable

featureSetEval
  • The measure for evaluate features

start
  • Binary vector with the set of initial features

numNeigh
  • The number of neighbor to consider in each iteration. By default: all posibles. It is important to note that a high value of this parameter considerably increases the computation time.

tamTabuList
  • The size of the tabu list. By default: 5

iter
  • The number of iterations of the algorithm. By default: 100

iterNoImprovement
  • Number of iterations without improvement to start/reset the intensification/diversification phase. By default, it is not taken into account (all iterations are performed)

intensification
  • Number of times the intensification phase is applied. None by default

iterIntensification
  • Number of iterations of the intensification phase

interPercentaje
  • Percentage of the most significant features to be taken into account in the intensification phase

tamIntermediateMemory
  • Number of best solutions saved in the intermediate memory

diversification
  • Number of times the diversification phase is applied. None by default

iterDiversification
  • Number of iterations of the diversification phase

forgetTabuList
  • Forget tabu list for intensification/diversification phases. By default: TRUE

verbose
  • Print the partial results in each iteration

Value

A list is returned containing for each repetition of the algorithm:

bestFeatures

A vector with all features. Selected features are marked with 1, unselected features are marked with 0

bestFitness

Evaluation measure obtained with the feature selection

basicStage

List containing the best neighbour in each iteration along with its obtained evaluation measure, and the content of the taboo list in each iteration

intensificationStage

List containing for each repetition of the intensification phase the best neighbour in each iteration along with its obtained evaluation measure, and the content of the taboo list in each iteration.

diversificationStage

List containing for each repetition of the diversification phase the best neighbour in each iteration along with its obtained evaluation measure, and the content of the taboo list in each iteration.

References

Examples

Run this code
# NOT RUN {
## Taboo-Search algorithm for iris dataset (filter method)
ts(iris, 'Species', roughsetConsistency, iter = 5)
# }

Run the code above in your browser using DataLab