Ejemplo n.º 1
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.º 2
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.º 3
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.º 4
0
def cure_algorithm(sample, number_clusters, number_represent_points, compression):
    pointer_data = create_pointer_data(sample);
    
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    ccore.cure_algorithm.restype = POINTER(c_void_p);
    cure_data_pointer = ccore.cure_algorithm(pointer_data, c_size_t(number_clusters), c_size_t(number_represent_points), c_double(compression));
    
    return cure_data_pointer;
Ejemplo n.º 5
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.º 6
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.º 7
0
def som_simulate(som_pointer, pattern):
    "Processes input pattern (no learining) and returns index of neuron-winner."
    "Using index of neuron winner catched object can be obtained using property capture_objects."
    
    "(in) som_pointer      - pointer to object of self-organized map."
    "(in) input_pattern    - input pattern."
        
    "Returns index of neuron-winner."
            
    pointer_data = create_pointer_data(pattern);
    
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    return ccore.som_simulate(som_pointer, pointer_data);
Ejemplo n.º 8
0
def som_simulate(som_pointer, pattern):
    "Processes input pattern (no learining) and returns index of neuron-winner."
    "Using index of neuron winner catched object can be obtained using property capture_objects."

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

    "Returns index of neuron-winner."

    pointer_data = create_pointer_data(pattern)

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    return ccore.som_simulate(som_pointer, pointer_data)
Ejemplo n.º 9
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.º 10
0
def som_train(som_pointer, data, epochs, autostop):
    """!
    @brief Trains self-organized feature map (SOM) using CCORE pyclustering library.

    @param[in] data (list): Input data - list of points where each point is represented by list of features, for example coordinates.
    @param[in] epochs (uint): Number of epochs for training.        
    @param[in] autostop (bool): Automatic termination of learining process when adaptation is not occurred.
    
    @return (uint) Number of learining iterations.
    
    """ 
    
    pointer_data = create_pointer_data(data);
    
    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64);
    return ccore.som_train(som_pointer, pointer_data, c_uint(epochs), autostop);
Ejemplo n.º 11
0
def som_train(som_pointer, data, epochs, autostop):
    """!
    @brief Trains self-organized feature map (SOM) using CCORE pyclustering library.

    @param[in] data (list): Input data - list of points where each point is represented by list of features, for example coordinates.
    @param[in] epochs (uint): Number of epochs for training.        
    @param[in] autostop (bool): Automatic termination of learining process when adaptation is not occurred.
    
    @return (uint) Number of learining iterations.
    
    """

    pointer_data = create_pointer_data(data)

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    return ccore.som_train(som_pointer, pointer_data, c_uint(epochs), autostop)
Ejemplo n.º 12
0
def som_simulate(som_pointer, pattern):
    """!
    @brief Processes input pattern (no learining) and returns index of neuron-winner.
    @details Using index of neuron winner catched object can be obtained using property capture_objects.
    
    @param[in] som_pointer (c_pointer): pointer to object of self-organized map.
    @param[in] pattern (list): input pattern.
    
    @return Returns index of neuron-winner.
    
    """

    pointer_data = create_pointer_data(pattern)

    ccore = cdll.LoadLibrary(PATH_DLL_CCORE_64)
    return ccore.som_simulate(som_pointer, pointer_data)
Ejemplo n.º 13
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.º 14
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