Documentation improvement for make_sparse_spd_matrix

### Describe the issue linked to the documentation

I have noticed that the make_sparse_spd_matrix function in scikit-learn's documentation states that it should return a sparse matrix. However, the function currently returns a dense numpy.ndarray. This seems to be a discrepancy between the documented behavior and the actual behavior of the function.

### Steps to Reproduce:

Import the make_sparse_spd_matrix function from scikit-learn.
Call the function with an appropriate input.
Observe that the function returns a dense numpy.ndarray instead of a sparse matrix.
Expected Results:
The documentation should accurately reflect the behavior of the make_sparse_spd_matrix function, specifying that it returns a dense numpy.ndarray.

### Actual Results:

The documentation states that the function should return a sparse matrix, but it returns a dense `numpy.ndarray`.

Versions:

```
Python: 3.11.3
scikit-learn: 1.4.dev0
numpy: 1.25.1
scipy: 1.11.1
```

Then:

To address the documentation discrepancy regarding the make_sparse_spd_matrix function in scikit-learn, you have a few potential alternatives/fixes:

- Option 1: Update the Documentation

You can propose an update to the documentation to accurately reflect the behavior of the make_sparse_spd_matrix function. In this case, the documentation should specify that the function returns a dense numpy.ndarray, not a sparse matrix.

Here's an example of how the documentation might be updated:

```
### make_sparse_spd_matrix(n_dim, alpha=0.95, smallest_coef=0.1, largest_coef=0.9, random_state=None)

Generate a dense positive definite symmetric matrix with sparse eigenvalues.

Parameters:
- `n_dim` (int): The dimension of the matrix to be generated.
- `alpha` (float, default=0.95): A parameter controlling the number of non-zero eigenvalues.
- `smallest_coef` (float, default=0.1): The smallest eigenvalue is set to `smallest_coef * largest_eigenvalue`.
- `largest_coef` (float, default=0.9): The largest eigenvalue is set to 1.
- `random_state` (int, RandomState instance, or None, default=None): Seed or random number generator for reproducibility.

Returns:
- `cov_matrix` (ndarray of shape (n_dim, n_dim)): A dense positive definite symmetric matrix.

### Example

from sklearn.datasets import make_sparse_spd_matrix

# Generate a 4x4 dense positive definite symmetric matrix
cov_matrix = make_sparse_spd_matrix(4)
```
This documentation update clarifies that the function returns a dense ndarray, not a sparse matrix.

Option 2: Create a New Function

Alternatively, if there's a strong need for a function that generates sparse positive definite symmetric matrices, you could propose creating a new function specifically for that purpose. This would involve implementing a new function with the desired behavior and updating the documentation accordingly.

For example, you could create a make_sparse_spd_matrix function and document it as follows:

```
### make_sparse_spd_matrix(n_dim, alpha=0.95, smallest_coef=0.1, largest_coef=0.9, random_state=None)

Generate a sparse positive definite symmetric matrix with sparse eigenvalues.

Parameters:
- `n_dim` (int): The dimension of the matrix to be generated.
- `alpha` (float, default=0.95): A parameter controlling the number of non-zero eigenvalues.
- `smallest_coef` (float, default=0.1): The smallest eigenvalue is set to `smallest_coef * largest_eigenvalue`.
- `largest_coef` (float, default=0.9): The largest eigenvalue is set to 1.
- `random_state` (int, RandomState instance, or None, default=None): Seed or random number generator for reproducibility.

Returns:
- `cov_matrix` (ndarray of shape (n_dim, n_dim)): A sparse positive definite symmetric matrix.

### Example

from sklearn.datasets import make_sparse_spd_matrix

# Generate a 4x4 sparse positive definite symmetric matrix
cov_matrix = make_sparse_spd_matrix(4)
```

This approach introduces a new function specifically for generating sparse matrices while preserving the existing function's behavior for dense matrices.

COMMENT:
I am closing this issue because this is a duplicate to https://github.com/scikit-learn/scikit-learn/issues/27359

We will discuss there how to solve the actual issue.

Thanks @davitacols for reporting.

Labels: Documentation, Needs Triage