TabularPredictor.校准决策阈值¶
- TabularPredictor.calibrate_decision_threshold(data: DataFrame | str | None = None, metric: str | Scorer | None = None, model: str ='best', decision_thresholds: int | list[float] = 25, secondary_decision_thresholds: int | None =19, subsample_size: int | None =1000000, verbose: bool =True) float [source]¶
在二元分类中校准决策阈值以优化给定指标。您可以将此方法的输出作为输入传递给 predictor.set_decision_threshold 来更新预测器。如果 predictor.problem_type != ‘binary’,将引发 AssertionError。
请注意,虽然校准决策阈值有助于改善给定指标,但其他指标的得分可能会变差。例如,对 balanced_accuracy 进行校准通常会损害 accuracy。用户在使用决策阈值校准时应牢记这一点。
- 参数:
**data** (pd.DataFrame 或 str, 可选) – 用于校准的数据。必须包含标签列。我们建议除非您是高级用户并了解其含义,否则将此值保留为 None。如果为 None,将使用内部数据,例如留出验证数据或折外预测。
**metric** (autogluon.core.metrics.Scorer 或 str, 默认为 None) – 校准期间要优化的指标。如果为 None,则使用 predictor.eval_metric。
**model** (str, 默认为 'best') – 校准阈值时用于预测概率的模型。如果为 'best',则使用 predictor.model_best。
**decision_thresholds** (int | list[float], 默认为 25) – 在 0.5 两侧搜索的决策阈值数量。默认值 25 将产生 51 个搜索阈值:[0.00, 0.02, 0.04, …, 0.48, 0.50, 0.52, …, 0.96, 0.98, 1.00]。或者,可以传入一个决策阈值列表,此时只搜索列表中的阈值。
**secondary_decision_thresholds** (int | None, 默认为 19) –
第一阶段确定阈值两侧要检查的辅助决策阈值数量。如果为 None 则跳过。例如,如果 decision_thresholds=50 并且 0.14 被确定为最优阈值,而 secondary_decision_threshold=9,
- 则会检查以下附加阈值
[0.131, 0.132, 0.133, 0.134, 0.135, 0.136, 0.137, 0.138, 0.139, 0.141, 0.142, 0.143, 0.144, 0.145, 0.146, 0.147, 0.148, 0.149]
**subsample_size** (int | None, 默认为 1000000) – 当 subsample_size 不为 None 且 data 的行数多于 subsample_size 时,会将数据采样到 subsample_size 行以加快校准速度。通常校准不需要使用超过 100 万行。
**verbose** (bool, 默认为 True) – 如果为 True,将记录有关校准过程的信息。
- 返回值:
**决策阈值** (一个介于 0 到 1 之间的浮点数,定义了预测的决策边界,该边界)
最大化了 model 在 data 上 metric 的得分。