Beispiel #1
0
 def __init__(self,dataList,k,r,Kernel="Gaussian",autoselected_r=True):
     self.dataList = dataList
     self.ClusterSet = [0]*k
     self.k = k
     self.r = r
     self.kernel = Kernel
     if autoselected_r:
         self.r = Cluster.DataCluster(dataList).ComputeDiameter() / k**(1/len(dataList[0]))
     self.weight = None
Beispiel #2
0
 def UpdateClusterSet(self):
     """
     :param k: int, number of clusters to be constructed
     :return: array of type Cluster, the set of clusters constructed
     """
     CenterSet = []
     for i in self.ClusterSet:
         CenterSet.append(i.GetCenter())
     CenterSet = np.asarray(CenterSet)
     for i in range(0,self.k,1):
         cluster_points = []
         for a in self.dataList:
             if self.GetPointDistance(self.FindNearestNeighbor(CenterSet, a), CenterSet[i]) == 0.0:
                 cluster_points.append(a)
         cluster_points = np.asarray(cluster_points)
         self.ClusterSet[i] = Cluster.DataCluster(cluster_points)
     return self.ClusterSet
Beispiel #3
0
 def GreedyPartition(self):
     """
     :param dataList: matrix, the data set to be partitioned
     :param M: int, number of centers required
     :return: array of arrays, the set of M centers found in this method
     """
     CenterSet = np.zeros((self.k,len(self.dataList[0])))
     CenterSet[0] = np.asarray(self.dataList[0])
     for i in range(1,self.k,1):
         CenterSet[i] = np.asarray(self.FindNextCenter(self.dataList,CenterSet))
     for i in range(0,self.k,1):
         cluster_points = []
         for a in self.dataList:
             if self.GetPointDistance(self.FindNearestNeighbor(CenterSet,a), CenterSet[i])== 0.0:
                 cluster_points.append(a)
         cluster_points = np.asarray(cluster_points)
         self.ClusterSet[i] = Cluster.DataCluster(cluster_points)
     return self.ClusterSet