A library for factorization machines and polynomial networks for classification and regression in Python.
Factorization machines and polynomial networks are machine learning models that can capture feature interaction (co-occurrence) through polynomial terms. Because feature interactions can be very sparse, it’s common to use low rank, factorized representations; this way, we can learn weights even for feature co-occurrences that haven’t been observed at training time.
Factorization machines are popular for recommender systems, as they are a generalization of matrix completion models.
This package provides:
Binary packages are not yet available.
The development version of polylearn can be installed from its git repository. In this case it is assumed that you have a working C++ compiler.
Obtain the sources by:
git clone https://github.com/scikit-learn-contrib/polylearn.git
or, if git is unavailable, download as a ZIP from GitHub.
Install the dependencies:
# via pip pip install numpy scipy scikit-learn nose pip install sklearn-contrib-lightning # via conda conda install numpy scipy scikit-learn nose conda install -c conda-forge sklearn-contrib-lightning
Build and install polylearn:
cd polylearn python setup.py build sudo python setup.py install
|||Mathieu Blondel, Masakazu Ishihata, Akinori Fujino, Naonori Ueda. Polynomial Networks and Factorization Machines: New Insights and Efficient Training Algorithms. In: Proc. of ICML 2016. [PDF]|
|||Steffen Rendle. Factorization machines. In: Proc. of IEEE ICDM 2010. [PDF]|
|||Roi Livni, Shai Shalev-Shwartz, Ohad Shamir. On the computational efficiency of training neural networks. In: Proc. of NIPS 2014. [arXiv]|