scikit-dimension
scikit-dimension is a (work-in-progress /!\) Python module for intrinsic dimension estimation built according to the scikit-learn API and distributed under the 3-Clause BSD license.
Installation
Using pip:
pip install git+https://github.com/j-bac/scikit-dimension.git
From source:
git clone https://github.com/j-bac/scikit-dimension
cd scikit-dimension
pip install .
Quick start
Local and global estimators can be used in this way:
import skdim
import numpy as np
#generate data : np.array (n_points x n_dim). Here a uniformly sampled 5-ball embedded in 10 dimensions
data = np.zeros((1000,10))
data[:,:5] = skdim.datasets.hyperBall(n = 1000, d = 5, radius = 1, random_state = 0)
#estimate global intrinsic dimension
danco = skdim.id.DANCo().fit(data)
#estimate local intrinsic dimension (dimension in k-nearest-neighborhoods around each point):
lpca_pw = skdim.id.lPCA().fit_pw(data,
n_neighbors = 100,
n_jobs = 1)
#get estimated intrinsic dimension
print(danco.dimension_, fishers.dimension_, np.mean(lpca_pw))
Please refer to the documentation for detailed API, examples and references