< return home

SMLR: Sparse Multinomial Logistic Regression

SMLR (pronounced “smaller”) is a software package for sparse classification. Its goal is to be simple both to understand and use, while maintaining speed, flexibility, and portability. The software package implements the SMLR algorithm of Balaji Krishnapuram, Mario Figueiredo, Larry Carin, and Alex Hartemink (see Documentation). SMLR learns a true multiclass classifier from training data and can be used either to evaluate the generalization performance of the learned classifier (through test data or cross-validation) or to apply the learned classifier to unlabeled data.

SMLR was developed by Jason Bosko and Matt Edwards under the direction of Alex Hartemink in the Department of Computer Science at Duke University.


  • Simple: SMLR strives to be easy to understand and use, so that users of all kinds can take advantage of its capabilities, regardless of their degree of familiarity with the mathematics behind it. It aims to accomplish this through a simple and intuitive graphical interface, with extensive explanations available along the way.
  • Fast: SMLR strives to be fast. Speed and efficiency were considered at all steps of development. With modern JIT Java compilers, SMLR should be fast enough for most applications. If even greater speed is required, SMLR can be compiled into native executable on various platforms, including Linux machines. Details about asymptotic complexity are available in the SMLR paper.
  • Flexible: SMLR strives to be flexible and configurable. The user can specify numerous options through the GUI (or on the command line). The code is organized modularly and is provided so that users who need to modify things even further are able to do so.
  • Portable: SMLR strives to be available on all the platforms that its users are likely to use. Because it is written in portable Java, it is available on any system that has a JRE.

The current version of SMLR is 1.1.0.

Licensing Overview

You may license SMLR either under a non-commercial use license or under a specially-negotiated non-exclusive commercial use license. You may choose which type of license is more appropriate for your needs. For strictly non-commercial use of the software, you may prefer to license the software under the non-commercial use license. The term ‘commercial use’ is defined broadly: if the software is used for commercial gain or to further any commercial purpose, a commercial use license is required. If you have any question about whether your use would be considered commercial, or if you would like to negotiate a non-exclusive commercial use license, please contact us.