ng.py 文件源码

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

项目:dyfunconn 作者: makism 项目源码 文件源码
def fit(self, data):
        """ Learn data, and construct a vector codebook.

        Parameters
        ----------
        data : real array-like, shape(n_samples, n_features)
            Data matrix, each row represents a sample.

        Returns
        -------
        self : object
            The instance itself
        """
        [n_samples, _] = data.shape
        self.protos = data[self.rng.choice(n_samples, self.n_protos), ]

        # avg_p = np.mean(data, 0)
        #dist_from_avg_p = np.sum(pairwise_distances(avg_p, data))
        #ndistortion = []

        for iteration in range(self.iterations):
            sample = data[self.rng.choice(n_samples, 1), ]

            t = iteration / float(self.iterations)
            lrate = self.lrate_i * (self.lrate_f / float(self.lrate_i)) ** t
            epsilon = self.epsilon_i * (self.epsilon_f / float(self.epsilon_i)) ** t

            D = pairwise_distances(sample, self.protos, metric='euclidean', n_jobs=self.n_jobs)
            I = np.argsort(np.argsort(D))

            H = np.exp(-I / epsilon).ravel()

            diff = sample - self.protos
            for proto_id in range(self.n_protos):
                self.protos[proto_id, :] += lrate * H[proto_id] * diff[proto_id, :]
                #nbrs = NearestNeighbors(n_neighbors=1, algorithm='auto').fit(protos)
                #distances, _ = nbrs.kneighbors(data)
        #ndistortion.append( np.sum(distances) / dist_from_avg_p )

        return self
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号