Class UFSACO
java.lang.Object
unifeat.featureSelection.FeatureSelection
unifeat.featureSelection.filter.FilterApproach
unifeat.featureSelection.filter.unsupervised.UFSACO
This java class is used to implement the unsupervised feature selection based
on ant colony optimization (UFSACO) method.
- Author:
- Sina Tabakhi
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprivate final double
private int[]
private final double
private final double
private int[]
private final double
private final int
private int
private int
private double[]
private final double
private double[]
private boolean[][]
private int
Fields inherited from class unifeat.featureSelection.FeatureSelection
numClass, numFeatures, numSelectedFeature, selectedFeatureSubset, trainSet
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Starts the feature selection process by unsupervised feature selection based on ant colony optimization (UFSACO) methodprivate static int
findIndex
(int index1, int index2) Finds index in new Data Structure(Symmetric Matrix)private int
greedyRule
(int indexAnt) Greedy state transition ruleprivate void
Updates intensity of pheromone valuesprivate int
probRule
(int indexAnt) Probability state transition ruleprivate void
Places the ants randomly on the graph nodes as their starting nodesprivate int
stateTransitionRules
(int indexAnt) Chooses the next feature among unvisited features according to the state transition rulesvalidate()
This method returns the potential errors in the input parameters.Methods inherited from class unifeat.featureSelection.filter.FilterApproach
newMethod
Methods inherited from class unifeat.featureSelection.FeatureSelection
getSelectedFeatureSubset, loadDataSet, loadDataSet, setNumSelectedFeature
-
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
Initializes the parameters- Parameters:
arguments
- array of parameters contains (sizeSelectedFeatureSubset
,initPheromone
,numIterations
,numAnt
,numFeatureOfAnt
,evaporationRate
,betaParameter
,q0_Parameter
) in whichsizeSelectedFeatureSubset
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, andq0_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 featuresinitPheromone
- the initial value of the pheromonenumIterations
- the maximum number of iterationnumAnt
- the number of antsnumFeatureOfAnt
- the number of selected features by each ant in each iterationevaporationRate
- the evaporation rate of the pheromonebetaParameter
- the beta parameter in the state transition ruleq0_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 rowindex2
- 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 classFeatureSelection
-
validate
This method returns the potential errors in the input parameters.- Overrides:
validate
in classFeatureSelection
- Returns:
- a string contains the information about incorrect parameters
-