成本效益矩阵#
成本效益矩阵目标函数。
模块内容#
类摘要#
使用成本效益矩阵评分。分数量化了给定值的效益,因此数值越大代表分数越好。成本和分数可以是负数,表示某个值没有效益。例如,在货币利润的情况下,负成本和/或分数表示现金流损失。 |
内容#
- class evalml.objectives.cost_benefit_matrix.CostBenefitMatrix(true_positive, true_negative, false_positive, false_negative)[source]#
使用成本效益矩阵评分。分数量化了给定值的效益,因此数值越大代表分数越好。成本和分数可以是负数,表示某个值没有效益。例如,在货币利润的情况下,负成本和/或分数表示现金流损失。
- 参数
true_positive (float) – 与真阳性预测相关的成本。
true_negative (float) – 与真阴性预测相关的成本。
false_positive (float) – 与假阳性预测相关的成本。
false_negative (float) – 与假阴性预测相关的成本。
属性
expected_range
无
greater_is_better
True
is_bounded_like_percentage
False
名称
成本效益矩阵
perfect_score
无
问题类型
[ProblemTypes.BINARY, ProblemTypes.TIME_SERIES_BINARY]
score_needs_proba
False
方法
计算分数之间的百分比差异。
返回一个布尔值,确定我们是否可以优化二元分类目标函数的阈值。
对预测概率应用学习到的阈值以获得预测类别。
返回目标函数是否为某种问题类型定义。
使用预测值和真实值计算成本效益。
学习一个优化当前目标函数的二元分类阈值。
如果为 True,则此目标函数仅对阳性数据有效。默认为 False。
返回一个数值分数,该分数基于预测值和实际值之间的差异来指示性能。
验证评分输入。
- classmethod calculate_percent_difference(cls, score, baseline_score)#
计算分数之间的百分比差异。
- 参数
score (float) – 分数。此目标函数的 score 方法的输出。
baseline_score (float) – 分数。此目标函数的 score 方法的输出。实际上,这是使用基线评估器在此目标函数上获得的分数。
- 返回
- 分数之间的百分比差异。请注意,对于可以解释为百分比的目标函数,
这将是参考分数与分数之间的差异。对于所有其他目标函数,差异将通过参考分数进行归一化。
- 返回类型
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, y_train=None, X=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
- 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)#
验证评分输入。