Example: UnsupervisedNominalFilter

In this example a data set with 7 observations and 3 classes is filtered.

import com.imsl.stat.*;
import com.imsl.math.*;
import com.imsl.datamining.neural.*;

public class UnsupervisedNominalFilterEx1 {
    public static void main(String args[]) throws Exception {
        int nClasses = 3;
        UnsupervisedNominalFilter filter = new UnsupervisedNominalFilter(nClasses);
        int nObs = 7;
        int[] x = {3, 3, 1, 2, 2, 1, 2};
        int[] xBack = new int[nObs];
        int[][] z;
        
        /* Perform Binary Filtering. */
        z = filter.encode(x);
        PrintMatrix pm = new PrintMatrix();
        pm.setTitle("Filtered x");
        pm.print(z);

        /* Perform Binary Un-filtering. */
        for (int i=0;i<nObs;i++) {
            xBack[i] = filter.decode(z[i]);
        }
        pm.setTitle("Result of inverse filtering");
        pm.print(xBack);
    }
}

Output

 Filtered x
   0  1  2  
0  0  0  1  
1  0  0  1  
2  1  0  0  
3  0  1  0  
4  0  1  0  
5  1  0  0  
6  0  1  0  

Result of inverse filtering
   0  
0  3  
1  3  
2  1  
3  2  
4  2  
5  1  
6  2  

Link to Java source.