def getpossibleedges(datapointwts,seeds):
# datapointwts = densify(datapointwts);
X = [(xx[0], xx[1]) for xx in datapointwts]; S = [(xx[0], xx[1]) for xx in seeds];cluster = {};p2cluster = []; gedges = {}; gedges1 = {}; nedges = {};
nbrs = NearestNeighbors(n_neighbors=5, algorithm='ball_tree').fit(S)
distances, indices = nbrs.kneighbors(X)
for cd in range(len(seeds)):
cluster[cd] = []
for ii, ll in enumerate(indices):
dd = [taxidist(seeds[xx], datapointwts[ii][:-1],theta) for xx in ll]
cd = ll[dd.index(min(dd))];
cluster[cd].append(datapointwts[ii])
p2cluster.append(cd)
for ii, xx in enumerate(datapointwts):
if ii>1:
if datapointwts[ii-1][-1]<datapointwts[ii][-1] and datapointwts[ii-1][-1]>datapointwts[ii][-1]-11:
cd1 = p2cluster[ii-1]; cd2 = p2cluster[ii];
if not cd1== cd2:
gedges1[(cd1,cd2)] = gedges1.get((cd1,cd2),0)+1;
return(gedges1)
评论列表
文章目录