Giter VIP home page Giter VIP logo

annoviko / pyclustering Goto Github PK

View Code? Open in Web Editor NEW
1.1K 41.0 251.0 34.24 MB

pyclustering is a Python, C++ data mining library.

Home Page: https://pyclustering.github.io/

License: BSD 3-Clause "New" or "Revised" License

C++ 36.97% Python 60.57% C 0.60% Makefile 0.30% Shell 0.48% PowerShell 0.37% TeX 0.61% CMake 0.11%
clustering oscillatory-networks data-mining neural-networks python3 c-plus-plus machine-learning algorithms data-science python

pyclustering's People

Contributors

abhishek792 avatar adavidzh avatar alexeyreshetnyak avatar annoviko avatar bill2462 avatar mxbonn avatar narinemanukyan avatar polladin avatar quintasan avatar romanimm avatar tirkarthi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyclustering's Issues

[samples] special format for graphs

Special format should be used for graph representation.
Mandatory fields:

  • Graph description (matrix or list representation).
    Optional fields:
  • Graph representation in the space.

[nnet.plsom] Infinite loop

Hang (infinite loop) has been detected in test 'testWinners(self)' that is created for the PLSOM (tests.py) and that is commented right now.

!NOTE. There are no contradictions with specification!

Fragment of the test:
sample = read_sample('../../../Samples/SampleSimple3.txt');
network = plsom(5, 5, sample, stucture);
network.train();

[antmeans] Examples don't run

It's not possible to run examples for antmeans algorithm: [antmeans.examples].

Traceback (most recent call last):
File "C:\Archive Files\PhD\PyClustering\antmeans\examples.py", line 10, in
import ant_clustering_with_mean as ant_clustering
ImportError: No module named 'ant_clustering_with_mean'

[gcolor] Graph coloring using oscillatory network

Module that will contain modules related to solving graph coloring problem should be implemented. The first step is implementation of the algorithm based on the oscillatory neural network that based on the Kuramoto model. Unit-tests and examples should be implemented.

[ants] Unit-tests should be implemented

  • Unit-tests should be implemented at least for easiest samples from Sample/ (SampleSimple1, SampleSimple2, etc.).
  • Existed unit-test should be implemented.

[pyclustering.cluster.ema] Expectation maximization algorithm

Introduction
Clustering algorithm EMA (Expectation Maximization Algorithm) should be implemented. EMA is an iterative method to find maximum likelihood or maximum a posteriori (MAP) estimates of parameters in statistical models.

EMA should be based on GMM (Gaussian Mixture Model) that should be also implemented if it is not available in 'scipy' library.

Resources

  1. Theory: http://idiom.ucsd.edu/~rlevy/pmsl_textbook/chapters/pmsl_3.pdf
  2. Youtube: https://www.youtube.com/watch?v=qMTuMa86NzU
  3. Article: http://www.ics.uci.edu/~smyth/courses/cs274/notes/EMnotes.pdf
  4. Bilmes, Jeff. "A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models".
  5. EM algorithm and variants: an informal tutorial by Alexis Roche.

Description
Expectation maximization algorithm should be implemented with doxygen documentation:
pyclustering/cluster/ema.py

Unit-tests:
pyclustering/cluster/tests/unit/ut_ema.py

Examples:
pyclustering/cluster/examples/ema_examples.py

An example of interface of EMA algorithm:

class ema:
    def __init__(self, data, other_paeameters):
        # Initialization of the instance algorithm.

    def process(self):
        # Implementation.

    def get_clusters(self):
        # Returns clusters.

    def get_probabilities(self):
        # Returns belonging probabilities.

[support] Separate dynamic representation

New method or existed should be created/modified for representation dynamics. Separation should be configurable, for example, [0, 2, 6] on the first subplot, [1, 3, 5] on the second. If configuration is not specified then each dynamic of each object should be represented separately.

[nnet.legion] Self-oscillation without stimulations

The problem is that noise is positive, but it should be negative. But in this case proper configuration for examples should be used (founded).

In some way network works properly, except self-oscillations, and the problem can be described as the contradiction with the articles. The fix should be committed when proper configuration will be founded.

[dbscan] Final number of objects can less

Final number of objects that are allocated into clusters (include points that has been marked as noise) can be less than real number of points.

Test scenario:
dbscan SampleSimple1.txt 0.5 4

  • templateLengthProcessData('../Samples/SampleSimple1.txt', 0.5, 0, 10);
  • templateLengthProcessData('../Samples/SampleSimple3.txt', 1, 0, 20);

[nnet.plsom] Adaptation of unit-tests

Several unit-tests are not applicable for the PLSOM algorithm. The uni-tests are used for testing SOM. Implementation of PLSOM is performed in line article.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.