public class UnsupervisedNominalFilter extends Object implements Serializable
Method encode
can be used to apply binary encoding.
Referring to the result as z, binary encoding takes each
category in the nominal variable x[]
, and creates a column in z
containing all zeros and ones. A value of zero indicates that this
category was not present and a value of one indicates that it is present.
For example, if x[]={2, 1, 3, 4, 2, 4}
then
nClasses=4
, and
$$z =\left[ \begin{array} {rrrr}
0 & 1 & 0 & 0 \\
1 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 \\
0 & 1 & 0 & 0 \\
0 & 0 & 0 & 1
\end{array}\right ]$$
Notice that the number of columns in the result, z, is equal to the number
of distinct classes in x
. The number of rows in z is
equal to the length of x
.
Unfiltering can be performed using the method decode
.
In this case, z
is the input, and we refer to x as the output.
Binary unfiltering takes binary representation in z
, and returns the
appropriate class in x.
For example, if a row in z
equals \(\{0, 1, 0, 0\}\), then the return value from
decode
would be \(2\) for that row. If a row in z
equals \(\{1, 0, 0, 0\}\),
then the return value from decode
would be \(1\) for that row.
Notice these are the same values as the first two elements of the original
x[]
because classes are numbered sequentially from
\(1\) to nClasses
. This ensures that the results of
decode
are associated with the i-th class in x[]
.
Constructor and Description |
---|
UnsupervisedNominalFilter(int nClasses)
Constructor for
UnsupervisedNominalFilter . |
Modifier and Type | Method and Description |
---|---|
int |
decode(int[] z)
Decodes a binary encoded array into its nominal category.
|
int[] |
decode(int[][] z)
Decodes a matrix representing the binary encoded columns of the nominal
variable.
|
int[] |
encode(int x)
Apply forward encoding to a value.
|
int[][] |
encode(int[] x)
Encodes class data prior to its use in neural network training.
|
int |
getNumberOfClasses()
Retrieves the number of classes in the nominal variable.
|
public UnsupervisedNominalFilter(int nClasses)
UnsupervisedNominalFilter
.nClasses
- An int
specifying the number of
categories in the nominal variable to be filtered.public int getNumberOfClasses()
int
containing the number of classes in the
nominal variable.public int[][] encode(int[] x)
x
- An int
array containing the data to be
encoded. Class number must be in the range 1 to nClasses
.int
matrix containing the encoded data.public int[] encode(int x)
x
- An int
containing the value to be encoding.
Class number must be in the range 1 to nClasses
.int
array containing the encoded data.public int decode(int[] z)
encode(int)
method.z
- An int
array containing the data to be decoded.int
containing the number associated
with the category encoded in z
.public int[] decode(int[][] z)
encode(int[])
method.z
- An int
matrix containing the data to be decoded.int
array containing the decoded data.Copyright © 2020 Rogue Wave Software. All rights reserved.