Skip to content

❗ This is a read-only mirror of the CRAN R package repository. MapperAlgo — Topological Data Analysis: Mapper Algorithm. Homepage: https://github.com/TDA-R/MapperAlgo Report bugs for this package: https://github.com/TDA-R/MapperAlgo/issues

License

Notifications You must be signed in to change notification settings

cran/MapperAlgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Topological Data Analysis: Mapper Algorithm

CRAN status mysql

Document

For a more detailed explanation for this package, this document will keep update for better understanding the source code. I've written some articles on Medium, which you can find here to get familiar with topological data analysis.

Get started quickly

Mapper Step visualize from Skaf et al.

Mapper is basically a three-step process:

1. Cover: This step splits the data into overlapping intervals and creates a cover for the data.

2. Cluster: This step clusters the data points in each interval the cover creates.

3. Simplicial Complex: This step combines the two steps above, which connects the data points in the cover to create a simplicial complex.

you can know more about the basic here: Chazal, F., & Michel, B. (2021). An introduction to topological data analysis: fundamental and practical aspects for data scientists. Frontiers in artificial intelligence, 4, 667963.

Example

data <- get(data("iris"))

Mapper <- MapperAlgo(
  data[,1:4],
  filter_values = data[,1:3],
  percent_overlap = 30,
  methods = "kmeans",
  method_params = list(max_kmeans_clusters = 2),
  cover_type = 'stride',
  interval_width = 1,
  num_cores = 12
  )

MapperPlotter(Mapper, label=data$Species, original_data=data, avg=FALSE, use_embedding=FALSE)
Iris
Figure 1
IrisMapper
Figure 2

Playground (Frontend Beta)

The frontend is still under testing but has been deployed to tda frontend. By integrating webR, it executes the R-based MapperAlgo algorithm directly in the browser via the package.

To visualize your own data, upload a JSON file formatted as shown below. The cc is optional; you can ignore it unless you have pre-calculated labels. The iris example may take a moment to load, so feel free to upload your own file without waiting!

library(jsonlite)

export_data <- list(
  adjacency = Mapper$adjacency,
  num_vertices = Mapper$num_vertices,
  level_of_vertex = Mapper$level_of_vertex,
  points_in_vertex = Mapper$points_in_vertex,
  original_data = as.data.frame(all_features),
  # This is the label that already calculated for each node
  cc = tibble(
    eigen_centrality = e_scores,
    betweenness = b_scores
  )
)
write(toJSON(export_data, auto_unbox = TRUE), "~/desktop/mnist.json")

Mapper

About

❗ This is a read-only mirror of the CRAN R package repository. MapperAlgo — Topological Data Analysis: Mapper Algorithm. Homepage: https://github.com/TDA-R/MapperAlgo Report bugs for this package: https://github.com/TDA-R/MapperAlgo/issues

Resources

License

Stars

Watchers

Forks

Packages

No packages published