Просмотр исходного кода

Cleanup for new Clustering class.

Kristian Schultz 3 лет назад
Родитель
Сommit
38d9669d78
1 измененных файлов с 9 добавлено и 32 удалено
  1. 9 32
      fdc/clustering.py

+ 9 - 32
fdc/clustering.py

@@ -4,34 +4,14 @@ from sklearn.cluster import KMeans
 from sklearn.cluster import DBSCAN
 from fdc.visualize import plotCluster
 
-def aglo_clustering(number_of_clusters, affinity, linkage
-                    , five_d_embedding, two_d_embedding
-                    , visual=False):
-    np.random.seed(42)
-    ag_cluster = AgglomerativeClustering(
-        n_clusters=number_of_clusters
-        , affinity=affinity
-        , linkage=linkage
-        )
-    clusters = ag_cluster.fit_predict(five_d_embedding)
-    (values, counts) = np.unique(clusters, return_counts=True)
-    two_d_embedding['Cluster'] = clusters
-    
-    if visual:
-        plotCluster(two_d_embedding, clusterName="Cluster", xName="UMAP_0", yName="UMAP_1", stroke=3)
-
-    return two_d_embedding.Cluster.to_list(), counts
-
 
 class Clustering:
-    def __init__(self,high_dim,low_dim,visual):
-        self.high_dim=high_dim
-        self.low_dim=low_dim
-        self.visual=visual
-    def Agglomerative(self,number_of_clusters, affinity, linkage):
-        self.number_of_clusters=number_of_clusters
-        self.affinity=affinity
-        self.linkage=linkage
+    def __init__(self, high_dim, low_dim, visual):
+        self.high_dim = high_dim
+        self.low_dim = low_dim
+        self.visual = visual
+
+    def Agglomerative(self, number_of_clusters, affinity, linkage):
         ag_cluster = AgglomerativeClustering(n_clusters=number_of_clusters, affinity=affinity, linkage=linkage)
         clusters = ag_cluster.fit_predict(self.high_dim)
         (values, counts) = np.unique(clusters, return_counts=True)
@@ -43,10 +23,8 @@ class Clustering:
         return self.low_dim.Cluster.to_list(), counts
     
     
-    def DBSCAN(self,eps,min_samples):
-        self.eps=eps
-        self.min_samples=min_samples
-        dbscan = DBSCAN(eps=eps, min_samples = min_samples)        
+    def DBSCAN(self, eps, min_samples):
+        dbscan = DBSCAN(eps=eps, min_samples=min_samples)
         clusters = dbscan.fit_predict(self.high_dim)
         (values, counts) = np.unique(clusters, return_counts=True)
         self.low_dim['Cluster'] = clusters
@@ -56,8 +34,7 @@ class Clustering:
 
         return self.low_dim.Cluster.to_list(), counts
     
-    def K_means(self,no_of_clusters):
-        self.no_of_clusters=no_of_clusters
+    def K_means(self, no_of_clusters):
         kmeans = KMeans(n_clusters=no_of_clusters)
         clusters = kmeans.fit_predict(self.high_dim)
         (values, counts) = np.unique(clusters, return_counts=True)