【问题标题】:Plot heatmap of jaccard similarity绘制 Jaccard 相似度的热图
【发布时间】:2021-09-01 23:57:43
【问题描述】:

考虑如下所示的数据框。

import pandas as pd
data= [
    {'col1':'101', 'col2': '101', 'col3':'1321'},
    {'col1':'99', 'col2': '99', 'col3':'101'},
    {'col1':'21', 'col2': '23', 'col3':'99'},
    {'col1':'47', 'col2': '67', 'col3':'47'},
    {'col1':'1321', 'col2': '47', 'col3':'23'}
           ]
df = pd.DataFrame(data)

如何计算每列之间的 Jaccard 相似度,然后将其绘制在热图上?

这样做似乎不对。

df111 = df.to_numpy()
res = 1 - pdist(df111, 'jaccard')

【问题讨论】:

    标签: python python-3.x pandas seaborn heatmap


    【解决方案1】:

    我能够从另一个线程中找到确切的解决方案。 How to compute jaccard similarity from a pandas dataframe

    从该线程发布解决方案。归功于ayhan

    from sklearn.metrics.pairwise import pairwise_distances
    import seaborn as sns
    
    jac_sim = 1 - pairwise_distances(plot_df1.T, metric = "hamming")
    jac_sim = pd.DataFrame(jac_sim, index=plot_df1.columns, columns=plot_df1.columns)
    sns.heatmap(jac_sim)
    

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 1970-01-01
      • 2018-01-02
      • 2022-01-04
      • 2022-07-21
      • 2021-09-20
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多