Матрица Python Pandas с использованием сходства с jaccard

Я реализовал функцию для построения матрицы расстояния с использованием сходства jaccard:

import pandas as pd entries = [ {'id':'1', 'category1':'100', 'category2': '0', 'category3':'100'}, {'id':'2', 'category1':'100', 'category2': '0', 'category3':'100'}, {'id':'3', 'category1':'0', 'category2': '100', 'category3':'100'}, {'id':'4', 'category1':'100', 'category2': '100', 'category3':'100'}, {'id':'5', 'category1':'100', 'category2': '0', 'category3':'100'} ] df = pd.DataFrame(entries) 

и матрица расстояний с scipy

 from scipy.spatial.distance import squareform from scipy.spatial.distance import pdist, jaccard res = pdist(df[['category1','category2','category3']], 'jaccard') squareform(res) distance = pd.DataFrame(squareform(res), index=df.index, columns= df.index) 

Проблема в том, что мой результат выглядит так, что кажется ложным:

введите описание изображения здесь

Что мне не хватает? Сходство 0 и 1 должно быть, например, максимальным, и другие значения также кажутся неправильными

One Solution collect form web for “Матрица Python Pandas с использованием сходства с jaccard”

Глядя на документы, реализация jaccard в scipy.spatial.distance является несходством jaccard, а не сходством. Это обычный способ вычисления расстояния при использовании jaccard в качестве показателя. Причина этого в том, что для того, чтобы быть метрикой, расстояние между одинаковыми точками должно быть равно нулю.

В вашем коде разница между 0 и 1 должна быть сведена к минимуму, что и есть. Другие значения выглядят правильно и в контексте несходства.

Если вы хотите подобия вместо несходства, просто вычтите несходство от 1.

 res = 1 - pdist(df[['category1','category2','category3']], 'jaccard') 
  • Остановить Сципы до минимума после установленного времени
  • Анализ основных компонентов в Python
  • Python с Numpy / Scipy против чистого C ++ для анализа больших данных
  • Односторонний тест на знакомство с Wilcoxon с использованием scipy
  • Использование функции kmeans2 scipy в python
  • MemoryError в toarray при использовании DictVectorizer Scikit Learn
  • Якобиан и Гессен в `scipy.optimize.minimize`
  • Эффективный способ ввода больших растровых данных в PyTables
  •  
    Interesting Posts for Van-Lav

    Библиотека Python для рендеринга HTML и javascript

    Как я могу удовлетворять правилу Unused Variable из PEP8, если мне не нужна переменная, возвращаемая функцией?

    Вложенные транзакции с SQLAlchemy и sqlite

    Django Rest Framework ModelSerializer Установить атрибут для создания

    Добавить пользовательское действие администратора Django

    Как сделать объект и итератором Python2 и Python3?

    Python – как я могу динамически удалить метод из класса – т. Е. Напротив setattr

    Sentry + Raven, ошибка HTTP 401: НЕСАНКЦИОНИРОВАННЫЙ

    InvalidDocument: невозможно закодировать объект: ObjectId ('51861bc79bb6550f2b98be23')

    Объекты просмотра словаря Python 3.x и matplotlib

    множественная разбивка на страницы в классе на основе класса django

    Как скопировать файлы с определенным расширением файла в папку в моем сценарии python (версия 2.5)?

    Вывод текста юникода в RTF-файл в python

    Получение более широкой информации в встроенной консоли PyCharm

    Как использовать диспетчер контекста, чтобы избежать использования __del__ в python?

    Python - лучший язык программирования в мире.