projection-pursuit
An implementation of multivariate projection pursuit regression and univariate classification
Science Score: 31.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.9%) to scientific vocabulary
Keywords
Repository
An implementation of multivariate projection pursuit regression and univariate classification
Basic Info
- Host: GitHub
- Owner: pavelkomarov
- License: bsd-3-clause
- Language: Python
- Default Branch: master
- Homepage: https://pavelkomarov.com/projection-pursuit/skpp.html
- Size: 2.01 MB
Statistics
- Stars: 37
- Watchers: 4
- Forks: 14
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
Projection Pursuit
This repository is home to a couple scikit-learn-compatible estimators based on Jerome Friedman's generalizations[1] of his and Werner Stuetzle's Projection Pursuit Regression algorithm[2][3]. A regressor capable of multivariate estimation and dimensionality reduction and a univariate classifier based on regression to a one-hot multivariate representation are included.
This repository is also meant to serve as a fairly pared-down example of how to use Github Actions, Coveralls, Sphinx, PyTest, how to deploy to PyPI and Github Pages, and how to create a Scikit-Learn Estimator that passes the sklearn checks and follows the PEP 8 style standard.
Installation and Usage
The package by itself comes with a single module containing the estimators. Before
installing the module you will need numpy, scipy, scikit-learn, and matplotlib.
To install the module execute:
shell
pip install projection-pursuit
or
shell
$ python setup.py install
If the installation is successful, you should be able to execute the following in Python: ```python
from skpp import ProjectionPursuitRegressor estimator = ProjectionPursuitRegressor() estimator.fit(np.arange(10).reshape(10, 1), np.arange(10)) ```
Sphinx is run via continuous integration to generate the API.
For a few usage examples, see the examples and benchmarks directories. For an intuition of what the learner is doing, try running viz_training_process.py. For comparisons to other learners and an intuition of why you might want to try PPR, try the benchmarks. For a deep dive in to the math and an explanation of exactly how and why this works, see math.pdf.
References
- Friedman, Jerome. (1985). "Classification and Multiple Regression Through Projection Pursuit." http://www.slac.stanford.edu/pubs/slacpubs/3750/slac-pub-3824.pdf
- Hastie, Tibshirani, & Friedman. (2016). The Elements of Statistical Learning 2nd Ed., section 11.2.
- (2017) Projection pursuit regression https://en.wikipedia.org/wiki/Projectionpursuitregression
Owner
- Name: Pavel Komarov
- Login: pavelkomarov
- Kind: user
- Location: Seattle, Salt Lake City, Melbourne FL, Atlanta, Mountain View, Bradenton
- Company: University of Washington, BioIntelliSense, Miim/SafeX/Banjo, Northrop Grumman, Georgia Institute of Technology, Microsoft
- Website: pavelkomarov.com
- Repositories: 26
- Profile: https://github.com/pavelkomarov
I like people, math, reading, getting lost in a problem, code when it isn't painful, skiing, climbing, riding my bike, music, and progress.
Citation (CITATION.md)
# Citing Projection-Pursuit
If you use this project in publications, please cite the following:
@misc{projection-pursuit,
title={Projection pursuit software},
author={Pavel Komarov},
url={http://www.github.com/pavelkomarov/projection-pursuit},
note={Version 1.1},
year={2024}}
If you wish to cite the mathematical explanation, use:
@article{projection-pursuit-math
title={The Gory Details},
author={Pavel Komarov},
url={https://pavelkomarov.com/projection-pursuit/math.pdf},
year={2018}}
GitHub Events
Total
- Watch event: 5
- Push event: 15
Last Year
- Watch event: 5
- Push event: 15
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Pavel Komarov | p****v@g****m | 214 |
Issues and Pull Requests
Last synced: 5 months ago
All Time
- Total issues: 2
- Total pull requests: 2
- Average time to close issues: 3 months
- Average time to close pull requests: 4 months
- Total issue authors: 2
- Total pull request authors: 2
- Average comments per issue: 1.0
- Average comments per pull request: 2.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 1
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- akulpillai (1)
- JohnMathews2 (1)
Pull Request Authors
- dependabot[bot] (2)
- seyi (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- matplotlib *
- numpy *
- pytest *
- scikit-learn *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- peaceiris/actions-gh-pages v3 composite
- tj-actions/changed-files v14.4 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite