mirror of https://github.com/jlizier/jidt
Javadocs noted as incomplete, and indeed the code itself experimental, for mixed package.
This commit is contained in:
parent
8ea3368224
commit
b916ac08e8
|
|
@ -19,13 +19,19 @@
|
|||
package infodynamics.measures.mixed;
|
||||
|
||||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
|
||||
|
||||
/**
|
||||
* A conditional mutual information calculator between a joint set of continuous variables,
|
||||
* and a discrete variable, conditioned on another discrete variable.
|
||||
*
|
||||
* @author Joseph Lizier, joseph.lizier at gmail.com
|
||||
*
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link ConditionalMutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public interface ConditionalMutualInfoCalculatorMultiVariateWithDiscrete {
|
||||
|
||||
|
|
|
|||
|
|
@ -18,14 +18,20 @@
|
|||
|
||||
package infodynamics.measures.mixed;
|
||||
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
|
||||
/**
|
||||
* A conditional mutual information calculator between a joint set of continuous variables,
|
||||
* and a discrete variable, conditioned on another continuous variable vector.
|
||||
*
|
||||
* @author Joseph Lizier, joseph.lizier at gmail.com
|
||||
*
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link ConditionalMutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public interface ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSource {
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
package infodynamics.measures.mixed;
|
||||
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSource;
|
||||
import infodynamics.utils.MatrixUtils;
|
||||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
|
|
@ -31,7 +32,13 @@ import infodynamics.utils.RandomGenerator;
|
|||
* conditioned on another vector of continuous variables Z.
|
||||
* It implements common methods for child classes to build on</p>
|
||||
*
|
||||
* @author Joseph Lizier
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link ConditionalMutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public abstract class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon
|
||||
implements ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSource {
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
package infodynamics.measures.mixed;
|
||||
|
||||
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
|
||||
/**
|
||||
|
|
@ -43,8 +44,13 @@ import infodynamics.utils.EmpiricalMeasurementDistribution;
|
|||
* </ol>
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier joseph.lizier_at_gmail.com
|
||||
*
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link MutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public interface MutualInfoCalculatorMultiVariateWithDiscrete {
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
package infodynamics.measures.mixed.gaussian;
|
||||
|
||||
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon;
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoMultiVariateCommon;
|
||||
import infodynamics.measures.continuous.gaussian.EntropyCalculatorMultiVariateGaussian;
|
||||
import infodynamics.utils.MatrixUtils;
|
||||
|
|
@ -43,7 +44,12 @@ import infodynamics.utils.MatrixUtils;
|
|||
* as we would normally expect a mutual information calculation: if we add more
|
||||
* continuous variables in, it may increase in spite of redundancy between these
|
||||
* variables. TODO Further exploration should take place here ...</p>
|
||||
*
|
||||
*
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link ConditionalMutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Usage:
|
||||
* <ol>
|
||||
|
|
@ -75,8 +81,8 @@ import infodynamics.utils.MatrixUtils;
|
|||
* @see <a href="http://mathworld.wolfram.com/DifferentialEntropy.html">Differential entropy for Gaussian random variables at Mathworld</a>
|
||||
* @see <a href="http://en.wikipedia.org/wiki/Differential_entropy">Differential entropy for Gaussian random variables at Wikipedia</a>
|
||||
* @see <a href="http://en.wikipedia.org/wiki/Multivariate_normal_distribution">Multivariate normal distribution on Wikipedia</a>
|
||||
* @author Joseph Lizier joseph.lizier_at_gmail.com
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceGaussian
|
||||
extends ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
package infodynamics.measures.mixed.gaussian;
|
||||
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.continuous.gaussian.EntropyCalculatorMultiVariateGaussian;
|
||||
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
|
||||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
|
|
@ -42,7 +43,12 @@ import infodynamics.utils.RandomGenerator;
|
|||
* as we would normally expect a mutual information calculation: if we add more
|
||||
* continuous variables in, it increases in spite of redundancy between these
|
||||
* variables. TODO Further exploration should take place here ...</p>
|
||||
*
|
||||
*
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link ConditionalMutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Usage:
|
||||
* <ol>
|
||||
|
|
@ -62,8 +68,8 @@ import infodynamics.utils.RandomGenerator;
|
|||
*
|
||||
* @see Differential entropy for Gaussian random variables defined at
|
||||
* {@link http://mathworld.wolfram.com/DifferentialEntropy.html}
|
||||
* @author Joseph Lizier joseph.lizier_at_gmail.com
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public class MutualInfoCalculatorMultiVariateWithDiscreteGaussian implements
|
||||
MutualInfoCalculatorMultiVariateWithDiscrete, Cloneable {
|
||||
|
|
|
|||
|
|
@ -20,12 +20,22 @@ package infodynamics.measures.mixed.kernel;
|
|||
|
||||
import java.util.Arrays;
|
||||
|
||||
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.continuous.kernel.KernelEstimatorMultiVariate;
|
||||
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
|
||||
import infodynamics.utils.MatrixUtils;
|
||||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
import infodynamics.utils.RandomGenerator;
|
||||
|
||||
/**
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link MutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public class MutualInfoCalculatorMultiVariateWithDiscreteKernel implements
|
||||
MutualInfoCalculatorMultiVariateWithDiscrete {
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
package infodynamics.measures.mixed.kraskov;
|
||||
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon;
|
||||
import infodynamics.utils.EuclideanUtils;
|
||||
import infodynamics.utils.MathsUtils;
|
||||
|
|
@ -34,10 +35,13 @@ import infodynamics.utils.MatrixUtils;
|
|||
* follows {#link ConditionalMutualInfoCalculatorMultiVariateKraskov2}.
|
||||
* </p>
|
||||
*
|
||||
* @see "Estimating mutual information", Kraskov, A., Stogbauer, H., Grassberger, P., Physical Review E 69, (2004) 066138
|
||||
* @see http://dx.doi.org/10.1103/PhysRevE.69.066138
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link ConditionalMutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteKraskov
|
||||
extends ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSourceCommon
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
package infodynamics.measures.mixed.kraskov;
|
||||
|
||||
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
|
||||
import infodynamics.utils.EuclideanUtils;
|
||||
import infodynamics.utils.MathsUtils;
|
||||
|
|
@ -35,10 +36,13 @@ import infodynamics.utils.RandomGenerator;
|
|||
* where small K is used (e.g. for binary data splitting continuous into
|
||||
* two distinct groups, 1400 observations, K=4 has bias ~ -.35)</p>
|
||||
*
|
||||
* @see "Estimating mutual information", Kraskov, A., Stogbauer, H., Grassberger, P., Physical Review E 69, (2004) 066138
|
||||
* @see http://dx.doi.org/10.1103/PhysRevE.69.066138
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link MutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public class MutualInfoCalculatorMultiVariateWithDiscreteKraskov implements MutualInfoCalculatorMultiVariateWithDiscrete {
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
package infodynamics.measures.mixed.symbolic;
|
||||
|
||||
import infodynamics.measures.mixed.ConditionalMutualInfoCalculatorMultiVariateWithDiscrete;
|
||||
import infodynamics.measures.continuous.ConditionalMutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.discrete.ConditionalMutualInformationCalculator;
|
||||
import infodynamics.utils.FirstIndexComparatorDouble;
|
||||
import infodynamics.utils.MathsUtils;
|
||||
|
|
@ -26,6 +27,15 @@ import infodynamics.utils.MatrixUtils;
|
|||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
import infodynamics.utils.RandomGenerator;
|
||||
|
||||
/**
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link ConditionalMutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSymbolic implements
|
||||
ConditionalMutualInfoCalculatorMultiVariateWithDiscrete {
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
package infodynamics.measures.mixed.symbolic;
|
||||
|
||||
import infodynamics.measures.mixed.MutualInfoCalculatorMultiVariateWithDiscrete;
|
||||
import infodynamics.measures.continuous.MutualInfoCalculatorMultiVariate;
|
||||
import infodynamics.measures.discrete.MutualInformationCalculator;
|
||||
import infodynamics.utils.FirstIndexComparatorDouble;
|
||||
import infodynamics.utils.MathsUtils;
|
||||
|
|
@ -26,6 +27,15 @@ import infodynamics.utils.MatrixUtils;
|
|||
import infodynamics.utils.EmpiricalMeasurementDistribution;
|
||||
import infodynamics.utils.RandomGenerator;
|
||||
|
||||
/**
|
||||
* <p>These calculators are <b>EXPERIMENTAL</b> -- not properly tested,
|
||||
* and not well documented. The intended calling pattern is similar to
|
||||
* {@link MutualInfoCalculatorMultiVariate}
|
||||
* </p>
|
||||
*
|
||||
* @author Joseph Lizier (<a href="joseph.lizier at gmail.com">email</a>,
|
||||
* <a href="http://lizier.me/joseph/">www</a>)
|
||||
*/
|
||||
public class MutualInfoCalculatorMultiVariateWithDiscreteSymbolic implements
|
||||
MutualInfoCalculatorMultiVariateWithDiscrete {
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue