Ejemplo n.º 1
0
def rock(sample, eps, number_clusters, threshold):
    """
    @brief Clustering algorithm ROCK returns allocated clusters and noise that are consisted from input data. 
    @details Calculation is performed via CCORE (C/C++ part of the pyclustering)."
    
    @param[in] sample: input data - list of points where each point is represented by list of coordinates.
    @param[in] eps: connectivity radius (similarity threshold), points are neighbors if distance between them is less than connectivity radius.
    @param[in] number_clusters: defines number of clusters that should be allocated from the input data set.
    @param[in] threshold: value that defines degree of normalization that influences on choice of clusters for merging during processing.
    
    @return List of allocated clusters, each cluster contains indexes of objects in list of data.
    
    """
    
    pointer_data = create_pointer_data(sample);
    
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    
    ccore.rock_algorithm.restype = POINTER(pyclustering_package);
    package = ccore.rock_algorithm(pointer_data, c_double(eps), c_size_t(number_clusters), c_double(threshold));

    list_of_clusters = extract_pyclustering_package(package);
    ccore.free_pyclustering_package(package);
    
    return list_of_clusters;
Ejemplo n.º 2
0
def cure_get_means(cure_data_pointer):
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.cure_get_means(cure_data_pointer)

    result = extract_pyclustering_package(package)
    ccore.free_pyclustering_package(package)

    return result
Ejemplo n.º 3
0
def som_get_neighbors(som_pointer):
    "Returns list of indexes of neighbors of each neuron."
    
    "(in) som_pointer    - pointer to object of self-organized map."
    
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    package = ccore.som_get_neighbors(som_pointer);
    
    result = extract_pyclustering_package(package);
    return result;  
Ejemplo n.º 4
0
def agglomerative_algorithm(data, number_clusters, link):
    pointer_data = create_pointer_data(data);

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    package = ccore.agglomerative_algorithm(pointer_data, c_uint(number_clusters), c_uint(link));

    result = extract_pyclustering_package(package);
    ccore.free_pyclustering_package(package);

    return result;
Ejemplo n.º 5
0
def som_get_awards(som_pointer):
    "Returns list of numbers of captured objects by each neuron."
    
    "(in) som_pointer    - pointer to object of self-organized map."
    
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    package = ccore.som_get_awards(som_pointer);
    
    result = extract_pyclustering_package(package);
    return result;  
Ejemplo n.º 6
0
def cure_get_means(cure_data_pointer):
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    
    ccore.cure_get_means.restype = POINTER(pyclustering_package);
    package = ccore.cure_get_means(cure_data_pointer);
    
    result = extract_pyclustering_package(package);
    ccore.free_pyclustering_package(package);
    
    return result;
Ejemplo n.º 7
0
def som_get_awards(som_pointer):
    "Returns list of numbers of captured objects by each neuron."

    "(in) som_pointer    - pointer to object of self-organized map."

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.som_get_awards(som_pointer)

    result = extract_pyclustering_package(package)
    return result
Ejemplo n.º 8
0
def som_get_neighbors(som_pointer):
    "Returns list of indexes of neighbors of each neuron."

    "(in) som_pointer    - pointer to object of self-organized map."

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.som_get_neighbors(som_pointer)

    result = extract_pyclustering_package(package)
    return result
Ejemplo n.º 9
0
def kmedians(sample, centers, tolerance):
    pointer_data = create_pointer_data(sample)
    pointer_centers = create_pointer_data(centers)

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.kmedians_algorithm(pointer_data, pointer_centers,
                                       c_double(tolerance))

    result = extract_pyclustering_package(package)
    ccore.free_pyclustering_package(package)

    return result
Ejemplo n.º 10
0
def agglomerative_algorithm(data, number_clusters, link):
    pointer_data = create_pointer_data(data)

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.agglomerative_algorithm(pointer_data,
                                            c_size_t(number_clusters),
                                            c_size_t(link))

    result = extract_pyclustering_package(package)
    ccore.free_pyclustering_package(package)

    return result
Ejemplo n.º 11
0
def som_get_awards(som_pointer):
    """!
    @brief Returns list of amount of captured objects by each neuron.
    
    @param[in] som_pointer (c_pointer): pointer to object of self-organized map.
    
    """

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.som_get_awards(som_pointer)

    result = extract_pyclustering_package(package)
    return result
Ejemplo n.º 12
0
def dbscan(sample, eps, min_neighbors, return_noise=False):
    pointer_data = create_pointer_data(sample)

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.dbscan_algorithm(pointer_data, c_double(eps),
                                     c_size_t(min_neighbors))

    list_of_clusters = extract_pyclustering_package(package)
    ccore.free_pyclustering_package(package)

    noise = list_of_clusters[len(list_of_clusters) - 1]
    list_of_clusters.remove(noise)

    return (list_of_clusters, noise)
Ejemplo n.º 13
0
def som_get_neighbors(som_pointer):
    """!
    @brief Returns list of indexes of neighbors of each neuron.
    
    @param[in] som_pointer (c_pointer): pointer to object of self-organized map.
    
    """

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)

    ccore.som_get_neighbors.restype = POINTER(pyclustering_package)
    package = ccore.som_get_neighbors(som_pointer)

    result = extract_pyclustering_package(package)
    return result
Ejemplo n.º 14
0
def xmeans(sample, centers, kmax, tolerance, criterion):
    pointer_data = create_pointer_data(sample)
    pointer_centers = create_pointer_data(centers)

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)

    ccore.xmeans_algorithm.restype = POINTER(pyclustering_package)
    package = ccore.xmeans_algorithm(pointer_data, pointer_centers,
                                     c_size_t(kmax), c_double(tolerance),
                                     c_uint(criterion))

    result = extract_pyclustering_package(package)
    ccore.free_pyclustering_package(package)

    return result
Ejemplo n.º 15
0
def optics(sample, radius, minimum_neighbors, amount_clusters):
    amount = amount_clusters;
    if (amount is None):
        amount = 0;
        
    pointer_data = create_pointer_data(sample);
    
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    package = ccore.optics_algorithm(pointer_data, c_double(radius), c_size_t(minimum_neighbors), c_size_t(amount));

    results = extract_pyclustering_package(package);
    ccore.free_pyclustering_package(package);

    return (results[optics_package_indexer.OPTICS_PACKAGE_INDEX_CLUSTERS], 
            results[optics_package_indexer.OPTICS_PACKAGE_INDEX_NOISE], 
            results[optics_package_indexer.OPTICS_PACKAGE_INDEX_ORDERING],
            results[optics_package_indexer.OPTICS_PACKAGE_INDEX_RADIUS][0]);
Ejemplo n.º 16
0
def kmedoids(sample, medoids, tolerance):
    pointer_data = create_pointer_data(sample)

    c_medoids = (c_size_t * len(medoids))()
    c_medoids[:] = medoids[:]

    medoids_package = pyclustering_package()
    medoids_package.size = len(medoids)
    medoids_package.type = pyclustering_type_data.PYCLUSTERING_TYPE_SIZE_T
    medoids_package.data = cast(c_medoids, POINTER(c_void_p))

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    package = ccore.kmedoids_algorithm(pointer_data, pointer(medoids_package),
                                       c_double(tolerance))

    result = extract_pyclustering_package(package)
    ccore.free_pyclustering_package(package)

    return result