Ejemplo n.º 1
0
    def get_parameters(self):
        """
        This function creates some parameters to be used with DBScan.
        @return: A tuple with the generated parameters and an empty list corresponding to the clusterings.
        """
        run_parameters = []

        # (minpts, eps tuples)
        if "max" in self.parameters["clustering"]["algorithms"]["dbscan"]:
            max_eps_tries = self.parameters["clustering"]["algorithms"]["dbscan"]["max"]
        else:
            max_eps_tries = 10

        num_elements = self.distance_matrix.row_length
        klist = k_scale_gen(math.log(num_elements))
        buffer = numpy.empty(num_elements)
        kdist_matrix = k_dist(klist, buffer, self.distance_matrix)

        dbscan_param_pairs = dbscanTools.dbscan_param_space_search(self.parameters["clustering"]["evaluation"]["maximum_noise"],
                                                                   max_eps_tries,
                                                                   num_elements,
                                                                   klist,
                                                                   kdist_matrix) +\
                            zhou_adaptative_determination(kdist_matrix, self.distance_matrix)

        for (minpts, eps) in dbscan_param_pairs:
            run_parameter = ParametersGenerator.get_base_parameters()
            run_parameter["minpts"] = minpts
            run_parameter["eps"] = eps
            run_parameters.append(run_parameter)

        return run_parameters, []
Ejemplo n.º 2
0
 def test_zhou_adaptative_determination(self):
     distances = CondensedMatrix([ 0., 0., 2., 2., 
                                       0., 2., 2.,
                                           2., 2.,
                                               0.])
     buffer = numpy.empty(distances.row_length)
     k_dist_matrix = k_dist(numpy.array([2,4]), buffer, distances)
     zhou_params =  zhou_adaptative_determination(k_dist_matrix, distances)
     self.assertItemsEqual(zhou_params,[(1.0, 0.8), (4.0, 2.0)])
Ejemplo n.º 3
0
 def test_zhou_adaptative_determination(self):
     distances = CondensedMatrix([0., 0., 2., 2., 0., 2., 2., 2., 2., 0.])
     buffer = numpy.empty(distances.row_length)
     k_dist_matrix = k_dist(numpy.array([2, 4]), buffer, distances)
     zhou_params = zhou_adaptative_determination(k_dist_matrix, distances)
     self.assertItemsEqual(zhou_params, [(1.0, 0.8), (4.0, 2.0)])