def hdbscan(): global source_data min_cluster_size = 0.5 min_samples = 5 alpha = 1.0 cluster_selection_method = 'eom' if request.args.get('min_cluster_size'): min_cluster_size = int(request.args.get('min_cluster_size')) if request.args.get('min_samples'): min_samples = int(request.args.get('min_samples')) if request.args.get('alpha'): alpha = float(request.args.get('alpha')) if request.args.get('cluster_selection_method'): cluster_selection_method = int( request.args.get('cluster_selection_method')) model = MyHDBSCAN() clustering = model.fit(source_data, min_cluster_size, min_samples, alpha, cluster_selection_method) labels = clustering.labels_ labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='HDBSCAN')
def pca(): model = MyPCA(source_data) projection_data = model.return_data projection_data = projection_data.tolist() return render_template("pca.html", data=projection_data, data_obj=dictionary_data, method='PCA')
def hierarchical(): method = 'average' if request.args.get('linkage'): method = request.args.get('linkage') model = MyHierarchical() clustering, labels = model.fit(source_data, method) labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='hierarchy')
def sc(): n_clusters = 8 if request.args.get('s_clusters'): n_clusters = int(request.args.get('s_clusters')) model = MySC() clustering = model.fit(source_data, n_clusters) labels = clustering.labels_ labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='SpectralClustering')
def meanshift(): global source_data bandwidth = None if request.args.get('bandwidth'): bandwidth = float(request.args.get('bandwidth')) model = MyMeanShift() clustering = model.fit(source_data, bandwidth) labels = clustering.labels_ labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='MeanShift')
def gmm(): n_clusters = 1 cov_type = 'full' if request.args.get('g_clusters'): n_clusters = int(request.args.get('g_clusters')) if request.args.get('cov_type'): cov_type = request.args.get('cov_type') model = MyGMM() clustering, labels = model.fit(source_data, n_clusters, cov_type) labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='GaussianMixture')
def fa(): n_clusters = 2 method = 'ward' if request.args.get('f_clusters'): n_clusters = int(request.args.get('f_clusters')) if request.args.get('linkage'): method = request.args.get('linkage') model = MyFeatureAgglomeration() clustering = model.fit(source_data, n_clusters, method) labels = clustering.labels_ labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='FeatureAgglomeration')
def dbscan(): eps = 0.5 min_samples = 5 if request.args.get('eps'): eps = float(request.args.get('eps')) if request.args.get('min_samples'): min_samples = int(request.args.get('min_samples')) model = MyDBSCAN() clustering = model.fit(source_data, eps, min_samples) labels = clustering.labels_ labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='DBSCAN')
def birch(): threshold = 0.5 branching_factor = 50 if request.args.get('threshold'): threshold = float(request.args.get('threshold')) if request.args.get('branching_factor'): branching_factor = int(request.args.get('branching_factor')) model = MyBirch() clustering = model.fit(source_data, threshold, branching_factor) labels = clustering.labels_ labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='Birch')
def ap(): damping = 0.5 preference = None if request.args.get('damping'): damping = float(request.args.get('damping')) if request.args.get('preference'): preference = float(request.args.get('preference')) model = MyAP() clustering = model.fit(source_data, damping, preference) labels = clustering.labels_ labels = labels.tolist() clusters = np.unique(labels).size pca = MyPCA(source_data) data_pca = pca.return_data samples, features = data_pca.shape data_pca = data_pca.tolist() for i in range(samples): data_pca[i].append(labels[i]) return render_template("cluster.html", data=data_pca, data_obj=dictionary_data, clusters=clusters, method='AffinityPropagation')