Database Reference
In-Depth Information
Transformations of Mining Vectors
The first type is transformations of mining vectors which implement the
MiningTransformer
interface. It has a simple structure which clearly reflects the
XELOPES approach to basis transformations:
public interface MiningTransformer
{
public MiningDataSpecification transform( MiningData
SpecificationmetaData ) throws MiningException;
public MiningVector transform( MiningVector vector )
throws MiningException;
}
The first
transform
method transforms basis
A
into a basis
B
. The second
transform
method transforms the coordinates of a vector in basis
A
into the
coordinates of the transformed vector in basis
B
.
We mention three important special cases of vector transformations: if
A
and
B
are bases of the same space and the vector is not transformed (but just its
coordinates), this is called a
pure basis transformation
. Basis transformations are
discussed below. If the bases are equal, i.e.,
A ΒΌ B
(first
transform
method is
identity), and the vector is transformed, this is called a
pure vector transformation
.
Further, basis
B
could be the basis of another space, and then we have a
space
transformation
. Often, these types of transformations are mixed.
Back to
MiningTransformer
, its main advantage is the clear separation of basis
and coordinate transformations. This has large practical consequences.
Mining Filter Stream
An example of the advantages of separating the basis from the coordinate trans-
formation is the
MiningFilterStream
which applies transformations dynamically
to a mining input stream.
MiningFilterStream
is itself a special type of a mining
input stream. Its constructor takes an arbitrary mining input stream object
miningInputStream
and a mining transformer object
miningTransformer
as
arguments. Then, in the
getMetaData
and
read
methods of
MiningFilterStream
,
the transformations of
miningTransformer
are applied to the metadata and mining
vectors of
miningInputStream
. The work of
MiningFilterStream
is illustrated in
Fig.
12.9
.
The other stream methods of
MiningFilterStream
are simply passed to
miningIn-
putStream
.
MiningFilterStream
is universal and easy to use. It can be applied to
streams of almost unbounded size. The disadvantage is the lower access speed since
each call of read runs a transformation.