mars.learn.metrics.fbeta_score#
- mars.learn.metrics.fbeta_score(y_true, y_pred, *, beta, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[来源]#
计算F-beta得分
F-beta 分数是精确度和召回率的加权调和平均数,最佳值为1,最差值为0。
参数 beta 确定组合评分中召回率的权重。
beta < 1更加重视精确率,而beta > 1更倾向于召回率 (beta -> 0仅考虑精确率,beta -> +inf仅考虑召回率)。在用户指南中阅读更多内容。
- Parameters
y_true (一维数组-like,或标签指示数组 / 稀疏矩阵) – 真实的(正确的)目标值。
y_pred (一维数组或标签指示数组 / 稀疏矩阵) – 分类器返回的估计目标。
beta (float) – 确定综合评分中召回率的权重。
labels (list, optional) – 当
average != 'binary'时要包含的标签集,以及如果average is None时的顺序。在数据中存在的标签可以被排除,例如计算多类平均值时忽略大多数负类,而在数据中不存在的标签将导致宏平均中的0个组件。对于多标签目标,标签是列索引。默认情况下,y_true和y_pred中的所有标签按顺序使用。pos_label (str 或 int, 默认为1) – 如果
average='binary'并且数据是二进制的,则报告该类。 如果数据是多类或多标签的,这将被忽略; 设置labels=[pos_label]和average != 'binary'将仅报告 该标签的分数。average (string, [None, 'binary' (default), 'micro', 'macro', 'samples', 'weighted']) –
此参数在多类/多标签目标中是必需的。 如果
None,则返回每个类别的分数。否则,这确定在数据上执行的平均类型:'binary':仅报告由
pos_label指定的类别的结果。 这仅适用于目标(y_{true,pred})为二元时。'micro':通过计算总的真正例、假阴性和假阳性来全局计算指标。
'macro':为每个标签计算指标,并找到它们的未加权平均值。 这不考虑标签不平衡。
'weighted':为每个标签计算指标,并根据支持度(每个标签的真实实例数量)找到它们的加权平均。这 改变了‘macro’,以考虑标签不平衡;这可能导致F分数不在精确度和召回率之间。
'samples':为每个实例计算指标,并找到它们的平均值(仅在多标签分类中有意义,此时与
accuracy_score()不同)。
sample_weight (类数组,形状 (n_samples,), 默认值=None) – 样本权重。
zero_division ("warn", 0 or 1, default="warn") – 设置除以零时返回的值,即当所有预测和标签都是负数时。如果设置为“warn”,则表现为0,但也会发出警告。
- Returns
fbeta_score – 二分类中正类的F-beta分数,或多类任务中每个类别的F-beta分数的加权平均。
- Return type
参考文献
- 1
R. Baeza-Yates 和 B. Ribeiro-Neto (2011). 现代信息检索. Addison Wesley, pp. 327-328.
- 2
示例
>>> from mars.learn.metrics import fbeta_score >>> y_true = [0, 1, 2, 0, 1, 2] >>> y_pred = [0, 2, 1, 0, 0, 1] >>> fbeta_score(y_true, y_pred, average='macro', beta=0.5) 0.23... >>> fbeta_score(y_true, y_pred, average='micro', beta=0.5) 0.33... >>> fbeta_score(y_true, y_pred, average='weighted', beta=0.5) 0.23... >>> fbeta_score(y_true, y_pred, average=None, beta=0.5) array([0.71..., 0. , 0. ])
备注
当
true positive + false positive == 0或者true positive + false negative == 0,f-score 返回 0 并触发UndefinedMetricWarning。这种行为可以通过zero_division修改。