sklearn.datasets.make_swiss_roll(n_samples=100, *, noise=0.0, random_state=None, hole=False)[source]#

Generate a swiss roll dataset.

Read more in the User Guide.

n_samplesint, default=100

The number of sample points on the Swiss Roll.

noisefloat, default=0.0

The standard deviation of the gaussian noise.

random_stateint, RandomState instance or None, default=None

Determines random number generation for dataset creation. Pass an int for reproducible output across multiple function calls. See Glossary.

holebool, default=False

If True generates the swiss roll with hole dataset.

Xndarray of shape (n_samples, 3)

The points.

tndarray of shape (n_samples,)

The univariate position of the sample according to the main dimension of the points in the manifold.


The algorithm is from Marsland [1].



S. Marsland, “Machine Learning: An Algorithmic Perspective”, 2nd edition, Chapter 6, 2014.


>>> from sklearn.datasets import make_swiss_roll
>>> X, t = make_swiss_roll(noise=0.05, random_state=0)
>>> X.shape
(100, 3)
>>> t.shape