ee137370a1
Add GPL-3 Copyright to code
2019-01-14 11:45:23 -08:00
Joel Therrien
7a5a8ab0fc
Merge branch 'optimizations' of joel/RandomSurvivalForests into master
2019-01-14 19:08:14 +00:00
e709c42da1
Update the competing risk GroupDifferentiators to make efficient use of the SplitRuleUpdater updates
...
Results in a speed improvement of over 1/3 according to a timing of the TestCompetingRisk#testLogRankSingleGroupDifferentiatorAllCovariates() test
2019-01-11 22:58:56 -08:00
86122fd90d
Remove comment that isn't true
2019-01-10 17:34:52 -08:00
31d6ce9b3e
Covariates track if they have any NA values, and skip NA handling code if possible
2019-01-10 14:09:43 -08:00
a57741b726
Add PMD rules to pom.xml to enforce higher code quality
2019-01-10 11:23:55 -08:00
a5fe856857
Massive refactor; Use Iterators/Updaters when calculating difference scores for faster calculations.
...
Changed the covariates to be more clever with how they produce the different splits. In the future (not yet implemented) a clever GroupDifferentiator
could update the current score calculation based just on how many rows moved from one hand to the other. There were a few other changes as well;
TreeTrainer#growTree now accepts a Random as a parameter which is used throughout the entire growing process. This means it's now theoretically
possible to grow trees using a seed, so that results can be fully reproducible.
2019-01-09 21:31:27 -08:00
e892076a05
Add a test for the composite log rank splitting rule.
...
Add some debug toString capabilities on Nodes and Trees
2019-01-04 11:22:23 -08:00
ae40a2e664
Removed naive mortality error measurement
...
Naive mortality error was an ad-hoc method I implemented earlier on. It
didn't provide any useful performance, nor was it theoretically
grounded. It's better to remove it before someone accidently uses it.
2018-10-27 19:15:59 -07:00
a887a3cc15
Fix bug in Utils.binarySearchLessThan
2018-10-25 11:21:45 -07:00
ae91dbe9e7
Explicitly store RightContinuousStepFunction in CompetingRiskFunctions
...
Done so that RUtils is useful. Also optimized imports.
2018-10-25 10:49:43 -07:00
c68f67e47a
Massive optimizations;
...
Refactored how MathFunctions are structured to use more primitives and
less objects.
Optimized competing risk group differentiators to run faster.
Removed alternative competing risk response combiners (may be added back
later)
2018-10-25 10:34:27 -07:00
cce5ad1e0f
Add parameter to decide on whether to check for node purity or not
2018-10-15 11:03:35 -07:00
7fba964af9
Optimize CompetingRiskResponseCombiner
2018-10-12 12:11:48 -07:00
aa733d5eba
Switch code to storing Covariate.Value using arrays instead of Maps
2018-09-18 11:17:15 -07:00
de39f60314
Make CovariateRow's serializable; add R utility functions.
2018-09-14 18:42:14 -07:00
7008959999
Add functionality to analyze using validation sets
2018-09-13 12:09:20 -07:00
98cb97a1f1
Improve performance by integrating binary search into MathFunction
2018-09-11 17:12:27 -07:00
6e58122380
Optimize MathFunction
2018-09-10 17:16:43 -07:00
e0681763ef
Add convenience methods to improve R interface performance
2018-09-10 12:31:35 -07:00
b8024275a9
Fix a bug where CompetingRiskFunctions returns NaNs when using set times
...
in response combiner
2018-09-01 09:43:42 -07:00
62198f998d
Small code cleanup
2018-09-01 09:42:48 -07:00
2fb80df5a5
Add test for CompetingRiskFunctions
2018-08-31 22:32:54 -07:00
8333579a1f
Code cleanup; fixed 3 minor bugs in the settings
2018-08-31 13:10:30 -07:00
75f34853ab
Migrate to Java 1.8
2018-08-31 12:48:39 -07:00
949c8789e7
Switch HashMaps in CompetingRiskFunctions for ArrayLists
...
Provides a mild performance improvement.
2018-08-27 19:15:06 -07:00
22944115ee
Fix bug where cause specific mortality was using the cumulative hazard
...
functions instead of the CIF
2018-08-27 13:19:04 -07:00
c85cebb59f
Broke two methods in CompetingRiskErrorRateCalculator into static
...
methods in a new class.
2018-08-27 11:18:56 -07:00
e92abdab13
Add functionality to restart tree training where previously left off.
2018-08-09 16:34:10 -07:00
6d65d48844
Increased test ntree; making test more stable.
2018-08-09 16:33:57 -07:00
55eab76610
Simplied code.
2018-08-08 15:57:28 -07:00
9d9dc9ef8d
Optimize tree training so that the best split is not applied twice
2018-08-08 11:34:02 -07:00
74151b94db
Add alternative way where functions are computed only at final step.
2018-08-07 15:49:55 -07:00
d85f4eb099
Refactored competing risk combiners and differentiators into their own
...
packages.
2018-08-07 10:59:19 -07:00
bf56dfb59d
Add ability to compute different error rates.
2018-08-07 10:52:52 -07:00
d3994212b6
Fix a bug in naive mortality error measure; implement IPCW concordance
...
measure if you can provide the censoring distribution.
2018-07-26 12:45:12 -07:00
e1caef6d56
Implement naive mortality error measure
2018-07-25 15:29:09 -07:00
650579a430
Implement naive version of concordance index.
...
Note that results DO NOT MATCH with randomForestSRC; so take these
results with a grain of salt.
2018-07-25 14:18:50 -07:00
7a77851f94
WIP - Add a CompetingRiskErrorRateCalculator.
...
Note that tests fail.
2018-07-24 14:35:27 -07:00
d4853f5232
Change how trees are saved so that they are compressed.
2018-07-18 15:29:55 -07:00
dc9d20aa1a
Add ability to load gziped CSV files
2018-07-18 10:05:49 -07:00
05f9122b58
Add capability to load trees back into memory.
2018-07-17 13:54:59 -07:00
fffdfe85bf
Finish competing risk implementation. Fix a bug in tree training
...
algorithm.
2018-07-16 16:58:11 -07:00
462b0d9c35
Implement Response & GroupDifferentiators for CompetingRisk problems.
...
Also adjusted how settings are done to allow for specifying
differentiators & responses that may require arguments.
Note that CompetingRisk code is untested at this point.
2018-07-10 14:43:51 -07:00
4bbb0e0948
Fix a bug whereby FactorCovariate fails when "NA" is provided.
...
Also improved testing around this.
2018-07-06 13:33:58 -07:00
6b62ad95c3
Add support for loading datasets by CSV files.
2018-07-06 13:21:56 -07:00
fe9ff37dcf
Upgraded Settings class to allow for covariates to be built from
...
provided values.
2018-07-05 19:04:26 -07:00
b010e79269
Add basic Settings class with persistence.
2018-07-05 13:59:52 -07:00
2cdcbe6cbf
Refactor different classes into subpackages.
2018-07-05 12:59:29 -07:00
662a6cf761
Add OTFI imputation when training forest.
...
No tests have been written yet so this is still WIP.
2018-07-05 12:05:07 -07:00