marker68 / simple-cluster

A simple implementation for clustering methods such as k-means, EM algorithm, ...

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Simple Clustering

What is this?

This is a simple implementation of the state-of-the-art clustering methods such as k-means. The implementations based on many papers that are mentioned below.

Features

Installation

Prerequisites

  • An Unix or Windows(Cygwin not native Windows with an MSVC compiler) Operating System. Tested on Mac OS X 10.9 and Ubuntu 14.04.
  • CMake 2.8 or newer. For UNIX users, check your CMake version in terminal by cmake -version.
  • An GNU C++ Compiler or clang compiler that support C++ 11.
  • OpenCV 2.4.8 or newer. This library is used for testing only. Just for comparing the performance with our implementations.

Build

We use CMake as the build system. On terminal,

$ git clone git@github.com:marker68/simple-cluster.git simple-cluster
$ cd ./simple-cluster
$ cmake -H. -Bbuild && cmake --build build -- -j3

This script will create the following files in your bin/ directory.

$ ls  bin
CMakeFiles  libgtest_main.a      test_kdtree  test_utilities
libgtest.a  libsimplecluster.so  test_kmeans
  • libgtest_main.a,libgtest.a: Google Testing Framework's static library files. We are using Google Test for testing.
  • libsimplecluster.{so,dylib,dll}: dynamic library(shared library) files for SimpleCluster.
  • test_utilities, test_kdtree, test_kmeans: test programs. See their source code in test/ directory to know how to use this library.

Documentation

This project uses Doxygen to generate its documentation. To generate the documentation:

$ cd ./doc
$ doxygen config.doxygen

The documentation files will be generated in HTML and LaTeX format.

Change log

  • At version 1.0(2014/10/05):
    • Supported k-means algorithm.
    • Supported CMake.
    • Supported only L2 metric distance.
    • Supported KD-tree with ANN search.
    • Supported GNU C++ Compiler and clang compiler.

About

A simple implementation for clustering methods such as k-means, EM algorithm, ...

License:Other


Languages

Language:C++ 85.0%Language:Shell 8.8%Language:Python 4.9%Language:CMake 1.1%Language:Makefile 0.1%Language:C 0.0%