A collection of python code to perform research in optimization. The aim is to provide reusable components that can be quickly applied to machine learning problems.

Download OptWok-0.3.1.tar.gz.



  • python 2.5+
  • cvxopt 1.0+ (for solving linear and quadratic programs)
  • pythongrid (for using a cluster)
  • cython 0.14.1 (for speeding up kernel computations)


  • Download OptWok-0.3.1.tar.gz.
    Release notes (Optwok-0.3.1):
    • Minor bugfix release
  • Download OptWok-0.3.tar.gz.
    Release notes (Optwok-0.3):
    • Implemented Ellipsoidal Multiple Instance Learning
    • Included code for Gaussian Process Contextual Bandits
    • difference of convex functions algorithms for sparse classfication
  • Download OptWok-0.2.1.tar.gz.
    Release notes (OptWok-0.2.1):
    • Fixed missing multiclass module.
    • Slycot sources no longer distributed, using github project instead.

    Release notes (OptWok-0.2):
    • Use block coordinate descent to learn the kernel on outputs.
  • Download OptWok-0.1.tar.gz.
    Release notes (OptWok-0.1):
    • Initial release
    • Implements 8 methods, which is the combination of 2 losses and 4 regulariers. 6 are DCA methods.
      • hinge loss
      • ramp loss
      • l2, l1, l0, capped l1


  • Ellipsoidal Multiple Instance Learning. (webpage)
  • Learning sparse classifiers with Difference of Convex functions Algorithms, (journal)
  • Contextual Gaussian Process Bandit Optimization.
  • Learning Output Kernels with Block Coordinate Descent (webpage)
  • Learning sparse classifiers with difference of convex functions algorithms (webpage)