<< " --help" << endl
<< " --roc" << endl
<< " --roc-surface" << endl
+ << " --error" << endl
<< " --normalize" << endl
<< " --histo" << endl
<< " --cumul" << endl
int i = 1;
- enum { UNKNOWN, ROC, ROC_SURFACE, HISTO, CUMUL, MISC } processing = UNKNOWN;
+ enum { UNKNOWN, ROC, ROC_SURFACE, ERROR, HISTO, CUMUL, MISC } processing = UNKNOWN;
// Parsing the command line arguments ////////////////////////////////
i++;
}
+ else if(strcmp(argv[i], "--error") == 0) {
+ check_single_processing(processing == UNKNOWN);
+ processing = ERROR;
+ i++;
+ }
+
else if(strcmp(argv[i], "--cumul") == 0) {
check_single_processing(processing == UNKNOWN);
processing = CUMUL;
}
}
- Couple tmp[nb_samples];
+ Couple *tmp = new Couple[nb_samples];
for(int n = 0; n < nb_samples; n++) {
tmp[n].index = n;
tmp[n].value = x[n];
qsort(tmp, nb_samples, sizeof(Couple), compare_couple);
for(int n = 0; n < nb_samples; n++)
- cout << tmp[n].value << " " << double(n)/double(nb_samples) << endl;
+ cout << tmp[n].value << " " << double(n+1)/double(nb_samples) << endl;
+ delete[] tmp;
delete[] x;
}
case ROC:
case ROC_SURFACE:
+ case ERROR:
{
int nb_samples = 0, nb_samples_max = 1000;
}
}
- Couple tmp[nb_samples];
+ Couple *tmp = new Couple[nb_samples];
int nb_rn = 0, nb_rp = 0, nb_fp = 0, nb_fn = 0;
bool binary = true;
<< endl;
}
}
- } else {
+ } else if(processing == ROC_SURFACE) {
double surface = 0;
double cx = double(nb_fp)/double(nb_rn), cy = 1 - double(nb_fn) / double(nb_rp);
for(int n = 0; n < nb_samples - 1; n++) {
}
}
cout << surface << endl;
+ } else {
+ for(int n = 0; n < nb_samples - 1; n++) {
+ if(x[tmp[n].index] >= 0) nb_fn++;
+ else nb_fp--;
+ if(tmp[n].value < tmp[n+1].value) {
+ cout << (tmp[n].value + tmp[n+1].value)/2 << " "
+ << double(nb_fp + nb_fn)/double(nb_rn + nb_rp) << " "
+ << endl;
+ }
+ }
}
- delete[] x; delete[] y;
+ delete[] tmp;
+ delete[] x;
+ delete[] y;
}
}
}
- int nb[nb_bins];
+ int *nb = new int[nb_bins];
for(int n = 0; n < nb_bins; n++) nb[n] = 0;
int nb_total = 0;
cout << xmin + ((xmax - xmin) * n) / double(nb_bins) << " "
<< nb[n] / double(nb_total) << endl;
}
+
+ delete[] nb;
}
break;
}
}
- Couple tmp[nb_samples];
+ Couple *tmp = new Couple[nb_samples];
for(int n = 0; n < nb_samples; n++) {
tmp[n].index = n;
tmp[n].value = x[n];
<< " QUANTILE0.9 " << tmp[int(nb_samples * 0.9)].value
<< endl;
+ delete[] tmp;
}
break;