2016-11-30 5 views
2

Я хочу вычислить сходство Jaccard между двумя наборами данных на основе существования/отсутствия списка стандартных кодов. Например (x, y, z - наборы данных): Наборы данных x и y не имеют стандартных кодов (Null), поэтому я устанавливаю значения в виде нулей.Jaccard сходство между Null Sets

x = [0,0,0] 
y = [0,0,0] 
z = [0,1,0] 

from sklearn.metrics import jaccard_similarity_score 
jaccard_similarity_score(x,y),jaccard_similarity_score(x, z) 

Jaccard sim между x и z - 0.66 (2/3). Существует ли какая-либо мера подобия, которая связана с множеством пересечений между двумя пустыми множествами? В моем случае я хочу установить сходство между набором данных x и y как 0, а не 1 (как вычисляется с помощью Jaccard).

ответ

0

Совместимость с Jaccard между двумя пустыми наборами не имеет смысла (деление на ноль). В зависимости от проблемы, сходство перекрытия (размер пересечения) может быть вариантом. Кроме того, вы можете обернуть функцию сходства с Jaccard с помощью проверки на два пустых набора и в этом случае вернуть 0.

0

Это зависит от каждого конкретного случая, но в вашем случае я думаю, что вы должны установить Jaccard подобие множества х и у, как 1, потому что, как вы заявили:

Dataset х и у не имеет какого-либо Стандартные коды (Null)

Таким образом, кто-то может утверждать, что x и y очень похожи (оба они не имеют стандартных кодов). В любом случае вы должны проверить, равен ли знаменатель дробей и обрабатывать его (возможно, вы могли бы дать значение флага -1, например).