Talip7/scikit-learn-issues-multilabel huggingface dataset:
Incremental F-regression

### Describe the workflow you want to enable

For situations with many variables and low memory, for example lags taken from a high frequency time series and corresponding exogenous variables, it's possible to go though each column one by one or in batches, in an ordered manner, select the most important variables incrementally store them in a buffer with a predefined size and when the buffer is full replace variables with higher score than minimum score of buffer.

The objective is to implement this behavior with Sklearn's F-regression.

### Describe your proposed solution

Two variables: temperature and voltage
Limit is 4 columns

iter 1: Temperature N, Voltage N (keep both: 2 vars)
iter 2: Temperature N-1, Voltage N-1 (keep both: 4 vars)
iter 3: Temperature N-2, Voltage N-2 (replace existing column if score is higher than minimum of buffer)
iter 4: ...

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

_No response_

COMMENT:
I don't think that we have a nice way to implement this use case in scikit-learn. Sometimes, we handle batch of statistics in the "sample" axis but never on the "features" axis.

Somehow, we would need to make a `SelectKBest` estimator, column-chunk aware implementation.

Labels: New Feature, Needs Triage
Incremental F-regression

### Describe the workflow you want to enable

For situations with many variables and low memory, for example lags taken from a high frequency time series and corresponding exogenous variables, it's possible to go though each column one by one or in batches, in an ordered manner, select the most important variables incrementally store them in a buffer with a predefined size and when the buffer is full replace variables with higher score than minimum score of buffer.

The objective is to implement this behavior with Sklearn's F-regression.

### Describe your proposed solution

Two variables: temperature and voltage
Limit is 4 columns

iter 1: Temperature N, Voltage N (keep both: 2 vars)
iter 2: Temperature N-1, Voltage N-1 (keep both: 4 vars)
iter 3: Temperature N-2, Voltage N-2 (replace existing column if score is higher than minimum of buffer)
iter 4: ...

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

_No response_

COMMENT:
For my particular use case of forecasting energy consumption time series with 15 minute frequency, turns out what I was looking for was cross-correlation. It is extremely efficient and achieves the same purpose.

Labels: New Feature, Needs Triage
Weighted ridge regression regularization variable is dependent on sample weight magnitude

### Describe the issue linked to the documentation

When doing weighted ridge regression, the value of the regularization parameter for a particular solution is dependent on the sample weight vector due to scaling in the implementation.  Scaling should either be according to the weighted average instead of just a simple multiplication, or the documentation should specify that the weight vector should sum to 1.  This may affect other learners as well.  As is, this is unstable in a cross validation context as the data magnitude may change between folds.

### Suggest a potential alternative/fix

Specify the weight vector should sum to one, or fix the underlying behavior to avoid the dependence.

COMMENT:
It is somehow connected to https://github.com/scikit-learn/scikit-learn/issues/26848

Maybe there should be a discussion  about some general accepted way of dealing with sample weights in different algorithms ( scaling them to sum up to 1, etc)

Labels: Documentation
Weighted ridge regression regularization variable is dependent on sample weight magnitude

### Describe the issue linked to the documentation

When doing weighted ridge regression, the value of the regularization parameter for a particular solution is dependent on the sample weight vector due to scaling in the implementation.  Scaling should either be according to the weighted average instead of just a simple multiplication, or the documentation should specify that the weight vector should sum to 1.  This may affect other learners as well.  As is, this is unstable in a cross validation context as the data magnitude may change between folds.

### Suggest a potential alternative/fix

Specify the weight vector should sum to one, or fix the underlying behavior to avoid the dependence.

COMMENT:
I recall some discussion here regarding the scaling (or not) of sample-weight: https://github.com/scikit-learn/scikit-learn/issues/15657

Labels: Documentation
MultiOutputRegressor _ BUG

### Describe the bug

```pytb
 from sklearn.multioutput import MultiOutputRegressor
  File "../lib/python3.10/site-packages/sklearn/multioutput.py", line 45, in <module>
    from .utils.validation import _check_fit_params, check_is_fitted, has_fit_parameter
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' (../lib/python3.10/site-packages/sklearn/utils/validation.py)
```

### Steps/Code to Reproduce

from sklearn.multioutput import MultiOutputRegressor

### Expected Results

import issue 

### Actual Results

from sklearn.multioutput import MultiOutputRegressor
leads to : 
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' 

### Versions

```shell
python: 3.10.2
sklearn: 1.3.0
```

