2016-06-13 71 views
1

我有些麻煩理解什麼似乎很容易計算。Jaccard係數在R

我知道Jaccard係數是交點(A,B)/聯合(A,B),那麼這怎麼是真的?

> sets::gset_similarity(c("1","2"), c("1","2","3"), "Jaccard") 
[1] 1 

是不是2/3

+0

這不是Jaccard距離的正確定義。做你建議的手術也不會返回2/3。 – lmkirvan

+0

也不要忘記基數。這也是計算的一部分。你可以看到,如果你只是運行函數名(不用'()'),以便看到它的工作原理。 –

+1

@lmkirvan對不起,爲什麼不是2/3? –

回答

3

如果你傳遞的實際set數據(見?sets::set)它的工作原理:

gset_similarity(set("1","2"), set("1","2","3"), "Jaccard") 
#[1] 0.6666667 

或者

gset_similarity(as.set(c("1","2")), as.set(c("1","2","3")), "Jaccard") 
#[1] 0.6666667 

...如果你有現有的矢量和需要將它們轉換。

+0

謝謝。我想我需要閱讀'set'數據。 –