bornrule

Classification with Born's rule


Keywords
classification, deep-learning, machine-learning
License
CNRI-Python-GPL-Compatible
Install
pip install bornrule==0.1.3

Documentation

Classification with Born's Rule

This repository implements the classifier proposed in:

Emanuele Guidotti and Alfio Ferrara. Text Classification with Born’s Rule. Advances in Neural Information Processing Systems, 2022.

[Paper] - [Slides] - [Poster]

Installation

pip install bornrule

Usage

Scikit-Learn

from bornrule import BornClassifier
  • Use it as any other sklearn classifier
  • Supports both dense and sparse input and GPU-accelerated computing via cupy
  • Documentation available here

PyTorch

from bornrule.torch import Born
  • Use it as any other torch layer
  • Supports real and complex-valued inputs. Outputs probabilities in the range [0, 1]
  • Documentation available here

SQL

from bornrule.sql import BornClassifierSQL
  • Use it for in-database classification
  • Supports inputs represented as json {feature: value, ...}
  • Documentation available here

Paper replication

All the results in the paper are obtained using Python 3.9 on a Google Cloud Virtual Machine equipped with CentOS 7, 12 vCPU Intel Cascade Lake 85 GB RAM, 1 GPU NVIDIA Tesla A100, and CUDA 11.5.

Install this package:

pip install bornrule==0.1.0

Install additional dependencies to replicate the paper:

pip install bs4==0.0.1 nltk==3.7 matplotlib==3.5.1

Install pytorch version 1.11.0 with GPU support. For CUDA 11.5 the command is:

pip install torch==1.11.0+cu115 -f https://download.pytorch.org/whl/torch_stable.html

Install cupy version 10.4.0. For CUDA 11.5 the command is:

pip install cupy-cuda115==10.4.0

Run the script nips.py:

python -u nips.py > nips.log &

The script generates a folder named results with all the results in the paper. Additional information are saved to the log file nips.log

Cite as

Please cite the following when using this software:

@inproceedings{guidotti2022text,
  title={Text Classification with Born's Rule},
  author={Emanuele Guidotti and Alfio Ferrara},
  booktitle={Advances in Neural Information Processing Systems},
  editor={Alice H. Oh and Alekh Agarwal and Danielle Belgrave and Kyunghyun Cho},
  year={2022},
  url={https://openreview.net/forum?id=sNcn-E3uPHA}
}