牛客题解 | 计算分类的DICE得分

题目

题目链接

DICE得分是一种衡量分类模型性能的指标,具有良好的鲁棒性,其计算公式为:
D I C E = 2 × T P 2 × T P + F P + F N DICE = \frac{2 \times TP}{2 \times TP + FP + FN} DICE=2×TP+FP+FN2×TP
其中,TP是真阳性,FP是假阳性,FN是假阴性。
TP = True Positives (真正例): 正确预测为正类的样本数量
FP = False Positives (假阳性): 错误预测为正类的负类样本数量
FN = False Negatives (假阴性): 错误预测为负类的正类样本数量

标准代码如下

def dice_score(y_true, y_pred):
    intersection = np.logical_and(y_true, y_pred).sum()
    true_sum = y_true.sum()
    pred_sum = y_pred.sum()

    if true_sum == 0 or pred_sum == 0:
        return 0.0

    dice = (2.0 * intersection) / (true_sum + pred_sum)
    return round(float(dice), 3)

在sklearn库中也有对应的计算方法,可以使用metrics模块中的f1_score函数,因为在二分类问题中DICE系数与F1分数是等价的:

def dice_score(y_true, y_pred):
    from sklearn.metrics import f1_score
    dice = f1_score(y_true, y_pred)
    return round(float(dice), 3)
### 图像 Dice 系数计算公式 Dice 系数用于衡量两个样本集合之间的相似度,在图像处理领域常用来评估图像分割的效果。对于二值化后的预测图 \( P \) 和标签图 \( L \),其定义如下: \[ DSC(P, L)=\frac{2|P∩L|}{|P|+|L|}=\frac{2TP}{2TP+FP+FN} \] 其中, - \( TP \) 表示真正类 (True Positive),即被正确分类为目标区域的像素数量; - \( FP \) 是假正类 (False Positive),表示错误地识别成目标区间的背景像素数目; - \( FN \) 则代表假负类 (False Negative),意味着实际属于前景但在预测结果里被认为是背景部分的数量。 上述表达式可以转换为更通用的形式来适应多类别情况下的应用[^1]。 为了更好地理解这个概念,下面给出一段简单的 Python 实现代码片段,该函数接收两幅相同尺寸的二元掩码作为输入参数并返回它们之间 Dice 相似性的得分: ```python import numpy as np def compute_dice_coefficient(mask_gt, mask_pred): """Compute soerensen-dice coefficient. Args: mask_gt(numpy.ndarray): ground truth mask. mask_pred(numpy.ndarray): predicted mask. Returns: float: the dice similarity score. Raises: ValueError: If input arrays are of different shape. """ if mask_gt.shape != mask_pred.shape: raise ValueError("The shapes of both masks must be equal.") volume_sum = mask_gt.sum() + mask_pred.sum() if volume_sum == 0: return 1.0 volume_intersect = (mask_gt & mask_pred).sum() dice = 2 * volume_intersect / volume_sum return dice ``` 此实现考虑到了当测试集为空时的情况,此时按照惯例认为匹配程度最高,因此直接返回 `1.0` 的分数[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值