V
- Vector class to use@Title(value="Weighted Covariance Matrix / PCA") @Description(value="A PCA modification by using weights while building the covariance matrix, to obtain more stable results") @Reference(authors="H.-P. Kriegel, P. Kr\u00f6ger, E. Schubert, A. Zimek", title="A General Framework for Increasing the Robustness of PCA-based Correlation Clustering Algorithms", booktitle="Proceedings of the 20th International Conference on Scientific and Statistical Database Management (SSDBM), Hong Kong, China, 2008", url="http://dx.doi.org/10.1007/978-3-540-69497-7_27") public class WeightedCovarianceMatrixBuilder<V extends NumberVector<? extends V,?>> extends AbstractCovarianceMatrixBuilder<V>
CovarianceMatrixBuilder
with weights.
This builder uses a weight function to weight points differently during build
a covariance matrix. Covariance can be canonically extended with weights, as
shown in the article
A General Framework for Increasing the Robustness of PCA-Based Correlation
Clustering Algorithms Hans-Peter Kriegel and Peer Kröger and Erich
Schubert and Arthur Zimek In: Proc. 20th Int. Conf. on Scientific and
Statistical Database Management (SSDBM), 2008, Hong Kong Lecture Notes in
Computer Science 5069, SpringerModifier and Type | Class and Description |
---|---|
static class |
WeightedCovarianceMatrixBuilder.Parameterizer<V extends NumberVector<V,?>>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
static OptionID |
WEIGHT_ID
Parameter to specify the weight function to use in weighted PCA, must
implement
WeightFunction
. |
private PrimitiveDistanceFunction<? super V,DoubleDistance> |
weightDistance
Holds the distance function used for weight calculation
|
protected WeightFunction |
weightfunction
Holds the weight function.
|
Constructor and Description |
---|
WeightedCovarianceMatrixBuilder(WeightFunction weightfunction)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
Matrix |
processIds(DBIDs ids,
Relation<? extends V> database)
Weighted Covariance Matrix for a set of IDs.
|
<D extends NumberDistance<?,?>> |
processQueryResults(Collection<DistanceResultPair<D>> results,
Relation<? extends V> database,
int k)
Compute Covariance Matrix for a QueryResult Collection
By default it will just collect the ids and run processIds
|
processDatabase, processQueryResults
public static final OptionID WEIGHT_ID
WeightFunction
.
Key: -pca.weight
protected WeightFunction weightfunction
private PrimitiveDistanceFunction<? super V extends NumberVector<? extends V,?>,DoubleDistance> weightDistance
public WeightedCovarianceMatrixBuilder(WeightFunction weightfunction)
weightfunction
- public Matrix processIds(DBIDs ids, Relation<? extends V> database)
processIds
in interface CovarianceMatrixBuilder<V extends NumberVector<? extends V,?>>
processIds
in class AbstractCovarianceMatrixBuilder<V extends NumberVector<? extends V,?>>
ids
- a collection of idsdatabase
- the database usedpublic <D extends NumberDistance<?,?>> Matrix processQueryResults(Collection<DistanceResultPair<D>> results, Relation<? extends V> database, int k)
processQueryResults
in interface CovarianceMatrixBuilder<V extends NumberVector<? extends V,?>>
processQueryResults
in class AbstractCovarianceMatrixBuilder<V extends NumberVector<? extends V,?>>
results
- a collection of QueryResultsdatabase
- the database usedk
- number of elements to process