为什么jaccard_score和jaccard_similarity_score的输出不同?

问题描述 投票:0回答:1

当尝试使用jaccard_similarity_score时,我得到的结果是 "弃用警告:jaccard_similarity_score已被弃用,并被jaccard_score取代。它将在0.23版本中被移除。这个实现对于二进制和多类分类任务有令人惊讶的行为。"

Jaccard相似度分数的经典解释与被废弃的jaccard_similarity_score的输出相匹配。

然而,jaccard_score和jaccard_similarity_score的结果是不同的(即使尝试不同的参数,如图所示)。

from sklearn.metrics import jaccard_similarity_score, jaccard_score  
y_pred = [0,1,0,1,0,0,0,1,0,1]  
y_true = [0,0,0,1,0,1,0,1,0,0] 
print("jaccard_similarity_score=",jaccard_similarity_score(y_true, y_pred),'\n')  
for param in ['weighted', 'micro', 'macro']:  
    print(param, " jaccard_score=", jaccard_score(y_true, y_pred,  average=param))    

这就是上面代码的输出。

jaccard_similarity_score= 0.7 

weighted  jaccard_score= 0.5575  
micro  jaccard_score= 0.5384615384615384  
macro  jaccard_score= 0.5125 

有没有一个选项可以让结果相同?新的jaccard_score是否如预期的那样工作?

python scikit-learn scoring
1个回答
0
投票

正如你所看到的 https:/github.comscikit-learnscikit-learnbloba5d4c61sklearnmetricsclassification.py#L311。

jaccard_similarity_score其实是计算准确性的。

所以,其实。jaccard_similarity_score 在这里不是一个好的功能。

© www.soinside.com 2019 - 2024. All rights reserved.