Почему scikit-learn в Anaconda показывает cv = "warn" в сигнатуре типа "validation_curve"? - PullRequest
1 голос
/ 18 июня 2020

Я заметил разницу между установками Anaconda на Linux и MacOS. Каждый показывает разные значения по умолчанию для параметра cv для validation_curve. Linux показывает cv=None, но MacOS показывает нечетное cv="warn". Я не вижу объяснения cv="warn" в документации scikit-learn и не нашел ничего полезного из онлайн-поиска.

Что означает cv="warn"? Это проблема c?

Я также вижу, что error_score=nan на Linux, но error_score='raise-deprecating' на MacOS.

Это изменение параметров происходит из-за разных номеров версий Anaconda или из ОС?

Я получаю такую ​​же подпись от оператора ? в записных книжках Jupyter.

-------------- Linux - ------------

Python 3.7.6 (default, Jan  8 2020, 19:59:22) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sklearn.model_selection import validation_curve
>>> help(validation_curve)
Help on function validation_curve in module sklearn.model_selection._validation:

validation_curve(estimator, X, y, param_name, param_range, groups=None, cv=None, scoring=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score=nan)
    Validation curve. ...

-------------- MacOS --------------

Python 3.7.4 (default, Aug 13 2019, 15:17:50) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sklearn.model_selection import validation_curve
>>> help(validation_curve)
Help on function validation_curve in module sklearn.model_selection._validation:

validation_curve(estimator, X, y, param_name, param_range, groups=None, cv='warn', scoring=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score='raise-deprecating')
    Validation curve. ...

1 Ответ

1 голос
/ 19 июня 2020

Это потому, что две версии scikit-learn (на Linux и MacOS) разные. Согласно PR # 11557 , значение CV (перекрестная проверка kfold) по умолчанию было изменено с 3 на 5. warn используется в scikit-learn для отображения предупреждения, когда значение параметра по умолчанию изменено. Дополнительные сведения см. В документации разработчика scikit-learn дополнения .

Например,

Если необходимо изменить значение параметра по умолчанию, замените значение по умолчанию с заданным значением c (например, предупреждать) и повышать FutureWarning, когда пользователи используют значение по умолчанию. В следующем примере мы меняем значение по умолчанию n_clusters с 5 на 10 (текущая версия - 0.20).

import warnings

def example_function(n_clusters='warn'):
    if n_clusters == 'warn':
        warnings.warn("The default value of n_clusters will change from "
                      "5 to 10 in 0.22.", FutureWarning)
        n_clusters = 5
...