COMMENT:
I cannot reproduce. It looks like your installation is not right.
Could you provide the way that you install scikit-learn.

Labels: Bug, Needs Triage
MultiOutputRegressor _ BUG

### Describe the bug

```pytb
 from sklearn.multioutput import MultiOutputRegressor
  File "../lib/python3.10/site-packages/sklearn/multioutput.py", line 45, in <module>
    from .utils.validation import _check_fit_params, check_is_fitted, has_fit_parameter
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' (../lib/python3.10/site-packages/sklearn/utils/validation.py)
```

### Steps/Code to Reproduce

from sklearn.multioutput import MultiOutputRegressor

### Expected Results

import issue 

### Actual Results

from sklearn.multioutput import MultiOutputRegressor
leads to : 
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' 

### Versions

```shell
python: 3.10.2
sklearn: 1.3.0
```

COMMENT:
from [here](https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/multioutput.py#L46C12-L46C87):  
from .utils.validation import _check_method_params, check_is_fitted, has_fit_parameter 

but in the "validation" script there is no " _check_method_params" function
[(here) ](https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/utils/validation.py)

Labels: Bug, Needs Triage
MultiOutputRegressor _ BUG

### Describe the bug

```pytb
 from sklearn.multioutput import MultiOutputRegressor
  File "../lib/python3.10/site-packages/sklearn/multioutput.py", line 45, in <module>
    from .utils.validation import _check_fit_params, check_is_fitted, has_fit_parameter
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' (../lib/python3.10/site-packages/sklearn/utils/validation.py)
```

### Steps/Code to Reproduce

from sklearn.multioutput import MultiOutputRegressor

### Expected Results

import issue 

### Actual Results

from sklearn.multioutput import MultiOutputRegressor
leads to : 
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' 

### Versions

```shell
python: 3.10.2
sklearn: 1.3.0
```

COMMENT:
> but in the "validation" script there is no " _check_method_params" function [(here) ](https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/utils/validation.py)

In the current version of that link, the function **is** there. Permalink: https://github.com/scikit-learn/scikit-learn/blob/a05eb6bbe30bc40904274c87afb4ac93bcd60168/sklearn/utils/validation.py#L1948

Labels: Bug, Needs Triage
MultiOutputRegressor _ BUG

### Describe the bug

```pytb
 from sklearn.multioutput import MultiOutputRegressor
  File "../lib/python3.10/site-packages/sklearn/multioutput.py", line 45, in <module>
    from .utils.validation import _check_fit_params, check_is_fitted, has_fit_parameter
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' (../lib/python3.10/site-packages/sklearn/utils/validation.py)
```

### Steps/Code to Reproduce

from sklearn.multioutput import MultiOutputRegressor

### Expected Results

import issue 

### Actual Results

from sklearn.multioutput import MultiOutputRegressor
leads to : 
ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' 

### Versions

```shell
python: 3.10.2
sklearn: 1.3.0
```

COMMENT:
Right, I found what was wrong with my scikit-learn installed package! Thanks :)

Labels: Bug, Needs Triage
macOS.pylatest_conda_forge_mkl sometimes fails pickling test

This test has failed in https://github.com/scikit-learn/scikit-learn/pull/27266 with [those logs](https://dev.azure.com/scikit-learn/scikit-learn/_build/results?buildId=58609&view=logs&j=97641769-79fb-5590-9088-a30ce9b850b9&t=4745baa1-36b5-56c8-9a8e-6480742db1a6&l=623). It also failed on the [nightly CI](https://github.com/scikit-learn/scikit-learn/issues/26875#issuecomment-1703811019), but the logs were too old and are no preserved.

```
_____ test_pickle_version_warning_is_issued_when_no_version_info_in_pickle _____
[gw0] darwin -- Python 3.11.5 /usr/local/miniconda/envs/testvenv/bin/python

    def test_pickle_version_warning_is_issued_when_no_version_info_in_pickle():
        iris = datasets.load_iris()
        # TreeNoVersion has no getstate, like pre-0.18
        tree = TreeNoVersion().fit(iris.data, iris.target)
    
        tree_pickle_noversion = pickle.dumps(tree)
>       assert b"version" not in tree_pickle_noversion
E       assert b'version' not in b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."

iris       = {'data': array([[5.1, 3.5, 1.4, 0.2],
       [4.9, 3. , 1.4, 0.2],
       [4.7, 3.2, 1.3, 0.2],
       [4.6, 3.1, 1.5,... width (cm)', 'petal length (cm)', 'petal width (cm)'], 'filename': 'iris.csv', 'data_module': 'sklearn.datasets.data'}
tree       = TreeNoVersion()
tree_pickle_noversion = b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."
```

