Code Monkey home page Code Monkey logo

mixmod

Mixmod is a software package for Model-Based supervised and unsupervised classification on qualitative, quantitative and mixed data.

Available components:

  • A package for R: Rmixmod
  • A module for Python: Pymixmod
  • A computational library: mixmodLib (C++)
  • A Graphical User Interface: mixmodGUI

Main Statistical functionalities:

  • Likelihood maximization with EM, CEM and SEM algorithm
  • Parsimonious models
    • 14 models for quantitative data (Gaussian mixture models)
    • 5 models for qualitative data (Multinomial mixture models)
    • 20 models for mixed data (quantitative/qualitative)
    • 8 specific models for High Dimension
  • Selection criteria: BIC, ICL, NEC, CV

Previous repository: https://gforge.inria.fr/projects/mixmod

Table of contents

Folder structure

  • Rmixmod R interface of the C++ mixmod library
  • mixmodLib C++ mixmod library
  • mixmodIOStream C++ library to manage IO
  • mixmodCLI Command Line Interface
  • Pymixmod Python interface
  • mixmodGUI unmaintained
  • mixmodMVC unmaintained

C++ components

C++ components

Requirements

Requirements for mixmoLib:

sudo apt install -y cmake libeigen3-dev

Extra requirement for mixmodIOStream

sudo apt install -y libxml++2.6-dev

Compilation

A main CMake file is used to compiled mixmodLib, mixmodIOStream and mixmodCLI.

Compilation options:

  • -DCMAKE_INSTALL_PREFIX: installation folder
  • -DCMAKE_BUILD_TYPE: Debug or Release (default)
  • -DCMAKE_CXX_FLAGS: extra c++ compilation flags (optional)
  • -DMIXMOD_BUILD_IOSTREAM: ON or OFF (default). Compile or not mixmodIOStream
  • -DMIXMOD_BUILD_CLI: ON or OFF (default). Compile or not mixmodCLI. It requires -DMIXMOD_BUILD_IOSTREAM=ON
  • -DMIXMOD_BUILD_EXAMPLES: ON or OFF (default)
  • -DMIXMOD_ENABLE_OPENMP: OFF or ON (default). Enable OpenMP or not.

Generate makefile:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/usr/local/ -DCMAKE_CXX_FLAGS="-Wall -Wextra -D_GLIBCXX_ASSERTIONS" ..

Compile:

make install -j2

Examples

See mixmodLib/EXAMPLES for some examples.

Rmixmod

R interface of the C++ mixmod library.

Rmixmod build status CRAN_Status_Badge Total Downloads Downloads

R Requirements

Install the following R packages in order to build Rmixmod:

install.packages(c("Rcpp", "RcppEigen", "devtools"))

Build

In a terminal, run:

./build_rmixmod.sh

It creates a directory named Rmixmod_[version] containing the package archive.

The package can be installed running:

R CMD INSTALL Rmixmod_[version]/Rmixmod_[version].tar.gz

and checked running:

R CMD check --as-cran Rmixmod_[version]/Rmixmod_[version].tar.gz

PyMixmod

Python interface of the C++ mixmod library.

Test PyMixmod

See the dedicated README.

Docs

See the doc folder to find the different paper about Rmixmod, a statistical documentation and a user guide for mixmod.

Citation

Lebret, R., Iovleff, S., Langrognet, F., Biernacki, C., Celeux, G., & Govaert, G. (2015). Rmixmod: The R Package of the Model-Based Unsupervised, Supervised, and Semi-Supervised Classification Mixmod Library. Journal of Statistical Software, 67(6), 1–29. https://doi.org/10.18637/jss.v067.i06

See CITATION.bib

License

mixmod is distributed under the GPL v3 license

Contributing

  • Use the .clang-format file to format the c++ code.

  • Use lintr to format the R code with the following .lintr file:

    linters: linters_with_defaults(
      line_length_linter(127),
      object_name_linter = NULL
      )
    

Mixmod's Projects

mixmod icon mixmod

Supervised, unsupervised and semi-supervised classification with mixture modelling

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.