V
- the type of FeatureVector handled by this AlgorithmD
- the type of Distance used by this Algorithm@Title(value="Dependency Derivator: Deriving numerical inter-dependencies on data") @Description(value="Derives an equality-system describing dependencies between attributes in a correlation-cluster") @Reference(authors="E. Achtert, C. B\u00f6hm, H.-P. Kriegel, P. Kr\u00f6ger, A. Zimek", title="Deriving Quantitative Dependencies for Correlation Clusters", booktitle="Proc. 12th Int. Conf. on Knowledge Discovery and Data Mining (KDD \'06), Philadelphia, PA 2006.", url="http://dx.doi.org/10.1145/1150402.1150408") public class DependencyDerivator<V extends NumberVector<V,?>,D extends Distance<D>> extends AbstractPrimitiveDistanceBasedAlgorithm<V,D,CorrelationAnalysisSolution<V>>
Dependency derivator computes quantitatively linear dependencies among attributes of a given dataset based on a linear correlation PCA.
Reference:Modifier and Type | Class and Description |
---|---|
static class |
DependencyDerivator.Parameterizer<V extends NumberVector<V,?>,D extends Distance<D>>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
static OptionID |
DEPENDENCY_DERIVATOR_RANDOM_SAMPLE
Flag to use random sample (use knn query around centroid, if flag is not
set).
|
private static Logging |
logger
The logger for this class.
|
NumberFormat |
NF
Number format for output of solution.
|
static OptionID |
OUTPUT_ACCURACY_ID
Parameter to specify the threshold for output accuracy fraction digits,
must be an integer equal to or greater than 0.
|
private PCAFilteredRunner<V> |
pca
Holds the object performing the pca.
|
private boolean |
randomsample
Flag for random sampling vs. kNN
|
static OptionID |
SAMPLE_SIZE_ID
Optional parameter to specify the treshold for the size of the random
sample to use, must be an integer greater than 0.
|
private int |
sampleSize
Holds the value of
SAMPLE_SIZE_ID . |
Constructor and Description |
---|
DependencyDerivator(PrimitiveDistanceFunction<V,D> distanceFunction,
NumberFormat nf,
PCAFilteredRunner<V> pca,
int sampleSize,
boolean randomsample)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
CorrelationAnalysisSolution<V> |
generateModel(Relation<V> db,
DBIDs ids)
Runs the pca on the given set of IDs.
|
CorrelationAnalysisSolution<V> |
generateModel(Relation<V> db,
DBIDs ids,
V centroidDV)
Runs the pca on the given set of IDs and for the given centroid.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
CorrelationAnalysisSolution<V> |
run(Database database,
Relation<V> relation)
Computes quantitatively linear dependencies among the attributes of the
given database based on a linear correlation PCA.
|
getDistanceFunction
makeParameterDistanceFunction, run
private static final Logging logger
public static final OptionID DEPENDENCY_DERIVATOR_RANDOM_SAMPLE
public static final OptionID OUTPUT_ACCURACY_ID
public static final OptionID SAMPLE_SIZE_ID
private final int sampleSize
SAMPLE_SIZE_ID
.private final PCAFilteredRunner<V extends NumberVector<V,?>> pca
public final NumberFormat NF
private final boolean randomsample
public DependencyDerivator(PrimitiveDistanceFunction<V,D> distanceFunction, NumberFormat nf, PCAFilteredRunner<V> pca, int sampleSize, boolean randomsample)
distanceFunction
- distance functionnf
- Number formatpca
- PCA runnersampleSize
- sample sizerandomsample
- flag for random samplingpublic CorrelationAnalysisSolution<V> run(Database database, Relation<V> relation) throws IllegalStateException
database
- the database to run this DependencyDerivator onrelation
- the relation to useIllegalStateException
public CorrelationAnalysisSolution<V> generateModel(Relation<V> db, DBIDs ids)
db
- the databaseids
- the set of idspublic CorrelationAnalysisSolution<V> generateModel(Relation<V> db, DBIDs ids, V centroidDV)
db
- the databaseids
- the set of idscentroidDV
- the centroidpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<CorrelationAnalysisSolution<V extends NumberVector<V,?>>>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<CorrelationAnalysisSolution<V extends NumberVector<V,?>>>