Skip to content

Commit 3553664

Browse files
committed
RUL-84, RUL-85: Regression and survival contrast sets fixed (results agree with the original ones).
1 parent 5fa6918 commit 3553664

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

adaa.analytics.rules/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ codeQuality {
2727
}
2828

2929
sourceCompatibility = 1.8
30-
version = '1.7.18'
30+
version = '1.7.19'
3131

3232

3333
jar {

adaa.analytics.rules/src/main/java/adaa/analytics/rules/logic/induction/ContrastSurvivalFinder.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public double calculate(ExampleSet dataset, ContingencyTable ct) {
3434
}
3535

3636
Covering cov = (Covering)ct;
37-
Set<Integer> examples = new HashSet<>();
37+
Set<Integer> examples = new IntegerBitSet(dataset.size());
3838
examples.addAll(cov.positives);
3939
examples.addAll(cov.negatives);
4040
KaplanMeierEstimator entireEstimator = new KaplanMeierEstimator(dataset, examples);
@@ -129,6 +129,7 @@ public void postprocess(
129129
notifyRuleReady(rule);
130130
}
131131

132+
@Override
132133
protected boolean checkCandidate(
133134
ExampleSet dataset,
134135
Rule rule,
@@ -146,7 +147,6 @@ protected boolean checkCandidate(
146147
Rule newRule = (Rule) rule.clone();
147148
newRule.setPremise(newPremise);
148149

149-
150150
Covering cov = new Covering();
151151
newRule.covers(dataset, cov, cov.positives, cov.negatives);
152152

@@ -166,7 +166,7 @@ protected boolean checkCandidate(
166166
}
167167
}
168168

169-
if (checkCoverage(cov.weighted_p, cov.weighted_n, new_p, new_n, dataset.size(), 0, uncovered.size(), rule.getRuleOrderNum())) {
169+
if (checkCoverage(cov.weighted_p, cov.weighted_n, new_p, new_n, cov.weighted_P, cov.weighted_N, uncovered.size(), rule.getRuleOrderNum())) {
170170

171171
double quality = params.getInductionMeasure().calculate(dataset, cov);
172172

@@ -178,12 +178,14 @@ protected boolean checkCandidate(
178178
if (quality > currentBest.quality ||
179179
(quality == currentBest.quality && (new_p > currentBest.covered || currentBest.opposite))) {
180180

181-
Logger.log("\t\tCurrent best: " + candidate + " (p=" + cov.weighted_p +
182-
", new_p=" + (double) new_p +
181+
/*
182+
Logger.log("\t\tCurrent best: " + candidate +
183+
" (p=" + cov.weighted_p + ", new_p=" + (double) new_p +
184+
", n=" + cov.weighted_n + ", new_n=" + (double) new_n +
183185
", P=" + cov.weighted_P +
184186
", mean_y=" + cov.mean_y + ", mean_y2=" + cov.mean_y2 + ", stddev_y=" + cov.stddev_y +
185187
", quality=" + quality + "\n", Level.FINEST);
186-
188+
*/
187189
currentBest.quality = quality;
188190
currentBest.condition = candidate;
189191
currentBest.covered = new_p;

adaa.analytics.rules/src/main/java/adaa/analytics/rules/logic/induction/RegressionFinder.java

-1
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,6 @@ protected ElementaryCondition induceCondition(
340340
Double [] keys = values2ids.keySet().toArray(new Double[values2ids.size()]);
341341
Logger.log("\tChecking attribute " + attr.getName() + ", unique values: " + keys.length + "\n", Level.FINEST);
342342

343-
344343
// check all possible midpoints
345344
for (int keyId = 0; keyId < keys.length - 1; ++keyId) {
346345
double key = keys[keyId];

0 commit comments

Comments
 (0)