Talip7/scikit-learn-issues-multilabel huggingface dataset:
[PLSRegression] The standard scikit interface should have the argument in lowercase "y" not uppercase "Y"

### Describe the bug

The standard scikit interface should have the argument in lowercase "y" not uppercase "Y". Would you please modify it?

[[https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py#L622](https://urldefense.com/v3/__https:/github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py*L622__;Iw!!OzAIPA!HpZIZynDig4VRjHXL6okypqqpe44CBO0ltsalU3v7vfpWdUqghoJSzun4kIJK72EuyflVXKZZEcLic5jD0n-KvEP$)](https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py#L622)

### Steps/Code to Reproduce

Please see the above link.

### Expected Results

Change the  lowercase "y" instead of uppercase "Y".

### Actual Results

 lowercase "y"

### Versions

```shell
Scikit-learn 1.3.0
```

COMMENT:
For consistency, I am +1 with using `y` everywhere as long as the deprecation process is not too annoying. Concretely:

- `pls.fit(X_train, Y=y_train)` warns
- `pls.fit(X_train, y_train)` does not warn
- `pls.fit(X_train, y=y_train)` does not warn

(I think the above behavior is possible with signature `fit(self, X, y, Y=None)`)

Labels: Moderate, API, help wanted
[PLSRegression] The standard scikit interface should have the argument in lowercase "y" not uppercase "Y"

### Describe the bug

The standard scikit interface should have the argument in lowercase "y" not uppercase "Y". Would you please modify it?

[[https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py#L622](https://urldefense.com/v3/__https:/github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py*L622__;Iw!!OzAIPA!HpZIZynDig4VRjHXL6okypqqpe44CBO0ltsalU3v7vfpWdUqghoJSzun4kIJK72EuyflVXKZZEcLic5jD0n-KvEP$)](https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py#L622)

### Steps/Code to Reproduce

Please see the above link.

### Expected Results

Change the  lowercase "y" instead of uppercase "Y".

### Actual Results

 lowercase "y"

### Versions

```shell
Scikit-learn 1.3.0
```

COMMENT:
We have several folks in favor of deprecating and moving to `y` everywhere, with nobody in opposition. I'm going to go ahead and mark this as `help wanted` :)

Labels: Moderate, API, help wanted
[PLSRegression] The standard scikit interface should have the argument in lowercase "y" not uppercase "Y"

### Describe the bug

The standard scikit interface should have the argument in lowercase "y" not uppercase "Y". Would you please modify it?

[[https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py#L622](https://urldefense.com/v3/__https:/github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py*L622__;Iw!!OzAIPA!HpZIZynDig4VRjHXL6okypqqpe44CBO0ltsalU3v7vfpWdUqghoJSzun4kIJK72EuyflVXKZZEcLic5jD0n-KvEP$)](https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/cross_decomposition/_pls.py#L622)

### Steps/Code to Reproduce

Please see the above link.

### Expected Results

Change the  lowercase "y" instead of uppercase "Y".

### Actual Results

 lowercase "y"

### Versions

```shell
Scikit-learn 1.3.0
```

COMMENT:
+1 with changing the name of `Y` as well. Classification accept multilabel-indicator and we don't use `Y` for those.

Labels: Moderate, API, help wanted
Kmeans : Different cluster result with same random_state beetwen two version 0.22.2 & 1.2.2

### Describe the bug

Hello everyone,
I'm currently working on a clustering problem. To ensure result reproducibility, we initially set the random_state parameter in KMeans() to 0. However, after updating scikit-learn from **version 0.22.2 to version 1.2.2**, i encountered an unexpected issue. When i **ran the same code with the same dataset** , **the results differed from our previous run**. We are uncertain about the reasons behind this inconsistency and have been **unable to reproduce the initial result**.

### Steps/Code to Reproduce

model = KMeans(n_clusters=5, init='k-means++', tol=0.0001, random_state=0, copy_x=True, algorithm='auto' )

### Expected Results

Version 0.22.2  :  
            Numer of cluster = 5

            Cluster 1 | Cluster 2 | Cluster 3 | Cluster 4| cluster 5
                    10| 20| 12| 30|45

Version 1.2.2  :  
            Numer of cluster = 5

            Cluster 1 | Cluster 2 | Cluster 3 | Cluster 4| cluster 5
                    10| 20| 12| 30|45

### Actual Results

Version 0.22.2  :  
            Numer of cluster = 5

            Cluster 1 | Cluster 2 | Cluster 3 | Cluster 4| cluster 5
                    10| 5| 6| 14|5

Version 1.2.2  :  
            Numer of cluster = 5

            Cluster 1 | Cluster 2 | Cluster 3 | Cluster 4| cluster 5
                    3| 7| 20| 8|2

### Versions

```shell
Version : 1.2.2
```

COMMENT:
This is not a surprise since we did quite a lot of work on `KMeans` since 0.22 which causes changes in the deterministic part. We documented those changes overtime. To give an example: https://scikit-learn.org/dev/whats_new/v0.23.html#id3

Labels: Bug, Needs Triage
Make sure `set_output` is not rendered by sphinx when disabled

xref: https://github.com/scikit-learn/scikit-learn/pull/26940#issue-1827735779

When `auto_wrap_output_keys=None`, there shouldn't be any documented `set_output` method since it doesn't exist.

cc @thomasjpfan

COMMENT:
This issue was supposed to be solved by #31928, but I still see the `set_output` method in the [`LabelEncoder` documentation](https://scikit-learn.org/dev/modules/generated/sklearn.preprocessing.LabelEncoder.html).

Labels: Documentation
Make sure `set_output` is not rendered by sphinx when disabled

xref: https://github.com/scikit-learn/scikit-learn/pull/26940#issue-1827735779

When `auto_wrap_output_keys=None`, there shouldn't be any documented `set_output` method since it doesn't exist.

cc @thomasjpfan

COMMENT:
I was not aware of #26941 when reviewing #31928. As I investigated this further, I noticed the following:

Before #31928:
```python
from sklearn.preprocessing import LabelEncoder

hasattr(LabelEncoder, "set_output") # True

hasattr(LabelEncoder(), "set_output") # False

"set_output" in dir(LabelEncoder) # True

"set_output" in dir(LabelEncoder()) # True
```

After #31928:
```python
"set_output" in dir(LabelEncoder()) # False
```
and the rest remains the same.

I believe the root cause is <i>class vs. instance</i>: #31928 addressed the mismatch of `__dir__` and `hasattr` on the instance level (`LabelEncoder()`), while `sphinx` generates documentation by looking at attributes and methods from the class (`LabelEncoder`).

That said, I think #31928 is still valid. We just didn’t expect it to leave the rendered docs unchanged. To fix this, the `sphinx` configuration likely needs updating, though I haven't explored that yet.

Labels: Documentation
Make sure `set_output` is not rendered by sphinx when disabled

xref: https://github.com/scikit-learn/scikit-learn/pull/26940#issue-1827735779

When `auto_wrap_output_keys=None`, there shouldn't be any documented `set_output` method since it doesn't exist.

cc @thomasjpfan

COMMENT:
The mechanism used to decide about `set_output` is related to meta-classe, so I think Virgil's analysis is correct (instances vs classes). 

> That said, I think https://github.com/scikit-learn/scikit-learn/pull/31928 is still valid. We just didn’t expect it to leave the rendered docs unchanged. To fix this, the sphinx configuration likely needs updating, though I haven't explored that yet.

Agreed. There are other "dynamic" attributes which that PR solves. I'm not sure how to solve the `set_output` problem :-/

Labels: Documentation
Create a way to transform the target variable within a custom sklearn transformer.

### Describe the workflow you want to enable

It is not uncommon that the target variable in the raw dataset is not in the ideal format to be fitted in the estimator:
  - In multiclass classification, we may need to apply a custom encoding.
  - In regression, we may want to scale the target.

It is critical (good practice) to keep all data transformation within the sklearn pipeline. This will ensure that the model 
can accept the raw features and target as input when performing streaming predictions. If all transformations are not concentrated in the sklearn pipeline, the input data for online requests will need to pass through a preprocessing pipeline first adding a lot of unnecessary complexity. If the transformation in this preprocessing pipeline needs to be stateful (learn its parameter from the training dataset through fit) the creation of such preprocessing pipeline becomes even more complicated.

### Describe your proposed solution

Enable a way for a Transformer to be able to change the target variable and return it forward as y.
The default behavior for a transformation should not change nor return why:
   - If the transformer doesn't return y (default) then can assume that y did not change.
   - If it returns X, y we should replace the old y with the returned y.

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

_No response_

COMMENT:
For transforming regression targets there is [TransformedTargetRegressor](https://scikit-learn.org/stable/modules/generated/sklearn.compose.TransformedTargetRegressor.html#sklearn.compose.TransformedTargetRegressor).

For generically transforming `y` there is already an open issue: https://github.com/scikit-learn/scikit-learn/issues/4143. According to our [triaging guidelines](https://scikit-learn.org/dev/developers/bug_triaging.html#bug-triaging-and-issue-curation), I am closing this issue as a duplicate. You are welcome to continue the discussion in #4143.

Labels: New Feature, Needs Triage
Confusion in K-means Initialization of Gaussian Mixture Model

### Describe the issue linked to the documentation

In 'scikit-learn/sklearn/mixture /_base.py' line 115, when you refers to initialize the model parameters by K-means algorithm (note that not K-means++), you use the function KMeans from sklearn.cluster with default settings. However, when checking 'scikit-learn/sklearn/cluster /_kmeans.py' line 1390, the default 'init' setting of KMeans is 'kmeans++'. So there might be a confusion.

### Suggest a potential alternative/fix

_No response_

COMMENT:
Nop there is no confusion. There is a `kmeans` and `kmeans++` confusion done with two different initialization:

https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/mixture/_base.py#L112-L120

https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/mixture/_base.py#L131-L138

So it looks fine and aligned with the documentation.

`KMeans` corresponds to a kmeans++ init plus a bunch of iterations while kmeans++ will not make any iterations.

Labels: Documentation, Needs Triage
Importing `sklearn` forks many processes

### Describe the bug

I was trying to investigate why I had a lot of processes being created when running a code of mine. After a lot of investigation, I noticed that just by importing `sklearn` was enough to see a lot of processes in `htop`.

### Steps/Code to Reproduce

```python
import sklearn

if __name__ == "__main__":
    for i in range(1000):
        import time
        time.sleep(1)
```

### Expected Results

Nothing like that should happen.

### Actual Results

![Screenshot_20230728_145623](https://github.com/scikit-learn/scikit-learn/assets/3669312/01e1b7d0-8a85-4677-b8eb-fc7b9baed2b0)


### Versions

```shell
System:
    python: 3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:22:55)  [GCC 10.3.0]
executable: /home/fernando/phd_workspace/future-shot/venv/bin/python
   machine: Linux-5.15.120-1-MANJARO-x86_64-with-glibc2.37
Python dependencies:
      sklearn: 1.3.0
          pip: 23.0
   setuptools: 67.1.0
        numpy: 1.24.2
        scipy: 1.10.1
       Cython: None
       pandas: 1.5.3
   matplotlib: 3.7.1
       joblib: 1.2.0
threadpoolctl: 3.1.0
Built with OpenMP: True
threadpoolctl info:
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/numpy.libs/libopenblas64_p-r0-15028c96.3.21.so
        version: 0.3.21
threading_layer: pthreads
   architecture: SkylakeX
    num_threads: 16
       user_api: openmp
   internal_api: openmp
         prefix: libgomp
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None
    num_threads: 16
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/scipy.libs/libopenblasp-r0-41284840.3.18.so
        version: 0.3.18
threading_layer: pthreads
   architecture: Prescott
    num_threads: 16
```

COMMENT:
I can't reproduce.

Labels: Bug, Needs Triage
Importing `sklearn` forks many processes

### Describe the bug

I was trying to investigate why I had a lot of processes being created when running a code of mine. After a lot of investigation, I noticed that just by importing `sklearn` was enough to see a lot of processes in `htop`.

### Steps/Code to Reproduce

```python
import sklearn

if __name__ == "__main__":
    for i in range(1000):
        import time
        time.sleep(1)
```

### Expected Results

Nothing like that should happen.

### Actual Results

![Screenshot_20230728_145623](https://github.com/scikit-learn/scikit-learn/assets/3669312/01e1b7d0-8a85-4677-b8eb-fc7b9baed2b0)


### Versions

```shell
System:
    python: 3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:22:55)  [GCC 10.3.0]
executable: /home/fernando/phd_workspace/future-shot/venv/bin/python
   machine: Linux-5.15.120-1-MANJARO-x86_64-with-glibc2.37
Python dependencies:
      sklearn: 1.3.0
          pip: 23.0
   setuptools: 67.1.0
        numpy: 1.24.2
        scipy: 1.10.1
       Cython: None
       pandas: 1.5.3
   matplotlib: 3.7.1
       joblib: 1.2.0
threadpoolctl: 3.1.0
Built with OpenMP: True
threadpoolctl info:
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/numpy.libs/libopenblas64_p-r0-15028c96.3.21.so
        version: 0.3.21
threading_layer: pthreads
   architecture: SkylakeX
    num_threads: 16
       user_api: openmp
   internal_api: openmp
         prefix: libgomp
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None
    num_threads: 16
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/scipy.libs/libopenblasp-r0-41284840.3.18.so
        version: 0.3.18
threading_layer: pthreads
   architecture: Prescott
    num_threads: 16
```

COMMENT:
Cannot reproduce on MacOs as well.

Labels: Bug, Needs Triage
Importing `sklearn` forks many processes

### Describe the bug

I was trying to investigate why I had a lot of processes being created when running a code of mine. After a lot of investigation, I noticed that just by importing `sklearn` was enough to see a lot of processes in `htop`.

### Steps/Code to Reproduce

```python
import sklearn

if __name__ == "__main__":
    for i in range(1000):
        import time
        time.sleep(1)
```

### Expected Results

Nothing like that should happen.

### Actual Results

![Screenshot_20230728_145623](https://github.com/scikit-learn/scikit-learn/assets/3669312/01e1b7d0-8a85-4677-b8eb-fc7b9baed2b0)


### Versions

```shell
System:
    python: 3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:22:55)  [GCC 10.3.0]
executable: /home/fernando/phd_workspace/future-shot/venv/bin/python
   machine: Linux-5.15.120-1-MANJARO-x86_64-with-glibc2.37
Python dependencies:
      sklearn: 1.3.0
          pip: 23.0
   setuptools: 67.1.0
        numpy: 1.24.2
        scipy: 1.10.1
       Cython: None
       pandas: 1.5.3
   matplotlib: 3.7.1
       joblib: 1.2.0
threadpoolctl: 3.1.0
Built with OpenMP: True
threadpoolctl info:
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/numpy.libs/libopenblas64_p-r0-15028c96.3.21.so
        version: 0.3.21
threading_layer: pthreads
   architecture: SkylakeX
    num_threads: 16
       user_api: openmp
   internal_api: openmp
         prefix: libgomp
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None
    num_threads: 16
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /home/fernando/phd_workspace/future-shot/venv/lib/python3.9/site-packages/scipy.libs/libopenblasp-r0-41284840.3.18.so
        version: 0.3.18
threading_layer: pthreads
   architecture: Prescott
    num_threads: 16
```

COMMENT:
Closing as "not enough info to reproduce"

Labels: Bug, Needs Triage
[DOCS] Missing values are now supported in Decision Trees

v1.3 of scikit-learn introduced some missing value support as evident in the same documentation [file](https://scikit-learn.org/stable/modules/tree.html#tree-missing-value-support) later on but it still states in the beginning of the dos that missing values are ["not supported in this module"](https://github.com/scikit-learn/scikit-learn/blob/1090121815f983a96a3a903987aea92c804bb740/doc/modules/tree.rst?plain=1#L30-L31). I think it would be fine to just remove that sentence or reference the section explaining the compatibility with missing values.

COMMENT:
> reference the section explaining the compatibility with missing values.

I think it makes sense to update it and refer to the section about missing values for trees:

https://github.com/scikit-learn/scikit-learn/blob/1090121815f983a96a3a903987aea92c804bb740/doc/modules/tree.rst?plain=1#L575C5-L578

Are you interested in opening a PR to update the docs?

Labels: Documentation, module:tree
[DOCS] Missing values are now supported in Decision Trees

v1.3 of scikit-learn introduced some missing value support as evident in the same documentation [file](https://scikit-learn.org/stable/modules/tree.html#tree-missing-value-support) later on but it still states in the beginning of the dos that missing values are ["not supported in this module"](https://github.com/scikit-learn/scikit-learn/blob/1090121815f983a96a3a903987aea92c804bb740/doc/modules/tree.rst?plain=1#L30-L31). I think it would be fine to just remove that sentence or reference the section explaining the compatibility with missing values.

COMMENT:
If that PR suits the bill, yes.

Labels: Documentation, module:tree
⚠️ CI failed on macos_arm64_wheel ⚠️

**CI is still failing on [macos_arm64_wheel](https://cirrus-ci.com/build/6592550258081792)** (Oct 15, 2023)

COMMENT:
The latest error is the graphical lasso one and has been fixed in https://github.com/scikit-learn/scikit-learn/pull/27616.

Labels: Needs Investigation
BUG (likely): DBSCAN producing strange results on a geographical dataset

### Describe the bug

The issue has been described under this StackOverflow question: [https://stackoverflow.com/questions/76774329/dbscan-producing-strange-results-on-a-ships-location-dataset](https://stackoverflow.com/questions/76774329/dbscan-producing-strange-results-on-a-ships-location-dataset)

The dataset: https://pastebin.pl/view/86b44fe9 

### Steps/Code to Reproduce

```python
from sklearn.cluster import DBSCAN

file = open("86b44fe9.txt", "r")
lines = file.readlines()
x = []
for p in lines:
    poi = p.rstrip("\n").split(" ")
    x.append([float(poi[2]), float(poi[3])])

# Parameters of DBSCAN
min_samples = 42
eps = 0.001 

dbscan = DBSCAN(eps, min_samples).fit(x) # fitting the model
labels = dbscan.labels_

out_file = open("clusters.txt", "w")    
for p in range(len(lines)):
    poi = lines[p].rstrip("\n").split(" ")
    out_file.write(poi[0] + " ")
    out_file.write(poi[1] + " ")
    out_file.write(str(labels[p]))
    out_file.write("\n")
    
out_file.close()
```

### Expected Results

The detected anomalies highlighted in red in the [StackOverflow question](https://stackoverflow.com/questions/76774329/dbscan-producing-strange-results-on-a-ships-location-dataset) (e.g. the one having an id of 10248558 should not be considered as an outlier).

### Actual Results

The clusters.txt reports the actual results.

### Versions

```shell
System:
    python: 3.8.3 (default, Jul  2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)]
executable: C:\Users\banbar\anaconda3\python.exe
   machine: Windows-10-10.0.19041-SP0

Python dependencies:
          pip: 20.1.1
   setuptools: 49.2.0.post20200714
      sklearn: 0.23.1
        numpy: 1.23.5
        scipy: 1.10.1
       Cython: 0.29.21
       pandas: 1.0.5
   matplotlib: 3.2.2
       joblib: 0.16.0
threadpoolctl: 2.1.0

Built with OpenMP: True
```

COMMENT:
Please reduce the reproducible to a toy example triggering the same issue, w/o a dependency on an external dataset, we can then have a look at it.

Labels: Bug, module:cluster, Needs Reproducible Code
BUG (likely): DBSCAN producing strange results on a geographical dataset

### Describe the bug

The issue has been described under this StackOverflow question: [https://stackoverflow.com/questions/76774329/dbscan-producing-strange-results-on-a-ships-location-dataset](https://stackoverflow.com/questions/76774329/dbscan-producing-strange-results-on-a-ships-location-dataset)

The dataset: https://pastebin.pl/view/86b44fe9 

### Steps/Code to Reproduce

```python
from sklearn.cluster import DBSCAN

file = open("86b44fe9.txt", "r")
lines = file.readlines()
x = []
for p in lines:
    poi = p.rstrip("\n").split(" ")
    x.append([float(poi[2]), float(poi[3])])

# Parameters of DBSCAN
min_samples = 42
eps = 0.001 

dbscan = DBSCAN(eps, min_samples).fit(x) # fitting the model
labels = dbscan.labels_

out_file = open("clusters.txt", "w")    
for p in range(len(lines)):
    poi = lines[p].rstrip("\n").split(" ")
    out_file.write(poi[0] + " ")
    out_file.write(poi[1] + " ")
    out_file.write(str(labels[p]))
    out_file.write("\n")
    
out_file.close()
```

### Expected Results

The detected anomalies highlighted in red in the [StackOverflow question](https://stackoverflow.com/questions/76774329/dbscan-producing-strange-results-on-a-ships-location-dataset) (e.g. the one having an id of 10248558 should not be considered as an outlier).

### Actual Results

The clusters.txt reports the actual results.

### Versions

```shell
System:
    python: 3.8.3 (default, Jul  2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)]
executable: C:\Users\banbar\anaconda3\python.exe
   machine: Windows-10-10.0.19041-SP0

Python dependencies:
          pip: 20.1.1
   setuptools: 49.2.0.post20200714
      sklearn: 0.23.1
        numpy: 1.23.5
        scipy: 1.10.1
       Cython: 0.29.21
       pandas: 1.0.5
   matplotlib: 3.2.2
       joblib: 0.16.0
threadpoolctl: 2.1.0

Built with OpenMP: True
```

COMMENT:
Thanks. I am afraid there is likely a logic error in the DBSCAN code, which prevents me to develop a toy example. The external dataset is a set of ~10K points that can easily be downloaded from the provided link, and then the code could be executed directly.

Labels: Bug, module:cluster, Needs Reproducible Code