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.
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
)
A data frame with the features and the class of the examples
The name of the dependent variable
The measure for evaluate features
Binary vector with the set of initial features
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.
The size of the tabu list. By default: 5
The number of iterations of the algorithm. By default: 100
Number of iterations without improvement to start/reset the intensification/diversification phase. By default, it is not taken into account (all iterations are performed)
Number of times the intensification phase is applied. None by default
Number of iterations of the intensification phase
Percentage of the most significant features to be taken into account in the intensification phase
Number of best solutions saved in the intermediate memory
Number of times the diversification phase is applied. None by default
Number of iterations of the diversification phase
Forget tabu list for intensification/diversification phases. By default: TRUE
Print the partial results in each iteration
A list is returned containing for each repetition of the algorithm:
A vector with all features. Selected features are marked with 1, unselected features are marked with 0
Evaluation measure obtained with the feature selection
List containing the best neighbour in each iteration along with its obtained evaluation measure, and the content of the taboo list in each iteration
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.
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.
# 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