Package elki.math.statistics.dependence
Class MutualInformationEquiwidthDependence
- java.lang.Object
-
- elki.math.statistics.dependence.MutualInformationEquiwidthDependence
-
- All Implemented Interfaces:
Dependence
public class MutualInformationEquiwidthDependence extends java.lang.Object implements Dependence
Mutual Information (MI) dependence measure by dividing each attribute into equal-width bins. MI can be seen as Kullback–Leibler divergence of the joint distribution and the product of the marginal distributions.For normalization, the resulting values are scaled by
mi/log(nbins). This both cancels out the logarithm base, and normalizes for the number of bins (a uniform distribution will yield a MI with itself of 1).TODO: Offer normalized and non-normalized variants?
For a median-based discretization, see
MaximumConditionalEntropy.- Since:
- 0.7.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMutualInformationEquiwidthDependence.ParParameterization class.-
Nested classes/interfaces inherited from interface elki.math.statistics.dependence.Dependence
Dependence.Utils
-
-
Field Summary
Fields Modifier and Type Field Description static MutualInformationEquiwidthDependenceSTATICStatic instance.
-
Constructor Summary
Constructors Modifier Constructor Description protectedMutualInformationEquiwidthDependence()Constructor - useSTATICinstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <A,B>
doubledependence(NumberArrayAdapter<?,A> adapter1, A data1, NumberArrayAdapter<?,B> adapter2, B data2)Measure the dependence of two variables.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.math.statistics.dependence.Dependence
dependence, dependence, dependence
-
-
-
-
Field Detail
-
STATIC
public static final MutualInformationEquiwidthDependence STATIC
Static instance.
-
-
Constructor Detail
-
MutualInformationEquiwidthDependence
protected MutualInformationEquiwidthDependence()
Constructor - useSTATICinstance.
-
-
Method Detail
-
dependence
public <A,B> double dependence(NumberArrayAdapter<?,A> adapter1, A data1, NumberArrayAdapter<?,B> adapter2, B data2)
Description copied from interface:DependenceMeasure the dependence of two variables.This is the more flexible API, which allows using different internal data representations.
- Specified by:
dependencein interfaceDependence- Type Parameters:
A- First array typeB- Second array type- Parameters:
adapter1- First data adapterdata1- First data setadapter2- Second data adapterdata2- Second data set- Returns:
- Dependence measure
-
-