Software

I am the main developer of the following software toolkits for interpretable machine learning:

  1. L0Learn: Fast, approximate algorithms for L0-regularized learning. Github. CRAN. Vignette.
        Handles sparse regression and classification problems, in times comparable to the fast Lasso solvers.
        Downloaded over 38,000 times.
        Based on “Fast Best Subset Selection: Coordinate Descent and Local Combinatorial Optimization Algorithms”. Link.

  2. L0BnB: A specialized exact algorithm for L0-regularized regression, based on branch-and-bound. Github. PyPI.
        Can solve instances with 10^7 features to optimality, in minutes to hours (assuming highly sparse solutions).
        Downloaded over 9,000 times.
        Based on “Sparse Regression at Scale: Branch-and-Bound rooted in First-Order Optimization”. Link.

  3. hierScale: A scalable convex optimization algorithm for regression with pairwise interactions. Github. PyPI.
        Based on “Learning Hierarchical Interactions at Scale: A Convex Optimization Approach”. Link.

  4. Tree Ensemble Layer: A layer of differentiable trees that can be used within neural networks. Github.
        The layer can speed up and enhance interpretability in neural networks.
        Joint work with Google collaborators.
        Based on “The Tree Ensemble Layer: Differentiability meets Conditional Computation”. Link.