Python Pandas Distanzmatrix mit Jaccard-Ähnlichkeit

Ich habe eine Funktion implementiert, um eine Distanzmatrix unter Verwendung der Jaccard-Ähnlichkeit zu konstruieren:

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)

und die Distanzmatrix mit 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)

Das Problem ist, dass mein Ergebnis so aussieht, was falsch zu sein scheint:

Was vermisse ich? Die Ähnlichkeit von 0 und 1 muss zum Beispiel maximal sein und die anderen Werte scheinen auch falsch zu sein

Antworten auf die Frage(2)

Ihre Antwort auf die Frage