2017-01-27 3 views
-1

自分のデータセット内のグループの各ペアの間にジャコカードの類似性を見つけたいと思います。私はDFとDF2間のクラスLablesの各ペアのためのジャカード指数を計算したいどのようにJaccardを見つけるためにパンダのクラスの類似性

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'Data' : ["a1","a2","a3","a4","a5","a6","a7"], 'ClassLable' :  ["c1","c2","c2","c2","c3","c3","c1"]}); df 
df2 = pd.DataFrame({'Data' : ["a1","a2","a4","a6","a7","a8","a9"], 'ClassLable' : ["c11","c21","c21","c12","c13","c13","c11"]}); df2 

:最初の列は私のデータであり、2番目の列は、クラスのlableで次のように私のデータがあります。たとえば、次のように言い換える

c1class = pd.DataFrame({'Data':["a1","a7"]}) 
c11class = pd.DataFrame({'Data':["a1","a9"]}) 
Jaccard = 1/3 

、DF1のために、私は各クラスlable

答えて

1

のための組合を超える交差アイテムを見つけたいDF2は、あなたがこのような何かを探しています:

from sklearn.metrics import jaccard_similarity_score 

jaccard_similarity_score(df['Data'],df2['Data']) 
Out[92]: 0.2857142857142857 

jaccard_similarity_score(c1class, c11class) 
Out[93]: 0.5 
+0

番号を私は、さまざまなグループのデータ間でjaccardの類似性を見つけたいと思っています。私は類似のオブジェクトに基づいて同様のクラスを見つけるためにクラスの各ペアのjaccardを計算したい –