COMMENT:
I've seen this recently quite frequently, a restart of the CI has never reproduced it for me.

Labels: Build / CI
macOS.pylatest_conda_forge_mkl sometimes fails pickling test

This test has failed in https://github.com/scikit-learn/scikit-learn/pull/27266 with [those logs](https://dev.azure.com/scikit-learn/scikit-learn/_build/results?buildId=58609&view=logs&j=97641769-79fb-5590-9088-a30ce9b850b9&t=4745baa1-36b5-56c8-9a8e-6480742db1a6&l=623). It also failed on the [nightly CI](https://github.com/scikit-learn/scikit-learn/issues/26875#issuecomment-1703811019), but the logs were too old and are no preserved.

```
_____ test_pickle_version_warning_is_issued_when_no_version_info_in_pickle _____
[gw0] darwin -- Python 3.11.5 /usr/local/miniconda/envs/testvenv/bin/python

    def test_pickle_version_warning_is_issued_when_no_version_info_in_pickle():
        iris = datasets.load_iris()
        # TreeNoVersion has no getstate, like pre-0.18
        tree = TreeNoVersion().fit(iris.data, iris.target)
    
        tree_pickle_noversion = pickle.dumps(tree)
>       assert b"version" not in tree_pickle_noversion
E       assert b'version' not in b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."

iris       = {'data': array([[5.1, 3.5, 1.4, 0.2],
       [4.9, 3. , 1.4, 0.2],
       [4.7, 3.2, 1.3, 0.2],
       [4.6, 3.1, 1.5,... width (cm)', 'petal length (cm)', 'petal width (cm)'], 'filename': 'iris.csv', 'data_module': 'sklearn.datasets.data'}
tree       = TreeNoVersion()
tree_pickle_noversion = b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."
```

COMMENT:
Is this always with the latest Python 3.11.5 version? Maybe something has changed in the pickle module of the standard library.

Labels: Build / CI
macOS.pylatest_conda_forge_mkl sometimes fails pickling test

This test has failed in https://github.com/scikit-learn/scikit-learn/pull/27266 with [those logs](https://dev.azure.com/scikit-learn/scikit-learn/_build/results?buildId=58609&view=logs&j=97641769-79fb-5590-9088-a30ce9b850b9&t=4745baa1-36b5-56c8-9a8e-6480742db1a6&l=623). It also failed on the [nightly CI](https://github.com/scikit-learn/scikit-learn/issues/26875#issuecomment-1703811019), but the logs were too old and are no preserved.

```
_____ test_pickle_version_warning_is_issued_when_no_version_info_in_pickle _____
[gw0] darwin -- Python 3.11.5 /usr/local/miniconda/envs/testvenv/bin/python

    def test_pickle_version_warning_is_issued_when_no_version_info_in_pickle():
        iris = datasets.load_iris()
        # TreeNoVersion has no getstate, like pre-0.18
        tree = TreeNoVersion().fit(iris.data, iris.target)
    
        tree_pickle_noversion = pickle.dumps(tree)
>       assert b"version" not in tree_pickle_noversion
E       assert b'version' not in b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."

iris       = {'data': array([[5.1, 3.5, 1.4, 0.2],
       [4.9, 3. , 1.4, 0.2],
       [4.7, 3.2, 1.3, 0.2],
       [4.6, 3.1, 1.5,... width (cm)', 'petal length (cm)', 'petal width (cm)'], 'filename': 'iris.csv', 'data_module': 'sklearn.datasets.data'}
tree       = TreeNoVersion()
tree_pickle_noversion = b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."
```

COMMENT:
The failure reported in #27302 was running Python 3.11.4 on macOS.

Labels: Build / CI
macOS.pylatest_conda_forge_mkl sometimes fails pickling test

This test has failed in https://github.com/scikit-learn/scikit-learn/pull/27266 with [those logs](https://dev.azure.com/scikit-learn/scikit-learn/_build/results?buildId=58609&view=logs&j=97641769-79fb-5590-9088-a30ce9b850b9&t=4745baa1-36b5-56c8-9a8e-6480742db1a6&l=623). It also failed on the [nightly CI](https://github.com/scikit-learn/scikit-learn/issues/26875#issuecomment-1703811019), but the logs were too old and are no preserved.

