Giter Club home page Giter Club logo

fastsparse's Introduction

fastSparse

This repository contains source code to our AISTATS 2022 paper:


1. Installation

To install this R package, please go to the installation folder and follow the installation instructions.


2. Application and Usage

We provide a toolkit for producing sparse and interpretable generalized linear and additive models for the binary classiciation task by solving the L0-regularized problems. The classiciation loss can be either the logistic loss or the exponential loss. The algorithms can produce high quality (swap 1-OPT) solutions and are generally 2 to 5 times faster than previous approaches.

2.1 R Interface

To understand how to use this R package, please go to the application_and_usage_R_interface_folder.

2.2 Python Interface

To understand how to use this package in a python environment, we provide a python wrapper to acheive this. Please go to the application_and_usage_python_interface_folder.

3. Experiment Replication

To replicate our experimental results shown in the paper, please go to the experiments folder.

4. Step Function Visualization

To reproduce the step function plots shown in the paper, please go to the step_function_visualization folder.

5. Citing Our Work

If you find our work useful in your research, please consider citing the following paper:

@inproceedings{liu2022fast,
  title={Fast Sparse Classification for Generalized Linear and Additive Models},
  author={Liu, Jiachang and Zhong, Chudi and Seltzer, Margo and Rudin, Cynthia},
  booktitle={International Conference on Artificial Intelligence and Statistics},
  pages={9304--9333},
  year={2022},
  organization={PMLR}
}

Acknowledgement: For this AISTATS camera ready code repository, we build our method based on L0Learn’s codebase, so that we could use its preprocessing steps, and the pipeline for running the full regularization path of $λ_0$ values. Therefore, the computational speedup shown in our paper solely comes from our new proposed algorithms.

We plan to build our own pipeline and further extend this work before pushing the project to CRAN. Right now you can install the project from GitHub directly. Our repository will be actively maintained, and the most updated version can be found at this current GitHub page.

Package Development ToDo List

  • Fix windows installation issues.
  • Add language specification to codeblock in README.
  • Add binarization preprocessing function and provide usage in jupyter notebook.

fastsparse's People

Contributors

jiachangliu avatar samgrosen avatar

Stargazers

Mukai Wang avatar Adam P. Johnson, MD, MPH avatar Kesshi Jordan avatar John avatar Johnny Godoy avatar Steven Clipman avatar Lloyd Hughes avatar Ali Akbar S. avatar Chris. avatar  avatar Santiago avatar Vishal Belsare avatar 爱可可-爱生活 avatar Jingyi Yang avatar Zachary Levonian avatar  avatar  avatar Xiyang (Sean) Hu avatar Hongteng avatar Pengyu Cheng avatar

Watchers

 avatar  avatar  avatar  avatar

fastsparse's Issues

perftools required?

Hello, I tried installing the R package from here using

remotes::install_github("interpretml/fastSparse", subdir = "FastSparse")

which had a compile error,

   profile.cpp:2:10:fatal error: tools/profiler.h: No such file or directory
       2 | #include "gperftools/profiler.h"
         |          ^~~~~~~~~~~~~~~~~~~~~~~
   compilation terminated.
   make: *** [/usr/lib/R/etc/Makeconf:177: profile.o] Error 1
   make: *** Waiting for unfinished jobs....
   In file included from include/MakeCD.h:10
                    from include/Grid1D.h:10
                    from include/Grid.h:9
                    from include/Interface.h:7
                    from Interface.cpp:1

I worked around it using

apt install libgoogle-perftools-dev libgoogle-perftools4

but I didn't see that mentioned in the README, so thought I would report this.

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.