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

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

Я также вижу, что 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
Rick Majpruz 18 Июн 2020 в 19:20

1 ответ

Лучший ответ

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

Например,

Если значение параметра по умолчанию необходимо изменить, замените значение по умолчанию на конкретное значение (например, предупреждение) и увеличьте 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
1
Rick Majpruz 19 Июн 2020 в 13:52