Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缺少值的Python分层集群_Python_Scipy_Missing Data_Data Analysis_Hierarchical Clustering - Fatal编程技术网

缺少值的Python分层集群

缺少值的Python分层集群,python,scipy,missing-data,data-analysis,hierarchical-clustering,Python,Scipy,Missing Data,Data Analysis,Hierarchical Clustering,我是Python新手。我想对包含一些缺失值的N×P数据集执行分层聚类。我计划使用scipy.cluster.hierarchy.linkage函数,该函数采用压缩形式的距离矩阵。Python是否有一种方法来计算包含缺失值数据的距离矩阵?(在R dist中,函数会自动处理缺失值…但scipy.spatial.distance.pdist似乎不会处理缺失值!)我找不到一种方法来计算缺失值数据的距离矩阵。这是我使用欧几里德距离的简单解决方案 import numpy as np def getMiss

我是Python新手。我想对包含一些缺失值的N×P数据集执行分层聚类。我计划使用scipy.cluster.hierarchy.linkage函数,该函数采用压缩形式的距离矩阵。Python是否有一种方法来计算包含缺失值数据的距离矩阵?(在R dist中,函数会自动处理缺失值…但scipy.spatial.distance.pdist似乎不会处理缺失值!)

我找不到一种方法来计算缺失值数据的距离矩阵。这是我使用欧几里德距离的简单解决方案

import numpy as np
def getMissDist(x,y):
    return np.nanmean( (x - y)**2 )

def getMissDistMat(dat):
    Npat = dat.shape[0]
    dist = np.ndarray(shape=(Npat,Npat))
    dist.fill(0)
    for ix in range(0,Npat):
        x = dat[ix,]
        if ix >0:
            for iy in range(0,ix):
                y = dat[iy,]
                dist[ix,iy] = getMissDist(x,y)
                dist[iy,ix] = dist[ix,iy]
    return dist
然后假设
dat
是N(=案例数量)乘以p(=特征数量)数据矩阵,且缺少值,则可以对该
dat
执行分层聚类,如下所示:

distMat = getMissDistMat(dat)
condensDist = dist.squareform(distMat)
link = hier.linkage(condensDist, method='average')

你可以看看Sklearn的输入法。它使用基于相邻单元的某种插值。