binary_classification_objective#

所有二分类目标的基类。

模块内容#

类摘要#

BinaryClassificationObjective

所有二分类目标的基类。

目录#

class evalml.objectives.binary_classification_objective.BinaryClassificationObjective[源]#

所有二分类目标的基类。

属性

problem_types

[ProblemTypes.BINARY, ProblemTypes.TIME_SERIES_BINARY]

方法

calculate_percent_difference

计算得分之间的百分比差异。

can_optimize_threshold

返回一个布尔值,确定我们是否可以优化二分类目标阈值。

decision_function

将学习到的阈值应用于预测概率以获得预测类别。

expected_range

返回目标的预期范围,这不一定是可能的范围。

greater_is_better

返回一个布尔值,确定得分越大是否表示模型性能越好。

is_bounded_like_percentage

返回此目标是否包含在 0 和 1 之间。

is_defined_for_problem_type

返回目标是否已为问题类型定义。

name

返回描述目标的名称。

objective_function

根据指定的指标计算所提供的预测相对于实际标签的相对值。

optimize_threshold

学习一个优化当前目标的二分类阈值。

perfect_score

返回通过在完美模型上评估此目标获得的得分。

positive_only

如果为 True,则此目标仅对正向数据有效。默认为 False。

score

返回一个数值得分,表示基于预测值和实际值之间差异的性能。

score_needs_proba

返回一个布尔值,确定 score() 方法是否需要概率估计。

validate_inputs

验证评分输入。

classmethod calculate_percent_difference(cls, score, baseline_score)#

计算得分之间的百分比差异。

参数
  • score (float) – 一个得分。此目标 score 方法的输出。

  • baseline_score (float) – 一个得分。此目标 score 方法的输出。实际上,这是使用基线估计器在此目标上达到的得分。

返回

得分之间的百分比差异。请注意,对于可以解释为百分比的目标,

这将是参考得分和得分之间的差异。对于所有其他目标,差异将由参考得分归一化。

返回类型

float

property can_optimize_threshold(cls)#

返回一个布尔值,确定我们是否可以优化二分类目标阈值。

对于直接处理预测概率的任何目标(例如 log loss 和 AUC),此属性将为 false。否则,它将为 true。

返回

目标是否可以优化。

返回类型

bool

decision_function(self, ypred_proba, threshold=0.5, X=None)[源]#

将学习到的阈值应用于预测概率以获得预测类别。

参数
  • ypred_proba (pd.Series, np.ndarray) – 分类器的预测概率

  • threshold (float, optional) – 用于进行预测的阈值。默认为 0.5。

  • X (pd.DataFrame, optional) – 训练数据中所需的任何额外列。

返回

预测结果

property expected_range(cls)#

返回目标的预期范围,这不一定是可能的范围。

例如,我们预期的 R2 范围是 [-1, 1],尽管实际范围是 (-inf, 1]。

property greater_is_better(cls)#

返回一个布尔值,确定得分越大是否表示模型性能越好。

property is_bounded_like_percentage(cls)#

返回此目标是否包含在 0 和 1 之间。

classmethod is_defined_for_problem_type(cls, problem_type)#

返回目标是否已为问题类型定义。

property name(cls)#

返回描述目标的名称。

abstract classmethod objective_function(cls, y_true, y_predicted, y_train=None, X=None, sample_weight=None)#

根据指定的指标计算所提供的预测相对于实际标签的相对值。

参数
  • y_predicted (pd.Series) – 长度为 [n_samples] 的预测值

  • y_true (pd.Series) – 长度为 [n_samples] 的实际类别标签

  • y_train (pd.Series) – 长度为 [n_samples] 的观测训练值

  • X (pd.DataFrame or np.ndarray) – 计算得分所需的额外数据,形状为 [n_samples, n_features]

  • sample_weight (pd.DataFrame or np.ndarray) – 计算目标值结果时使用的样本权重

返回

用于计算得分的数值

optimize_threshold(self, ypred_proba, y_true, X=None)[源]#

学习一个优化当前目标的二分类阈值。

参数
  • ypred_proba (pd.Series) – 分类器的预测概率

  • y_true (pd.Series) – 预测的真实值。

  • X (pd.DataFrame, optional) – 训练数据中所需的任何额外列。

返回

此目标的最佳阈值。

抛出

RuntimeError – 如果目标无法优化。

property perfect_score(cls)#

返回通过在完美模型上评估此目标获得的得分。

positive_only(cls)#

如果为 True,则此目标仅对正向数据有效。默认为 False。

score(self, y_true, y_predicted, y_train=None, X=None, sample_weight=None)#

返回一个数值得分,表示基于预测值和实际值之间差异的性能。

参数
  • y_predicted (pd.Series) – 长度为 [n_samples] 的预测值

  • y_true (pd.Series) – 长度为 [n_samples] 的实际类别标签

  • y_train (pd.Series) – 长度为 [n_samples] 的观测训练值

  • X (pd.DataFrame or np.ndarray) – 计算得分所需的额外数据,形状为 [n_samples, n_features]

  • sample_weight (pd.DataFrame or np.ndarray) – 计算目标值结果时使用的样本权重

返回

score

property score_needs_proba(cls)#

返回一个布尔值,确定 score() 方法是否需要概率估计。

对于处理预测概率的目标(例如 log loss 或 AUC),此属性应为 true;对于比较预测类别标签与实际标签的目标(例如 F1 或相关性),此属性应为 false。

validate_inputs(self, y_true, y_predicted)[源]#

验证评分输入。