fraud_cost#

对由于欺诈而损失的总交易金额的百分比进行评分。

模块内容#

类摘要#

FraudCost

对由于欺诈而损失的总交易金额的百分比进行评分。

内容#

class evalml.objectives.fraud_cost.FraudCost(retry_percentage=0.5, interchange_fee=0.02, fraud_payout_percentage=1.0, amount_col='amount')[source]#

对由于欺诈而损失的总交易金额的百分比进行评分。

参数
  • retry_percentage (float) – 如果交易被拒绝,会重试的客户百分比。介于 0 和 1 之间。默认为 0.5。

  • interchange_fee (float) – 每笔成功交易你需要支付的费用百分比。介于 0 和 1 之间。默认为 0.02。

  • fraud_payout_percentage (float) – 你将无法收回的欺诈金额百分比。介于 0 和 1 之间。默认为 1.0。

  • amount_col (str) – 数据中包含金额的列的名称。默认为“amount”。

属性

expected_range

greater_is_better

False

is_bounded_like_percentage

True

name

欺诈成本

perfect_score

0.0

problem_types

[ProblemTypes.BINARY, ProblemTypes.TIME_SERIES_BINARY]

score_needs_proba

False

方法

calculate_percent_difference

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

can_optimize_threshold

返回一个布尔值,判断我们是否可以优化二元分类目标函数的阈值。

decision_function

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

is_defined_for_problem_type

返回目标函数是否定义了某个问题类型。

objective_function

根据预测值、真实值和包含交易金额的数据帧,计算每笔交易因欺诈造成的损失金额。

optimize_threshold

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

positive_only

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

score

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

validate_inputs

验证评分输入。

classmethod calculate_percent_difference(cls, score, baseline_score)#

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

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

  • baseline_score (float) – 一个分数。此目标函数的评分方法的输出。在实践中,这是使用基线估计器在此目标函数上获得的分数。

返回

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

百分比的目标函数,这将是参考分数和分数之间的差异。对于所有其他目标函数,差异将由参考分数进行归一化。

返回类型

float

property can_optimize_threshold(cls)#

返回一个布尔值,判断我们是否可以优化二元分类目标函数的阈值。

对于直接处理预测概率(如对数损失和 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) – 训练数据中需要的任何额外列。

返回

预测

classmethod is_defined_for_problem_type(cls, problem_type)#

返回目标函数是否定义了某个问题类型。

objective_function(self, y_true, y_predicted, X, y_train=None, sample_weight=None)[source]#

根据预测值、真实值和包含交易金额的数据帧,计算每笔交易因欺诈造成的损失金额。

参数
  • y_predicted (pd.Series) – 预测的欺诈标签。

  • y_true (pd.Series) – 真实的欺诈标签。

  • y_train (pd.Series) – 忽略。

  • X (pd.DataFrame) – 包含交易金额的数据。

  • sample_weight (pd.DataFrame) – 忽略。

返回

每笔交易因欺诈造成的损失金额。

返回类型

float

引发

ValueError – 如果 amount_col 在输入数据中不是有效列。

optimize_threshold(self, ypred_proba, y_true, X=None)#

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

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

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

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

返回

此目标函数的最优阈值。

引发

RuntimeError – 如果目标函数无法优化。

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

validate_inputs(self, y_true, y_predicted)#

验证评分输入。