/** Run some sanity checks on the training statistics, to make sure they look valid. */ public void validate() { for (Map<SentenceKey, EnsembleStatistics> map : impl) { for (EnsembleStatistics stats : map.values()) { for (SentenceStatistics component : stats.statisticsForClassifiers) { assert !Counters.isUniformDistribution(component.relationDistribution, 1e-5); Counters.normalize( component.relationDistribution); // TODO(gabor) this shouldn't be necessary assert (Math.abs(component.relationDistribution.totalCount() - 1.0)) < 1e-5; } assert (Math.abs(stats.mean().relationDistribution.totalCount() - 1.0)) < 1e-5; assert !Counters.isUniformDistribution(stats.mean().relationDistribution, 1e-5); } } }