sklearn.datasets.make_sparse_spd_matrix(dim=1, *, alpha=0.95, norm_diag=False, smallest_coef=0.1, largest_coef=0.9, sparse_format=None, random_state=None)[source]

Generate a sparse symmetric definite positive matrix.

Read more in the User Guide.

dimint, default=1

The size of the random matrix to generate.

alphafloat, default=0.95

The probability that a coefficient is zero (see notes). Larger values enforce more sparsity. The value should be in the range 0 and 1.

norm_diagbool, default=False

Whether to normalize the output matrix to make the leading diagonal elements all 1.

smallest_coeffloat, default=0.1

The value of the smallest coefficient between 0 and 1.

largest_coeffloat, default=0.9

The value of the largest coefficient between 0 and 1.

sparse_formatstr, default=None

String representing the output sparse format, such as ‘csc’, ‘csr’, etc. If None, return a dense numpy ndarray.

New in version 1.4.

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.

precndarray or sparse matrix of shape (dim, dim)

The generated matrix. If sparse_format=None, this would be an ndarray. Otherwise, this will be a sparse matrix of the specified format.

See also


Generate a random symmetric, positive-definite matrix.


The sparsity is actually imposed on the cholesky factor of the matrix. Thus alpha does not translate directly into the filling fraction of the matrix itself.

Examples using sklearn.datasets.make_sparse_spd_matrix

Sparse inverse covariance estimation

Sparse inverse covariance estimation