friends.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:massivedatans 作者: JohannesBuchner 项目源码 文件源码
def cluster(self, u, ndim, keepRadius=False):
        """

        """
        if self.verbose: print 'building region ...'
        if len(u) > 10:
            if keepRadius and self.region is not None and 'maxdistance' in self.region:
                maxdistance = self.region['maxdistance']
            else:
                if self.radial:
                    if self.jackknife:
                        #maxdistance = initial_rdistance_guess(u, k=1, metric=self.metric)
                        maxdistance = nearest_rdistance_guess(u, metric=self.metric)
                    else:
                        maxdistance = find_rdistance(u, nbootstraps=20, metric=self.metric, verbose=self.verbose)
                else:
                    maxdistance = find_maxdistance(u)
            if self.force_shrink and self.region is not None and 'maxdistance' in self.region:
                maxdistance = min(maxdistance, self.region['maxdistance'])
            if self.keep_phantom_points and len(self.phantom_points) > 0:
                # add phantoms to u now
                print 'including phantom points in cluster members', self.phantom_points
                u = numpy.vstack((u, self.phantom_points))
            ulow  = numpy.max([u.min(axis=0) - maxdistance, numpy.zeros(ndim)], axis=0)
            uhigh = numpy.min([u.max(axis=0) + maxdistance, numpy.ones(ndim)], axis=0)
        else:
            maxdistance = None
            ulow = numpy.zeros(ndim)
            uhigh = numpy.ones(ndim)
        if self.verbose: print 'setting sampling region:', (ulow, uhigh), maxdistance
        self.region = dict(members=u, maxdistance=maxdistance, ulow=ulow, uhigh=uhigh)
        self.generator = None
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号