Commit Graph

276 Commits

Author SHA1 Message Date
Pedro Martinez Mediano c616ba55d4 Added link to wiki in GPU loader error message. 2018-11-25 19:25:33 +02:00
jlizier 8909c23fcc Incorporated auto-embedding in the TE multivariate via conditional MI common class. Much of the code is moved up from the TE multivariate KSG estimator; now the functionality is provided for multivariate Gaussian as well. Also necessitated adding the max_cor_num_surrogates property to TE multivariate Gaussian, and took the opportunity to make much of the whitespace here consistent, and unit tests added for Gaussian (tweaked slightly for KSG) 2018-10-18 00:58:17 +11:00
jlizier 42f8d01e26 Adding property of number of dimensions for the AIS multivariate calculator (and implemented in the via MI common class). Needed this to make multivariate TE embedding a bit neater, and it should be there anyway. 2018-10-18 00:51:37 +11:00
jlizier e1bad39e4e Added proper full definitions for the methods of the AIS multivariate interface; much of this is achieved by extending the univariate AIS interface (which mandates that the univariate methods must be supported). No current child classes required any changes as they all supported these already. Removed superfluous documentation in the AIS multivariate via MI class (as well as fixing whitespace inconsistencies therein) 2018-10-17 23:37:43 +11:00
jlizier da418c31a0 Added new auto-embedding capability for TE Gaussian into the AutoAnalyser GUI demo. Also added new auto-embedding drop down option of Max corrected AIS + TE for KSG as well, and debugged the getProperty returning of the number of nearest neighbours for Ragwitz criteria now that this occurs in the common superclass instead of in KSG (and gave this a reasonable default of 4) 2018-10-17 14:23:20 +11:00
jlizier a34bce25ba Enabled auto-embedding for TE Gaussian. Did so by bringing up auto-embedding for TE functionality up from the KSG estimator to the via Conditional MI class. Also added new property to Gaussian TE for number of surrogates to use for bias correction in embedding (if not using analytic bias correction), like Gaussian AIS. This also necessitated adding an empty preFinaliseAddObservations() method to the TE Gaussian multivariate estimator, to ensure it did not yet try to autoembed until that is enabled in the multivariate calculator. Unit tests included here as well (included using more samples for TE KSG autoembedding to ensure we get the correct answer more reliably -- should probably add a stronger effect for that too). 2018-10-17 13:49:09 +11:00
jlizier efb8243ed7 Altering TE Kraskov to do auto-embedding properly when we have added multiple observations with validity vectors. Also taking the opportunity to re-engineer the internals to lay groundwork for auto-embedding function to be shared with the Gaussian estimator at a later stage. Unit tests added here as well for the above. 2018-10-15 20:56:50 +11:00
jlizier 2ff6d8aeec Added getProperty for AIS Kraskov multivariate. Need to re-engineer this class for proper code re-use anyway. 2018-10-15 14:38:46 +11:00
jlizier 3aa1493d7f Added addObservations() method with sourceValid and destValid boolean arrays to TransferEntropyCalculatorViacondMutualInfo class 2018-09-21 10:34:01 +10:00
jlizier 9dbe2f8578 Added to AutoAnalyser GUI for AIS surrogate-based bias correction (parameter being the number of surrogates) for max AIS corrected auto embedding, for kernel estimator as well as Gaussian (as an alternative to analytic). Also includes the implementing code for AIS Gaussian (was already committed for kernel) 2018-08-27 14:24:05 +10:00
jlizier ad31af03a7 Added throws Exception for computeSignificance() on multivariate Gaussian AIS calculator, because of throws clause introduced on underlying MI estimator 2018-08-27 13:21:29 +10:00
jlizier 7f9b1c0812 Patching bias correction for Guassian MI and CMI (some for MI was in line with previous work for CMI, which required extending here). Unit tests included. 2018-08-27 13:17:58 +10:00
jlizier c32b8de8b0 Fixed a hanging issue with analytic bias correction for Guassian CMI, and added to AutoAnalyser GUI 2018-08-27 00:22:02 +10:00
jlizier 908cf675a8 Added new constructor for TE Kraskov to pass in KSG algorithm number as an integer (It's not likely that it will be needed, but is there for completeness to match the AIS one) 2018-08-24 14:48:11 +10:00
jlizier 373ebbdd56 Enabling AIS KSG calculator to have underlying KSG algorithm changed via the "ALG_NUM" property 2018-08-24 14:47:21 +10:00
jlizier ca909dc60f Adding check of dimensionality of observations supplied to multivariate AIS calculators when univariate is expected. 2018-06-19 23:45:00 +10:00
jlizier 643212840a Making indenting style consistent through file 2018-05-18 08:56:47 +10:00
jlizier dfe7ef0334 Altering AIS Multivariate Via Mutual Info calculator -- and child classes, now including kernel estimator -- to support auto-embedding primarily via the parent methods of the univariate AIS calculator.
Also includes patching functionality when dimension == 1 to always use the underlying AIS univariate calculator consistently, and adding missing methods on adding observations with validity array.
Also includes some minor alterations to error messages.
Gaussian and Kernel Multivariate AIS calculators have the computeAdditionalBiasToRemove()  method implemented now to allow this; Gaussian calculator also adds the analytic computeSignificance() method, whilst Kernel calculator also adds a property for the number of surrogates to use in bias correction.
2018-05-16 22:42:32 +10:00
jlizier fcd30c6716 Minor changes to Javadocs for AIS kernel 2018-05-16 22:28:19 +10:00
jlizier a649b38270 Patched new section of AIS calculator via MI, whereby addObservationsWithGivenParams() when called with a validity[] array did not compute valid start and end time pairs for the candidate k and tau, but did so for the k and tau set in the properties. Fixed so that the candidate k and tau can be supplied. 2018-05-16 14:39:54 +10:00
jlizier e8603b08f8 Moving auto-embedding for AIS (Ragwitz and maximum bias-corrected AIS methods) from out of Gaussian and KSG calculators and into the common AIS calculator via MI class. The common implementation then allows us to introduce auto-embedding for the AIS kernel estimator as well (included requiring adding a property for the number of surrogates to use to compute the bias for this one).
These changes now incorporate auto-embedding for all AIS continuous calculators, partially addressing issue #38
2018-05-16 14:20:08 +10:00
jlizier 1c591925bd Added auto-embedding to Gaussian AIS calculator, with both Ragwitz and maximum bias-corrected AIS methods. Bias-correction implemented via the Gaussian analytic surrogates. Involves defining new properties, setProperty, getProperty and preFinaliseAddObservations() to do the embedding. Unit test included also, mirroring unit testing for KSG AIS (which used linear Gaussian variables). 2018-05-15 17:35:06 +10:00
jlizier 48b48ab845 Changing AIS Via Mutual Info internal addObservationsAfterParamsDetermined method to addObservationsWithGivenParams - taking k and tau as arguments rather than using the internal ones. This allows the method to be called by auto-embedding in the child classes as well (better code re-use ready for extending auto-embedding) 2018-05-15 17:32:50 +10:00
jlizier 9552091fca Adding Javadoc on header for neighbour counts method in KSG MI estimator 1 2018-05-15 17:28:39 +10:00
jlizier 0b70e92efc Added Bias-correction property to Gaussian MI and conditional MI calculators, including set and getProperty and an implementation in the calculations. This implements bias-correction by substracting the bias (of the analytic chi^2 based null distribution) from the calculations. 2018-05-13 22:29:17 +10:00
jlizier 46a9785da2 In surrogates for MI and CMI also turning adding noise off since this will have been done in the initial calculation already, and will just broaden the noise here. 2018-05-12 22:35:54 +10:00
jlizier 28ba409ff6 Turning off normalisation when computing surrogates in Common CMI and MI calculators, because normalisation has already been carried out (and if one variable had no variance, this will inflate the values back to original scale) 2018-05-12 21:30:39 +10:00
jlizier 0e4455b2fd Corrects the access at one point to the bins for the data points in the multivariate kernel estimator, which should use an IntArray object but did use an int[] object to access . Fixes #69. 2018-05-10 20:20:02 +10:00
jlizier 860d43dbca Adding additional error message for Exception during KSG Active Info Storage auto-embedding 2018-05-07 23:15:33 +10:00
jlizier d1bba0e4c1 Adding computeLocalOfPreviousObservations() to continuous Entropy estimator interface and all underlying implementations. Added unit tests that locals should average back ok. Also fixing multivariate Entropy estimator interface to implement the univariate interface also (and fixing underlying implementations to comply) 2018-04-27 11:20:25 +10:00
jlizier bf0062b902 Switching new debug method in KSG conditional MI calculator 1 to be publicly accessible 2018-04-26 11:43:04 +10:00
jlizier 7d76f82bb2 Adding partialNeighbourCountFromObservations() method to KSG conditional MI calculator 1 for debugging investigations into the neighbour counts 2018-04-26 11:24:56 +10:00
Pedro Martinez Mediano df8eec27cd Added MAX_CORR_AIS_AND_TE embedding to univariate KSG TE calculator. 2018-04-22 22:25:05 +01:00
Pedro Martinez Mediano f8bca3275d Fixed docs for new MAX_CORR_AIS_AND_TE embedding method. 2018-04-22 20:45:06 +01:00
Pedro Martinez Mediano 02dad26a94 Added brief mention of AUTO_EMBED_METHOD_MAX_CORR_AIS_AND_TE to javadocs. 2018-02-27 20:29:39 +00:00
Pedro Martinez Mediano 5f6671aa2b Added AUTO_EMBED_METHOD_MAX_CORR_AIS_AND_TE to multivariate KSG TE. 2018-02-27 20:18:04 +00:00
Pedro Martinez Mediano 550ff793eb Fixed bug in KSG TE multivariate embeddings and setObservations. 2018-02-27 20:14:08 +00:00
Pedro Martinez Mediano 8be6a037af Added auto-embedding methods to multivariate KSG TE calculator. 2018-02-25 19:23:09 +00:00
Pedro Martinez Mediano ce4b1599c6 Added MAX_CORR_AIS embedding method to multivariate KSG AIS. 2018-02-25 18:57:15 +00:00
Pedro Martinez Mediano 75bb2c814a Added addObservations-related methods to multivariate TE calculators.
This is needed to implement auto-embedding methods later.
2018-02-25 18:54:36 +00:00
Pedro Martinez Mediano 64f1142b40 Added argument to choose which variable to reorder in GPU CMI code. 2017-12-19 20:42:58 +00:00
Pedro Martinez Mediano 65ac0e9ff8 Removed unnecesary overloaded method in KSG CMI calc. 2017-12-19 20:41:11 +00:00
Pedro Martinez Mediano 2f1cd192b8 Fixed small typo in Java KSG CMI calculator. 2017-12-18 17:50:37 +00:00
Pedro Martinez Mediano d0304ae0c4 Added Java-side JNI functions and ensureKdTreesConstructed to KSG CMI. 2017-12-12 11:19:40 +00:00
Pedro Martinez Mediano f4ca442de4 Now KSG MI calc does not build KdTrees if GPU is going to be used. 2017-12-12 11:10:50 +00:00
Pedro Martinez Mediano d010f32635 Updated getProperty and removed spurious dependency in KSG MI calc. 2017-12-12 11:04:32 +00:00
Pedro Martinez Mediano eabd7f3701 Fixed typo in Kozachenko entropy calculator. 2017-11-28 16:58:13 +00:00
Pedro Martinez Mediano 444fb70801 Added addObservations-type functions to Kozachenko entropy calculator. 2017-11-28 16:56:51 +00:00
Pedro Martinez Mediano e290040d8d Added docs to Kozachenko entropy calculator. 2017-11-28 16:26:46 +00:00
Pedro Martinez Mediano 35df6ca3da Kozachenko entropy estimator now adds noise to data by default. 2017-11-28 16:04:09 +00:00