Kepler Mapper

Kepler Mapper: A flexible Python implementation of the Mapper algorithm. - Published in JOSS (2019)

https://github.com/scikit-tda/kepler-mapper

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    1 of 29 committers (3.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

data-visualization hacktoberfest kepler-mapper mapper-algorithm python tda topological-data-analysis visualization

Keywords from Contributors

homology persistent-homology ripser topology

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 62% confidence
Last synced: 6 months ago · JSON representation

Repository

Kepler Mapper: A flexible Python implementation of the Mapper algorithm.

Basic Info
Statistics
  • Stars: 642
  • Watchers: 40
  • Forks: 183
  • Open Issues: 33
  • Releases: 14
Topics
data-visualization hacktoberfest kepler-mapper mapper-algorithm python tda topological-data-analysis visualization
Created over 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Authors Zenodo

README.md

PyPI version Downloads Build Status Codecov DOI DOI

KeplerMapper

Nature uses as little as possible of anything. - Johannes Kepler

This is a Python implementation of the TDA Mapper algorithm for visualization of high-dimensional data. For complete documentation, see https://kepler-mapper.scikit-tda.org.

KeplerMapper employs approaches based on the Mapper algorithm (Singh et al.) as first described in the paper "Topological Methods for the Analysis of High Dimensional Data Sets and 3D Object Recognition".

KeplerMapper can make use of Scikit-Learn API compatible cluster and scaling algorithms.

Install

Dependencies

KeplerMapper requires:

  • Python (>= 3.6)
  • NumPy
  • Scikit-learn

Using the plotly visualizations requires a few extra libraries:

  • igraph
  • Plotly
  • Ipywidgets

Additionally, running some of the examples requires:

  • matplotlib
  • umap-learn

Installation

Install KeplerMapper with pip:

pip install kmapper

To install from source:

git clone https://github.com/MLWave/kepler-mapper cd kepler-mapper pip install -e .

Usage

KeplerMapper adopts the scikit-learn API as much as possible, so it should feel very familiar to anyone who has used these libraries.

Python code

```python

Import the class

import kmapper as km

Some sample data

from sklearn import datasets data, labels = datasets.makecircles(nsamples=5000, noise=0.03, factor=0.3)

Initialize

mapper = km.KeplerMapper(verbose=1)

Fit to and transform the data

projecteddata = mapper.fittransform(data, projection=[0,1]) # X-Y axis

Create dictionary called 'graph' with nodes, edges and meta-information

graph = mapper.map(projecteddata, data, cover=km.Cover(ncubes=10))

Visualize it

mapper.visualize(graph, pathhtml="makecircleskeplermapperoutput.html", title="makecircles(nsamples=5000, noise=0.03, factor=0.3)") ```

Disclaimer

Standard MIT disclaimer applies, see DISCLAIMER.md for full text. Development status is Alpha.

How to cite

To credit KeplerMapper in your work: https://kepler-mapper.scikit-tda.org/en/latest/#citations

Owner

  • Name: Scikit-TDA
  • Login: scikit-tda
  • Kind: organization

Topological Data Analysis for the Python ecosystem.

JOSS Publication

Kepler Mapper: A flexible Python implementation of the Mapper algorithm.
Published
October 17, 2019
Volume 4, Issue 42, Page 1315
Authors
Hendrik Jacob van Veen
Nubank
Nathaniel Saul ORCID
Department of Mathematics and Statistics, Washington State University Vancouver
David Eargle ORCID
Leeds School of Business, University of Colorado Boulder
Sam W. Mangham ORCID
Department of Electronics & Computer Science, University of Southampton, Southampton, SO17 1BJ, UK
Editor
Leonardo Uieda ORCID
Tags
Mapper Topological Data Analysis

GitHub Events

Total
  • Issues event: 1
  • Watch event: 16
  • Issue comment event: 1
  • Pull request event: 1
  • Fork event: 3
  • Create event: 2
Last Year
  • Issues event: 1
  • Watch event: 16
  • Issue comment event: 1
  • Pull request event: 1
  • Fork event: 3
  • Create event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 487
  • Total Committers: 29
  • Avg Commits per committer: 16.793
  • Development Distribution Score (DDS): 0.46
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Nathaniel Saul n****t@s****m 263
Dave Eargle d****e@d****m 56
MLWave p****t@g****m 46
MLWave i****o@m****m 26
Lee Steinberg l****4@s****m 20
MLWave h****n@H****l 18
Gabriel Altay g****l@k****m 9
Gabriel g****y@g****m 6
Sam Mangham m****m@g****m 6
Ethan Rooke e****n@r****e 5
Chris M y****u@e****m 3
Leonardo Uieda l****a@g****m 3
Michael Catanzaro c****j@p****e 3
Emerson Escolar 3****r 2
gabriel g****d@g****m 2
christian parsons c****s@g****m 2
Mikael Vejdemo-Johansson m****l@j****g 2
Math & Python e****r@g****m 2
Karin Sasaki k****1@g****m 2
Mikael Vejdemo-Johansson m****e@g****m 2
A. Rygin 4****e 1
Mohamed Zahran m****1@g****m 1
Nathaniel Saul n****l@p****v 1
Mark Hale m****e@p****g 1
Nathaniel Saul n****t@r****m 1
PEP8 Speaks p****s@g****m 1
PJ Trainor t****j@g****m 1
Roj j****v@l****m 1
Tor Erik Larsen t****s@p****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 59
  • Total pull requests: 52
  • Average time to close issues: 10 months
  • Average time to close pull requests: 20 days
  • Total issue authors: 39
  • Total pull request authors: 16
  • Average comments per issue: 3.49
  • Average comments per pull request: 3.48
  • Merged pull requests: 42
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • deargle (6)
  • karinsasaki (5)
  • sauln (4)
  • erooke (3)
  • mlnjsh (3)
  • MLWave (2)
  • yanuarkrisna (2)
  • holmbuar (2)
  • andreacortis (2)
  • retdop (1)
  • el-burrito1 (1)
  • cmottac (1)
  • FlorianLeRoyKili (1)
  • mhmism (1)
  • xgao32 (1)
Pull Request Authors
  • deargle (19)
  • sauln (11)
  • catanzaromj (5)
  • erooke (4)
  • pulquero (3)
  • wingenium-nagesh (2)
  • ulriks9 (2)
  • blue-j (2)
  • galtay (2)
  • justin5927 (1)
  • cmorph1 (1)
  • leemojiang (1)
  • MandaloreUltimate (1)
  • wjdrlduq1234 (1)
  • dependabot[bot] (1)
Top Labels
Issue Labels
bug (4) good first issue (2) docs (1) help wanted (1)
Pull Request Labels
bug (2) docs (2) hacktoberfest-accepted (1) dependencies (1) github_actions (1)

Dependencies

setup.py pypi
  • scikit-learn *
.github/workflows/build_and_deploy.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/upload-artifact v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/python-test.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite