首页 > 试题广场 >

计算二元分类的Jaccard指数

[编程题]计算二元分类的Jaccard指数
  • 热度指数:15 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
### 题目描述
实现一个函数来计算二元分类问题的Jaccard指数(Jaccard Index)。Jaccard指数是一个用于评估两个集合相似度的度量指标,在二分类任务中常用于评估预测结果与真实标签的重叠程度。

Jaccard指数的计算公式为:

\text { Jaccard Index }=\frac{\text { Number of elements in the intersection of } y_{\text {true }} \text { and } y_{\text {pred }}}{\text { Number of elements in the union of } y_{\text {true }} \text { and } y_{\text {pred }}}

输入描述:
第一行输入真实标签数组。
第二行输入预测标签数组。


输出描述:
返回一个浮点数,表示Jaccard指数,结果保留3位小数。
示例1

输入

[1, 1, 0, 0]
[1, 0, 0, 1]

输出

0.333

备注:
1. 对应的输入、输出已给出,您只用实现核心功能函数即可
2. 支持numpy、scipy、pandas、scikit-learn库
import numpy as np

def jaccard_index(y_true, y_pred):
    tp = np.sum(np.logical_and(y_pred, y_true))
    den = np.sum(np.logical_or(y_pred, y_true))
    result = tp / den
    return round(result, 3)

if __name__ == "__main__":
    y_true = np.array(eval(input()))
    y_pred = np.array(eval(input()))
    print(f"{jaccard_index(y_true, y_pred):.3f}")
发表于 2025-03-19 20:02:40 回复(0)