```
_____ test_pickle_version_warning_is_issued_when_no_version_info_in_pickle _____
[gw0] darwin -- Python 3.11.5 /usr/local/miniconda/envs/testvenv/bin/python

    def test_pickle_version_warning_is_issued_when_no_version_info_in_pickle():
        iris = datasets.load_iris()
        # TreeNoVersion has no getstate, like pre-0.18
        tree = TreeNoVersion().fit(iris.data, iris.target)
    
        tree_pickle_noversion = pickle.dumps(tree)
>       assert b"version" not in tree_pickle_noversion
E       assert b'version' not in b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."

iris       = {'data': array([[5.1, 3.5, 1.4, 0.2],
       [4.9, 3. , 1.4, 0.2],
       [4.7, 3.2, 1.3, 0.2],
       [4.6, 3.1, 1.5,... width (cm)', 'petal length (cm)', 'petal width (cm)'], 'filename': 'iris.csv', 'data_module': 'sklearn.datasets.data'}
tree       = TreeNoVersion()
tree_pickle_noversion = b"\x80\x04\x95)\n\x00\x00\x00\x00\x00\x00\x8c\x17sklearn.tests.test_base\x94\x8c\rTreeNoVersion\x94\x93\x94)\x81\x94}\...0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80E@\x94t\x94bubub."
```

COMMENT:
I saw the Pyodide fail with the same test which got me very intrigued. I opened #27554 with a work-around.

Labels: Build / CI
⚠️ CI failed on Linux.py38_conda_defaults_openblas ⚠️

