INNER CODE UNIT · Python

FuzzyCMeans

AllAlgorithms/python · classification/fcm.py:6

class FuzzyCMeans:
    def __init__(self, n_clusters, initial_centers, data, max_iter=250, m=2, error=1e-5):
        assert m > 1
        #assert initial_centers.shape[0] == n_clusters
        self.U = None
        self.centers = initial_centers
        self.max_iter = max_iter
        self.m = m
        self.error = error
        self.data = data

    def membership(self, data, centers):
        U_temp = cdist(data, centers, 'euclidean')
        U_temp = numpy.power(U_temp, 2/(self.m - 1))
        denominator_ = U_temp.reshape(
            (data.shape[0], 1, -1)).repeat(U_temp.shape[-1], axis=1)
        denominator_ = U_temp[:, :, numpy.newaxis] / denominator_
        return 1 / denominator_.sum(2)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…