Skip to main content
. 2021 Sep 29;23(10):1274. doi: 10.3390/e23101274
Algorithm 1. Pseudocode of Proposed AREMFFS.
Input:
n: Total number of features in the dataset
N: Total Number of Filter Rank Method = |CS, REF, IG|
T1: Threshold value for optimal features selections = (∏i=1nXi)1n=X1X2X3 … Xnn
T2: log2n
A[]: Aggregators A = { min {R1(a1…n), R2(a1…n), … Rm(a1…n)},
max{R1(a1…n), R2(a1…n), … Rm(a1…n)},mean{(∑i=1mRi(a1…n))×1m}, }
P[]: Aggregated Features
Pt′[]: Optimal Features Selected from Aggregated Rank List based on T

Output:
Mt*[] – Single rank list based on AREMFFS
                    // Multi-Filter Feature Selection Phase
1.  for i=1 to N { do
2.          Generate Rank list Rn for each filter rank method i
3.        }
4. Generate Aggregated Rank list using Aggregator functions:
for i=1 to len(A[ ]) { do
5.          Pt*[i] // Initialise variable to hold optimal features
6.          Pi=Ai
7.          for i =1 to Pi[Ni] { do
8.              if (Pi[i]≤ T1)
9.                    Pt*[i]←Pi[i] // append optimal features from P′ based on T
10.                     }
11.             }
//Ensemble Rank Aggregation Phase
12.   for each featuref in Pt*[i] s.t.  i=1,…, An { do    // compute the frequency of each feature in the
                               aggregated lists
13.                            if feature fj∈ Pt*[i] 
14.                               j=count (fj ) 
15.                            if  (j ≥ An−1) 
16.                                M[ ] ← feature fj   //append feature
}//select most occurring feature f in the aggregated list
17.   for i=1 to N{ do
18.          Generate Rank list Rn for each filter rank method i
19.           for i=1 to Rn { do
20.                     Ri′[i] ←TopK features of Rn based on T2 
21.                   }
22.           }
//Backtracking function Phase
23.    for i=1 to len(M[ ]){ do
24.              for j=1 to Ri′[N] { do
25.                           if (feature fi ∈ Ri′[j])
26.                                     g=count (fi)
27.                         }
28.               if (g ≥ Rn−1)
29.                  Mt*[ ]←feature fi
30.              }
31.  return Mt*[ ]