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 class
MutualInformationEquiwidthDependence.Par
Parameterization class.-
Nested classes/interfaces inherited from interface elki.math.statistics.dependence.Dependence
Dependence.Utils
-
-
Field Summary
Fields Modifier and Type Field Description static MutualInformationEquiwidthDependence
STATIC
Static instance.
-
Constructor Summary
Constructors Modifier Constructor Description protected
MutualInformationEquiwidthDependence()
Constructor - useSTATIC
instance.
-
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 - useSTATIC
instance.
-
-
Method Detail
-
dependence
public <A,B> double dependence(NumberArrayAdapter<?,A> adapter1, A data1, NumberArrayAdapter<?,B> adapter2, B data2)
Description copied from interface:Dependence
Measure the dependence of two variables.This is the more flexible API, which allows using different internal data representations.
- Specified by:
dependence
in 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
-
-