Skip to main content

Toolbox for sufficient dimension reduction (SDR).

Project description

.. -*- mode: rst -*-
|Travis|_ |AppVeyor|_ |Coveralls|_ |CircleCI|_ |License|_

.. |Travis| image:: https://travis-ci.org/joshloyal/sliced.svg?branch=master
.. _Travis: https://travis-ci.org/joshloyal/sliced

.. |AppVeyor| image:: https://ci.appveyor.com/api/projects/status/54j060q1ukol1wnu/branch/master?svg=true
.. _AppVeyor: https://ci.appveyor.com/project/joshloyal/sliced/history

.. |Coveralls| image:: https://coveralls.io/repos/github/joshloyal/sliced/badge.svg?branch=master
.. _Coveralls: https://coveralls.io/github/joshloyal/sliced?branch=master

.. |CircleCI| image:: https://circleci.com/gh/joshloyal/sliced/tree/master.svg?style=svg
.. _CircleCI: https://circleci.com/gh/joshloyal/sliced/tree/master

.. |License| image:: https://img.shields.io/badge/License-MIT-blue.svg
.. _License: https://opensource.org/licenses/MIT

.. _scikit-learn: https://github.com/scikit-learn/scikit-learn

sliced
======
sliced is a python package offering a number of sufficient dimension reduction (SDR) techniques commonly used in high-dimensional datasets with a supervised target. It is compatible with scikit-learn_.


Algorithms supported:

- Sliced Inverse Regression (SIR) [1]_
- Sliced Average Variance Estimation (SAVE) [2]_

Documentation / Website: https://joshloyal.github.io/sliced/


Example
-------
Example that shows how to learn a one dimensional subspace from a dataset with ten features:

.. code-block:: python

from sliced.datasets import make_cubic
from sliced import SlicedInverseRegression

# load the 10-dimensional dataset
X, y = make_cubic(random_state=123)

# Set the options for SIR
sir = SlicedInverseRegression(n_components=1)

# fit the model
sir.fit(X, y)

# transform into the new subspace
X_sir = sir.transform(X)


Installation
------------

Dependencies
------------
sliced requires:

- Python (>= 2.7 or >= 3.4)
- NumPy (>= 1.8.2)
- SciPy (>= 0.13.3)
- Scikit-learn (>=0.17)

Additionally, to run examples, you need matplotlib(>=2.0.0).

Installation
------------
You need a working installation of numpy and scipy to install sliced. If you have a working installation of numpy and scipy, the easiest way to install sliced is using ``pip``::

pip install -U sliced

If you prefer, you can clone the repository and run the setup.py file. Use the following commands to get the copy from GitHub and install all the dependencies::

git clone https://github.com/joshloyal/sliced.git
cd sliced
pip install .

Or install using pip and GitHub::

pip install -U git+https://github.com/joshloyal/sliced.git

Testing
-------
After installation, you can use pytest to run the test suite via setup.py::

python setup.py test

References:
-----------
.. [1] : Li, K C. (1991)
"Sliced Inverse Regression for Dimension Reduction (with discussion)",
Journal of the American Statistical Association, 86, 316-342.
.. [2] : Shao, Y, Cook, RD and Weisberg, S (2007).
"Marginal Tests with Sliced Average Variance Estimation",
Biometrika, 94, 285-296.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sliced-0.3.0.tar.gz (895.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page