如何修复错误“ValueError:压缩距离矩阵必须仅包含有限值。”用于在 seaborn 中使用 Yule 度量进行层次聚类

时间:2021-07-11 01:14:42

标签: python pandas seaborn hierarchical-clustering

我目前正在尝试使用 seaborn 创建层次聚类。 我的代码目前是

  clustermap = sns.clustermap(df, metric='yule', col_cluster=True,
                                        figsize=(7, 5))

我的数据帧看起来像 10 个行名(字符串)和几千个列名(0-3000 数字升序),所有其他值都是 0 或 1。

当我用欧几里得和其他指标尝试这个时,我没有问题。但是,当使用 Yule 距离尝试此操作时,我得到“ValueError:压缩距离矩阵必须仅包含有限值。”。

我检查了 df 中没有 NA 或空白数据值,并尝试 df.replace(np.nan, 0) 仔细检查这不是这个问题。 此外,我在数据框中找不到 0 或 1 以外的任何值。 下面是正在发生的事情的一个小例子:

    # initialize list of lists
    data = [[1,0,0,0,0,0], [ 1,0,1,1,0,1], [ 0,0,1,0,1,0], [ 0,0,1,0,1,0], [ 0,0,1,0,1,0], [ 0,0,1,0,1,0], [ 0,0,1,0,1,0], [ 0,0,1,0,1,0], [ 0,0,1,0,1,0], [ 0,0,1,0,1,0]]

    # Create the pandas DataFrame
    df = pd.DataFrame(data, columns=[ 'col1','col2','col3','col4','col5','col6'])
    df = df.transpose()
    print(df)

    clustermap = sns.clustermap(df, metric='yule', col_cluster=True, figsize=(8, 6))
    
    plt.show()

是否有一些检查表明我缺少特定于该指标的检查?我该如何解决这个问题?

谢谢!!

0 个答案:

没有答案