**CI failed on [Linux.py38_conda_defaults_openblas](https://dev.azure.com/scikit-learn/scikit-learn/_build/results?buildId=58565&view=logs&j=c8afde5f-ef70-5983-62e8-c6b665ad6161)** (Sep 01, 2023)
- test_pairwise_distances_argkmin[45-float32-parallel_on_X-cityblock-0-500]
- test_pairwise_distances_argkmin[45-float32-parallel_on_Y-cityblock-0-500]

COMMENT:
## CI is no longer failing! ✅

[Successful run](https://dev.azure.com/scikit-learn/scikit-learn/_build/results?buildId=58914&view=logs&j=c8afde5f-ef70-5983-62e8-c6b665ad6161) on Sep 12, 2023

Labels: Needs Triage
⚠️ CI failed on Linux.py38_conda_defaults_openblas ⚠️

**CI failed on [Linux.py38_conda_defaults_openblas](https://dev.azure.com/scikit-learn/scikit-learn/_build/results?buildId=58565&view=logs&j=c8afde5f-ef70-5983-62e8-c6b665ad6161)** (Sep 01, 2023)
- test_pairwise_distances_argkmin[45-float32-parallel_on_X-cityblock-0-500]
- test_pairwise_distances_argkmin[45-float32-parallel_on_Y-cityblock-0-500]

COMMENT:
Duplicate of #27126.

Labels: Needs Triage
Lasso incompatible with scipy=1.11 with sparse X

### Describe the bug

The Lasso() regressor seems to be incompatible with the newest release of scipy=1.11.0 with sparse X input. 


### Steps/Code to Reproduce

```
import numpy as np
from scipy.sparse import csc_array
from sklearn.linear_model import Lasso

if __name__ == '__main__':
    # Create sparse matrix
    X = csc_array(np.array([[1, 2, 0], [0, 0, 3], [4, 0, 5]]))  # also fails with dok_array
    y = np.array([1, 2, 3])

    lasso = Lasso(fit_intercept=True)  # fit_intercept=True gets a more intentionally but still unexpected TypeError, with False it looks like a bug.
    lasso.fit(X, y)     # Fit Lasso to show that it fails. LinearRegression and Ridge work fine.
    print('Done!')
```

### Expected Results

No error is thrown.

### Actual Results

With fit_intercept=False, it fails with a strange TypeError which looks like it's not intended. With fit_intercept=True, it fails with a TypeError saying it wants a csc array, which is provided though. This seems to be an inconsistency with the latest scipy version and should be considered in the conda installation if it turns out to be an unintended bug.

### Versions

```shell
python=3.9.5
sklearn=1.3.0
scipy=1.11.0 fails while 1.10 is fine
```

COMMENT:
It has been solved in `main`. I can reproduce the regression in 1.3.0.

Labels: Bug, Needs Triage
Issue in copy to clipboard while Installing

### Describe the issue linked to the documentation

While I was installing scikit-learn I found a small issue when I do select Copy to Clipboard it is not copying the actual text which is "pip install -U scikit-learn" 
instead it is copying like 
"python3 -m venv sklearn-venvpython -m venv sklearn-venvpython -m venv sklearn-venvsource sklearn-venv/bin/activatesource sklearn-venv/bin/activatesklearn-venv\Scripts\activatepip install -U scikit-learnpip install -U scikit-learnpip install -U scikit-learnpip3 install -U scikit-learnconda create -n sklearn-env -c conda-forge scikit-learnconda activate sklearn-env"


so we need to fix the documentation and when user clicks on copy to clipboard it should copy "pip install -U scikit-learn"

Here is the link from where I found the issue: 
https://scikit-learn.org/stable/install.html


### Suggest a potential alternative/fix

_No response_

COMMENT:
It is solved in `main`: https://scikit-learn.org/dev/install.html

We are going to release the website soon as well.

Labels: Documentation, Needs Triage
sklearn.metrics.logAUC

### Describe the workflow you want to enable

Computing logAUC values.

### Describe your proposed solution

 $LogAUC_\lambda=\frac{\sum_{i}^{where~x_i\ge\lambda} (\log_{10} x_{i+1} - \log_{10} x_i)(\frac{y_{i+1}+y_i}{2})}{\log_{10}\frac{1}{\lambda}}$

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

Practitioners are interested in early enrichment; logAUC values were created for that.

COMMENT:
won't this work ?
```py
import numpy as np
from sklearn.metrics import auc
lmda = 0.001
logAUC = auc(np.log10(x[x>=lmda]), y[x>=lmda]) / np.log10(1/lmda)
```

Labels: New Feature, module:metrics, Needs Triage
sklearn.metrics.logAUC

### Describe the workflow you want to enable

Computing logAUC values.

### Describe your proposed solution

 $LogAUC_\lambda=\frac{\sum_{i}^{where~x_i\ge\lambda} (\log_{10} x_{i+1} - \log_{10} x_i)(\frac{y_{i+1}+y_i}{2})}{\log_{10}\frac{1}{\lambda}}$

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

Practitioners are interested in early enrichment; logAUC values were created for that.

COMMENT:
probably, so this could be integrated so that users don't need to reimplement it

Labels: New Feature, module:metrics, Needs Triage
sklearn.metrics.logAUC

### Describe the workflow you want to enable

Computing logAUC values.

### Describe your proposed solution

 $LogAUC_\lambda=\frac{\sum_{i}^{where~x_i\ge\lambda} (\log_{10} x_{i+1} - \log_{10} x_i)(\frac{y_{i+1}+y_i}{2})}{\log_{10}\frac{1}{\lambda}}$

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

Practitioners are interested in early enrichment; logAUC values were created for that.

COMMENT:
@UnixJunkie Could you provide literature references and motivate your proposal by a use case?

Labels: New Feature, module:metrics, Needs Triage
sklearn.metrics.logAUC

### Describe the workflow you want to enable

Computing logAUC values.

### Describe your proposed solution

 $LogAUC_\lambda=\frac{\sum_{i}^{where~x_i\ge\lambda} (\log_{10} x_{i+1} - \log_{10} x_i)(\frac{y_{i+1}+y_i}{2})}{\log_{10}\frac{1}{\lambda}}$

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

Practitioners are interested in early enrichment; logAUC values were created for that.

COMMENT:
https://wiki.docking.org/index.php/LogAUC
there are several references at the bottom of this page

Labels: New Feature, module:metrics, Needs Triage
sklearn.metrics.logAUC

### Describe the workflow you want to enable

Computing logAUC values.

### Describe your proposed solution

 $LogAUC_\lambda=\frac{\sum_{i}^{where~x_i\ge\lambda} (\log_{10} x_{i+1} - \log_{10} x_i)(\frac{y_{i+1}+y_i}{2})}{\log_{10}\frac{1}{\lambda}}$

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

Practitioners are interested in early enrichment; logAUC values were created for that.

COMMENT:
@UnixJunkie You seem to be interested in **virtual (drug) screening** and the **early recognition** problem. I'd say that this is a bit "niche" for scikit-learn and that many of those metrics like the proposed logAUC are heuristically motivated and lack a bit of theoretical foundation (I may be mistaken here).

Therefore, I am -1.

@scikit-learn/core-devs Are there more

Labels: New Feature, module:metrics, Needs Triage