def start_CLARANS(self): self.ax1.cla() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) QCoreApplication.processEvents() self.verify_input_parameters() if self.param_check is False: return self.n_medoids = int(self.line_edit_n_medoids.text()) self.numlocal_clarans = int(self.line_edit_numlocal_clarans.text()) self.maxneighbors_clarans = int( self.line_edit_maxneighbors_clarans.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.button_examples_graph.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) clarans_gui( data=self.X, number_clusters=self.n_medoids, numlocal=self.numlocal_clarans, maxneighbor=self.maxneighbors_clarans, log=self.log, ax=self.ax1, canvas=self.canvas_up, save_fig=self.save_plots, ind_run=self.ind_run, delay=self.delay, ).process(plotting=True) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.button_examples_graph.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_CHAMELEON2(self): self.ax1.cla() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) self.verify_input_parameters() if self.param_check is False: return self.n_clust = int(self.line_edit_n_clust.text()) self.knn_cham = int(self.line_edit_knn_cham.text()) self.init_clust_cham = int(self.line_edit_init_clust_cham.text()) self.alpha_cham = float(self.line_edit_alpha_cham.text()) self.beta_cham = float(self.line_edit_beta_cham.text()) self.m_fact = int(self.line_edit_m_fact.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.button_examples_graph.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) res, h = self.cluster2_gui(pd.DataFrame(self.X), k=self.n_clust, knn=self.knn_cham, m=self.init_clust_cham, alpha=self.alpha_cham, beta=self.beta_cham, m_fact=self.m_fact, plot=True, auto_extract=False) # plot2d_data(res) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.button_examples_graph.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_LARGE_CURE(self): self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) self.verify_input_parameters() if self.param_check is False: return self.n_clust = int(self.line_edit_n_clust.text()) self.n_repr = int(self.line_edit_n_repr.text()) self.alpha_cure = float(self.line_edit_alpha_cure.text()) self.p_cure = int(self.line_edit_p_cure.text()) self.q_cure = int(self.line_edit_q_cure.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.SetWindows(number=self.p_cure, first_run_boolean=self.first_run_occurred_mod) # self.button_extract.setEnabled(False) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) self.cure_sample_part(delay=self.delay) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() # self.button_extract.setEnabled(True) self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.first_run_occurred_mod = True
def start_BIRCH(self): self.ax1.cla() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) self.verify_input_parameters() if self.param_check is False: return self.n_clust = int(self.line_edit_n_clust.text()) self.branching_factor = int(self.line_edit_branching_factor.text()) self.initial_diameter = float(self.line_edit_initial_diameter.text()) self.max_node_entries = int(self.line_edit_max_node_entries.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) birch_instance = birch_gui(self.X.tolist(), self.n_clust, initial_diameter=self.initial_diameter, max_node_entries=self.max_node_entries, branching_factor=self.branching_factor, log=self.log, ax=self.ax1, canvas=self.canvas_up, save_fig=self.save_plots, ind_run=self.ind_run, delay=self.delay, label_graphviz=self.label_graphviz) birch_instance.process(plotting=True) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_PAM(self): self.ax1.cla() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) self.verify_input_parameters() if self.param_check is False: return self.n_medoids = int(self.line_edit_n_medoids.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) PAM = KMedoids_gui(n_cluster=self.n_medoids, log=self.log, ax=self.ax1, canvas=self.canvas_up, save_fig=self.save_plots, ind_run=self.ind_run, delay=self.delay) PAM.fit(self.X.tolist()) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_OPTICS(self): self.ax.cla() self.ax1.cla() self.ax_t.cla() self.ax1_t.cla() self.ax1_t.set_yticks([], []) QCoreApplication.processEvents() self.verify_input_parameters() if self.param_check is False: return self.eps = float(self.line_edit_eps.text()) self.mp = int(self.line_edit_mp.text()) self.eps_extr = float(self.line_edit_eps_extr.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_extract.setEnabled(False) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) self.OPTICS_gui(plot=True, plot_reach=True, delay=self.delay) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_extract.setEnabled(True) self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_CURE(self): self.ax1.cla() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) QCoreApplication.processEvents() self.verify_input_parameters() if self.param_check is False: return self.n_clust = int(self.line_edit_n_clust.text()) self.n_repr = int(self.line_edit_n_repr.text()) self.alpha_cure = float(self.line_edit_alpha_cure.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) self.cure_gui(data=self.X, k=self.n_clust, delay=self.delay) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() # self.button_extract.setEnabled(True) self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_DBSCAN(self): self.ax1.cla() self.verify_input_parameters() if self.param_check is False: return self.eps = float(self.line_edit_eps.text()) self.mp = int(self.line_edit_mp.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) self.DBSCAN_gui(plotting=True, print_details=True, delay=self.delay) self.ax1.cla() self.plot_clust_DB_gui(save_plots=self.save_plots) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_AGGL(self): self.ax1.cla() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) self.verify_input_parameters() if self.param_check is False: return self.n_clust = int(self.line_edit_n_clust.text()) self.n_points = int(self.line_edit_np.text()) self.linkage = self.combobox_linkage.currentText() self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) self.agg_clust_mod_gui(delay=self.delay) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_CHAMELEON(self): self.ind_fig = 0 self.SetWindowsCHAMELEON() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) QCoreApplication.processEvents() self.verify_input_parameters() if self.param_check is False: return self.n_clust = int(self.line_edit_n_clust.text()) self.knn_cham = int(self.line_edit_knn_cham.text()) self.init_clust_cham = int(self.line_edit_init_clust_cham.text()) self.alpha_cham = float(self.line_edit_alpha_cham.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) self.slider.setEnabled(False) if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) self.checkbox_gif.setEnabled(False) res, h = self.cluster_gui( pd.DataFrame(self.X), k=self.n_clust, knn=self.knn_cham, m=self.init_clust_cham, alpha=self.alpha_cham, save_plots=self.save_plots, ) self.plot2d_data_gui( res, canvas=self.canvas_down, ax=self.ax, save_plots=self.save_plots, ind_fig=self.ind_fig, ) if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) if self.checkbox_saveimg.isChecked() is True: self.checkbox_gif.setEnabled(True) self.button_delete_pics.setEnabled(True) self.slider.setEnabled(True)
def start_DENCLUE(self): self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) self.log.appendPlainText("") QCoreApplication.processEvents() self.verify_input_parameters() if self.param_check is False: return self.sigma_denclue = float(self.line_edit_sigma_denclue.text()) self.xi_denclue = float(self.line_edit_xi_denclue.text()) self.xi_c_denclue = float(self.line_edit_xi_c_denclue.text()) self.tol_denclue = float(self.line_edit_tol_denclue.text()) self.prec_denclue = int(self.line_edit_prec_denclue.text()) self.n_points = int(self.line_edit_np.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) self.SetWindowsDENCLUE( pic_list=self.plot_list, first_run_boolean=self.first_run_occurred_mod ) self.button_run.setEnabled(False) self.checkbox_saveimg.setEnabled(False) self.button_delete_pics.setEnabled(False) QCoreApplication.processEvents() if self.first_run_occurred is True: self.ind_run += 1 self.ind_extr_fig = 0 if self.save_plots is True: self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) else: if Qt.Checked == self.checkbox_saveimg.checkState(): self.first_run_occurred = True self.checkBoxChangedAction(self.checkbox_saveimg.checkState()) if np.array(self.plot_list).sum() != 0: self.DENCLUE_gui( data=self.X, s=self.sigma_denclue, xi=self.xi_denclue, xi_c=self.xi_c_denclue, tol=self.tol_denclue, prec=self.prec_denclue, save_plots=self.save_plots, ) else: self.display_empty_message() if (self.make_gif is True) and (self.save_plots is True): self.generate_GIF() self.button_run.setEnabled(True) self.checkbox_saveimg.setEnabled(True) self.button_delete_pics.setEnabled(True) self.first_run_occurred_mod = True
def plot_infl_gui(self, ax, canvas): ax.clear() self.log.clear() self.log.appendPlainText("{} LOG".format(self.name)) self.log.appendPlainText("") self.verify_input_parameters() if self.param_check is False: return self.n_points = int(self.line_edit_np.text()) self.sigma_denclue = float(self.line_edit_sigma_denclue.text()) self.xi_denclue = float(self.line_edit_xi_denclue.text()) self.X = choose_dataset(self.combobox.currentText(), self.n_points) data = self.X s = self.sigma_denclue xi = self.xi_denclue ax.set_title("Significance of possible density attractors") z = [] for a, b in zip(np.array(data)[:, 0], np.array(data)[:, 1]): z.append(gauss_dens(x=np.array([a, b]), D=data, s=s)) x_plot = [i for i in range(len(data))] X_over = [x_plot[j] for j in range(len(data)) if z[j] >= xi] Y_over = [z[j] for j in range(len(data)) if z[j] >= xi] X_under = [x_plot[j] for j in range(len(data)) if z[j] < xi] Y_under = [z[j] for j in range(len(data)) if z[j] < xi] ax.scatter( X_over, Y_over, s=300, color="green", edgecolor="black", alpha=0.7, label="possibly significant", ) ax.scatter( X_under, Y_under, s=300, color="yellow", edgecolor="black", alpha=0.7, label="not significant", ) ax.axhline(xi, color="red", linewidth=2, label="xi") ax.set_ylabel("influence") # add indexes to points in plot for i, txt in enumerate(range(len(data))): ax.annotate(txt, (i, z[i]), fontsize=10, size=10, ha="center", va="center") ax.legend() self.openFinalStepWindow_4(canvas=canvas) canvas.draw() QCoreApplication.processEvents()