public class UFSACO extends FilterApproach
This java class is used to implement the unsupervised feature selection based on ant colony optimization (UFSACO) method.
Author:
Sina Tabakhi
See Also:
  • Field Details

    • INIT_PHEROMONE_VALUE

      private final double INIT_PHEROMONE_VALUE
    • MAX_ITERATION

      private final int MAX_ITERATION
    • NUM_ANTS

      private int NUM_ANTS
    • NUM_FEAT_OF_ANT

      private int NUM_FEAT_OF_ANT
    • TEMP_NUM_FEAT_OF_ANT

      private int TEMP_NUM_FEAT_OF_ANT
    • DECAY_RATE

      private final double DECAY_RATE
    • BETA

      private final double BETA
    • PROB_CHOOSE_EQUATION

      private final double PROB_CHOOSE_EQUATION
    • simValues

      private double[] simValues
    • pheromoneValues

      private double[] pheromoneValues
    • featureCounter

      private int[] featureCounter
    • tabuList

      private boolean[][] tabuList
    • currentState

      private int[] currentState
    • ERROR_SIMILARITY

      private final double ERROR_SIMILARITY
      See Also:
  • Constructor Details

    • UFSACO

      public UFSACO(Object... arguments)
      Initializes the parameters
      Parameters:
      arguments - array of parameters contains (sizeSelectedFeatureSubset, initPheromone, numIterations, numAnt, numFeatureOfAnt, evaporationRate, betaParameter, q0_Parameter) in which sizeSelectedFeatureSubset is the number of selected features, initPheromone is the initial value of the pheromone, numIterations is the maximum number of iteration, numAnt is the number of ants, numFeatureOfAnt is the number of selected features by each ant in each iteration, evaporationRate is the evaporation rate of the pheromone, betaParameter is the beta parameter in the state transition rule, and q0_Parameter is the q0 parameter in the state transition rule
    • UFSACO

      public UFSACO(int sizeSelectedFeatureSubset, double initPheromone, int numIterations, int numAnt, int numFeatureOfAnt, double evaporationRate, double betaParameter, double q0_Parameter)
      Initializes the parameters
      Parameters:
      sizeSelectedFeatureSubset - the number of selected features
      initPheromone - the initial value of the pheromone
      numIterations - the maximum number of iteration
      numAnt - the number of ants
      numFeatureOfAnt - the number of selected features by each ant in each iteration
      evaporationRate - the evaporation rate of the pheromone
      betaParameter - the beta parameter in the state transition rule
      q0_Parameter - the q0 parameter in the state transition rule
  • Method Details

    • findIndex

      private static int findIndex(int index1, int index2)
      Finds index in new Data Structure(Symmetric Matrix)
      Parameters:
      index1 - index of the row
      index2 - index of the column
      Returns:
      the index in new Data Structure
    • setStartNode

      private void setStartNode()
      Places the ants randomly on the graph nodes as their starting nodes
    • greedyRule

      private int greedyRule(int indexAnt)
      Greedy state transition rule
      Parameters:
      indexAnt - index of the ant
      Returns:
      the index of the selected feature
    • probRule

      private int probRule(int indexAnt)
      Probability state transition rule
      Parameters:
      indexAnt - index of the ant
      Returns:
      the index of the selected feature
    • stateTransitionRules

      private int stateTransitionRules(int indexAnt)
      Chooses the next feature among unvisited features according to the state transition rules
      Parameters:
      indexAnt - the index of the ant
      Returns:
      the index of the selected feature
    • pheromoneUpdatingRule

      private void pheromoneUpdatingRule()
      Updates intensity of pheromone values
    • evaluateFeatures

      public void evaluateFeatures()
      Starts the feature selection process by unsupervised feature selection based on ant colony optimization (UFSACO) method
      Specified by:
      evaluateFeatures in class FeatureSelection
    • validate

      public String validate()
      This method returns the potential errors in the input parameters.
      Overrides:
      validate in class FeatureSelection
      Returns:
      a string contains the information about incorrect parameters