updating documentation a bit
This commit is contained in:
parent
7137e7ac40
commit
ff00de18cb
|
@ -1141,6 +1141,8 @@ class ThresholdOptimization(BinaryAggregativeQuantifier):
|
||||||
return candidates
|
return candidates
|
||||||
|
|
||||||
def aggregate_with_threshold(self, classif_predictions, tprs, fprs, thresholds):
|
def aggregate_with_threshold(self, classif_predictions, tprs, fprs, thresholds):
|
||||||
|
# This function performs the adjusted count for given tpr, fpr, and threshold.
|
||||||
|
# Note that, due to broadcasting, tprs, fprs, and thresholds could be arrays of length > 1
|
||||||
prevs_estims = np.mean(classif_predictions[:, None] >= thresholds, axis=0)
|
prevs_estims = np.mean(classif_predictions[:, None] >= thresholds, axis=0)
|
||||||
prevs_estims = (prevs_estims - fprs) / (tprs - fprs)
|
prevs_estims = (prevs_estims - fprs) / (tprs - fprs)
|
||||||
prevs_estims = F.as_binary_prevalence(prevs_estims, clip_if_necessary=True)
|
prevs_estims = F.as_binary_prevalence(prevs_estims, clip_if_necessary=True)
|
||||||
|
@ -1164,8 +1166,8 @@ class ThresholdOptimization(BinaryAggregativeQuantifier):
|
||||||
return FP / (FP + TN)
|
return FP / (FP + TN)
|
||||||
|
|
||||||
def aggregation_fit(self, classif_predictions: LabelledCollection, data: LabelledCollection):
|
def aggregation_fit(self, classif_predictions: LabelledCollection, data: LabelledCollection):
|
||||||
# the standard behavior is to keep the best threshold only
|
|
||||||
decision_scores, y = classif_predictions.Xy
|
decision_scores, y = classif_predictions.Xy
|
||||||
|
# the standard behavior is to keep the best threshold only
|
||||||
self.tpr, self.fpr, self.threshold = self._eval_candidate_thresholds(decision_scores, y)[0]
|
self.tpr, self.fpr, self.threshold = self._eval_candidate_thresholds(decision_scores, y)[0]
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
@ -1270,8 +1272,8 @@ class MS(ThresholdOptimization):
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def aggregation_fit(self, classif_predictions: LabelledCollection, data: LabelledCollection):
|
def aggregation_fit(self, classif_predictions: LabelledCollection, data: LabelledCollection):
|
||||||
# keeps all candidates
|
|
||||||
decision_scores, y = classif_predictions.Xy
|
decision_scores, y = classif_predictions.Xy
|
||||||
|
# keeps all candidates
|
||||||
tprs_fprs_thresholds = self._eval_candidate_thresholds(decision_scores, y)
|
tprs_fprs_thresholds = self._eval_candidate_thresholds(decision_scores, y)
|
||||||
self.tprs = tprs_fprs_thresholds[:, 0]
|
self.tprs = tprs_fprs_thresholds[:, 0]
|
||||||
self.fprs = tprs_fprs_thresholds[:, 1]
|
self.fprs = tprs_fprs_thresholds[:, 1]
|
||||||
|
|
Loading…
Reference in New Issue