Exemple #1
0
    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)
Exemple #3
0
    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
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
    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)
Exemple #7
0
    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)
Exemple #8
0
    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)
Exemple #10
0
    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)
Exemple #11
0
    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
Exemple #12
0
    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()