Как рассчитывается sklearn jaccard_score? - PullRequest
0 голосов
/ 14 июня 2019

Я пытался понять, что происходит с jaccard_score Склеарна.

Это результат, который я получил

1. jaccard_score([0 1 1], [1 1 1])
0.6666666666666666

2. jaccard_score([1 1 0], [1 0 0])
0.5

3. jaccard_score([1 1 0], [1 0 1])
0.3333333333333333

Я понимаю, что формула

intersection / size of A + size of B - intersection

Я думал, что последний должен дать мне 0,2, потому что перекрытие равно 1, а общее количество записей равно 6, что дает 1/5. но я получил 0,33333 ...

Кто-нибудь может объяснить, как sklearn вычисляет jaccard_score?

1 Ответ

0 голосов
/ 14 июня 2019

Per документ sklearn , функция jaccard_score "используется для сравнения набора предсказанных меток для образца с соответствующим набором меток в y_true". Если атрибуты являются двоичными, вычисление основывается на этом с использованием матрицы путаницы. В противном случае то же самое вычисление выполняется с использованием матрицы путаницы для каждого значения атрибута / метки класса.

Приведенное выше определение для двоичных атрибутов / классов может быть сокращено до определения набора, как объяснено в следующем.

Предположим, что есть три записи r1, r2 и r3. Вектор [0, 1, 1] и [1, 1, 1], которые являются истинными и предсказанными классами записей, можно сопоставить двум наборам {r2, r3} и {r1, r2, r3} соответственно. Здесь каждый элемент вектора представляет, существует ли соответствующая запись в наборе. Жаккардово сходство двух множеств совпадает с определением значения сходства для двух векторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...