Spec-Zone.ru › scikit-learn

Примечание

Перейти в конец, чтобы скачать полный код примера или запустить этот пример в браузере через JupyterLite или Binder.

Отображение конвейеров

По умолчанию конвейер в Jupyter Notebook отображается в виде 'diagram', где set_config(display='diagram'). Чтобы отключить представление HTML, используйте set_config(display='text').

Чтобы увидеть более подробные этапы визуализации конвейера, нажмите на его этапы.

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

Отображение конвейера с этапом предварительной обработки и классификатором

В этом разделе создаётся Pipeline с этапом предварительной обработки StandardScaler и классификатором LogisticRegression, а также отображается его визуальное представление.

from sklearn import set_config
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

steps = [
    ("preprocessing", StandardScaler()),
    ("classifier", LogisticRegression()),
]
pipe = Pipeline(steps)

По умолчанию для визуализации диаграммы используется display='diagram'.

set_config(display="diagram")
pipe  # click on the diagram below to see the details of each step
Pipeline(steps=[('preprocessing', StandardScaler()),
                ('classifier', LogisticRegression())])
В среде Jupyter повторно выполните эту ячейку, чтобы показать HTML-представление, или доверьте блокноту.
На GitHub HTML-представление отобразить не удаётся. Попробуйте открыть эту страницу на nbviewer.org.
Параметры
steps steps: список кортежей

Список кортежей (имя этапа, оцениватель), которые будут объединены
в последовательном порядке. Для совместимости с API scikit-learn каждый этап
должен определять `fit`. Все этапы, кроме последнего, также должны определять `transform`. Подробнее см.
:ref:`Объединение оценивателей <combining_estimators>`.
[('preprocessing', ...), ('classifier', ...)]
transform_input transform_input: список строк, по умолчанию None

Имена параметров :term:`metadata`, которые конвейер должен преобразовать,
прежде чем передать их этапу, который их использует.

Это позволяет преобразовывать некоторые аргументы, передаваемые в ``fit`` (кроме ``X``),
с помощью этапов конвейера вплоть до этапа, которому они требуются.
Требование задаётся через :ref:`маршрутизацию метаданных <metadata_routing>`.
Например, так можно передать проверочную выборку через конвейер.

Этот параметр можно задать, только если включена маршрутизация метаданных. Её можно
включить с помощью ``sklearn.set_config(enable_metadata_routing=True)``.

.. versionadded:: 1.6
None
memory memory: строка или объект с интерфейсом joblib.Memory, по умолчанию None

Используется для кэширования обученных преобразователей конвейера. Последний этап
никогда не кэшируется, даже если он является преобразователем. По умолчанию кэширование
не выполняется. Если задана строка, она указывает путь к каталогу
кэширования. Включение кэширования приводит к клонированию преобразователей
перед обучением. Поэтому экземпляр преобразователя, переданный
конвейеру, нельзя проверить напрямую. Используйте атрибут ``named_steps``
или ``steps``, чтобы проверить оцениватели в конвейере. Кэширование
преобразователей полезно, если обучение занимает много времени. См.
:ref:`sphx_glr_auto_examples_neighbors_plot_caching_nearest_neighbors.py`,
где показан пример включения кэширования.
None
verbose verbose: bool, по умолчанию False

Если True, по завершении каждого этапа будет выводиться затраченное
на его обучение время.
False
Параметры
copy copy: bool, по умолчанию True

Если False, попытаться избежать копирования и выполнить масштабирование на месте.
Это не всегда гарантируется; например, если данные не являются
массивом NumPy или разреженной матрицей scipy.sparse CSR, всё равно может
быть возвращена копия.
True
with_mean with_mean: bool, по умолчанию True

Если True, центрировать данные перед масштабированием.
Не работает (и вызывает исключение) для разреженных матриц,
поскольку их центрирование требует создания плотной матрицы, которая в обычных случаях
может оказаться слишком большой для размещения в памяти.
True
with_std with_std: bool, по умолчанию True

Если True, масштабировать данные до единичной дисперсии (или, что то же самое,
единичного стандартного отклонения).
True
Параметры
penalty penalty: {'l1', 'l2', 'elasticnet', None}, по умолчанию 'l2'

Задаёт норму штрафа:

- `None`: штраф не добавляется;
- `'l2'`: добавляется штрафной член L2; это значение используется по умолчанию;
- `'l1'`: добавляется штрафной член L1;
- `'elasticnet'`: добавляются штрафные члены L1 и L2.

.. warning::
Некоторые штрафы могут быть несовместимы с отдельными решателями. См. параметр
`solver` ниже, чтобы узнать о совместимости штрафа и решателя.

.. versionadded:: 0.19
Штраф L1 с решателем SAGA (поддержка 'multinomial' + L1)

.. deprecated:: 1.8
Параметр `penalty` объявлен устаревшим в версии 1.8 и будет удалён в версии 1.10.
Вместо него используйте `l1_ratio` и `C`: `l1_ratio=0` для `penalty='l2'`,
`l1_ratio=1` для `penalty='l1'`, любое значение `l1_ratio` от 0 до 1
для `penalty='elasticnet'` и `C=np.inf` для `penalty=None`.
'deprecated'
C C: float, по умолчанию 1.0

Обратная величина силы регуляризации; должно быть положительным числом с плавающей точкой.
Как и в машинах опорных векторов, меньшие значения задают более сильную
регуляризацию. При `C=np.inf` логистическая регрессия не имеет штрафа.
Визуальный пример влияния настройки параметра `C`
при штрафе L1 см. здесь:
:ref:`sphx_glr_auto_examples_linear_model_plot_logistic_path.py`.
1.0
l1_ratio l1_ratio: float, по умолчанию 0.0

Параметр смешивания Elastic-Net, для которого выполняется `0 <= l1_ratio <= 1`. Значение
`l1_ratio=1` задаёт чистый штраф L1, а `l1_ratio=0` — чистый штраф L2.
Любое значение от 0 до 1 задаёт штраф Elastic-Net вида
`l1_ratio * L1 + (1 - l1_ratio) * L2`.

.. warning::
Некоторые значения `l1_ratio`, то есть некоторые штрафы, могут быть несовместимы с отдельными
решателями. См. параметр `solver` ниже, чтобы узнать о совместимости штрафа и решателя.

.. versionchanged:: 1.8
Значение по умолчанию изменено с None на 0.0.

.. deprecated:: 1.8
Значение `None` объявлено устаревшим и будет удалено в версии 1.10. Всегда используйте
`l1_ratio`, чтобы указать тип штрафа.
0.0
dual dual: bool, по умолчанию False

Двойственная (с ограничениями) или прямая (с регуляризацией; см. также
:ref:`это уравнение <regularized-logistic-loss>`) формулировка. Двойственная формулировка
реализована только для штрафа L2 с решателем liblinear. Используйте `dual=False`,
если n_samples > n_features.
False
tol tol: float, по умолчанию 1e-4

Допуск для критерия остановки.
0.0001
fit_intercept fit_intercept: bool, по умолчанию True

Указывает, нужно ли добавлять к функции принятия решения
константу (также называемую смещением или свободным членом).
True
intercept_scaling intercept_scaling: float, по умолчанию 1

Используется только при решателе `liblinear`
и значении `True` для `self.fit_intercept`. В этом случае `x` становится
`[x, self.intercept_scaling]`,
то есть к вектору экземпляра добавляется «синтетический» признак с постоянным значением,
равным `intercept_scaling`.
Свободный член становится равен
``intercept_scaling * synthetic_feature_weight``.

.. note::
Вес синтетического признака подвергается регуляризации L1 или L2, как и все остальные признаки.
Чтобы уменьшить влияние регуляризации на вес синтетического признака
(и, следовательно, на свободный член), нужно увеличить `intercept_scaling`.
1
class_weight class_weight: словарь или 'balanced', по умолчанию None

Веса классов в формате ``{class_label: weight}``.
Если параметр не задан, предполагается, что вес каждого класса равен единице.

Режим "balanced" использует значения y для автоматической настройки
весов, обратно пропорциональных частотам классов во входных данных,
по формуле ``n_samples / (n_classes * np.bincount(y))``.

Обратите внимание: если задан sample_weight, эти веса будут перемножены с sample_weight (переданным
методу fit).

.. versionadded:: 0.17
*class_weight='balanced'*
None
random_state random_state: int, экземпляр RandomState, по умолчанию None

Используется для перемешивания данных, если ``solver`` равен 'sag', 'saga' или 'liblinear'.
Подробнее см. :term:`Глоссарий <random_state>`.
None
solver solver: {'lbfgs', 'liblinear', 'newton-cg', 'newton-cholesky', 'sag', 'saga'}, по умолчанию 'lbfgs'

Алгоритм для задачи оптимизации. По умолчанию используется 'lbfgs'.
При выборе решателя можно учитывать следующие особенности:

- 'lbfgs' — хороший вариант по умолчанию, поскольку достаточно хорошо подходит для широкого
класса задач.
- Для задач :term:`многоклассовой классификации` (`n_classes >= 3`) все решатели, кроме
'liblinear', минимизируют полную мультиномиальную функцию потерь; 'liblinear' вызовет
ошибку.
- 'newton-cholesky' подходит, когда `n_samples` >> `n_features * n_classes`, особенно для
категориальных признаков с редкими категориями, закодированных методом one-hot. Учтите, что использование памяти
этим решателем квадратично зависит от `n_features * n_classes`,
поскольку он явно вычисляет полную матрицу Гессе.
- Для небольших наборов данных подходит 'liblinear', а 'sag'
и 'saga' работают быстрее на больших наборах;
- 'liblinear' по умолчанию поддерживает только бинарную классификацию. Чтобы применить схему
«один против остальных» для многоклассовой задачи, его можно обернуть в
:class:`~sklearn.multiclass.OneVsRestClassifier`.

.. warning::
Выбор алгоритма зависит от выбранного штрафа (`l1_ratio=0`
для штрафа L2, `l1_ratio=1` для штрафа L1 и `0 < l1_ratio < 1` для
Elastic-Net), а также от поддержки многоклассовой (мультиномиальной) классификации:

================= ======================== ======================
solver l1_ratio мультиномиальная многоклассовая классификация
================= ======================== ======================
'lbfgs' l1_ratio=0 да
'liblinear' l1_ratio=1 или l1_ratio=0 нет
'newton-cg' l1_ratio=0 да
'newton-cholesky' l1_ratio=0 да
'sag' l1_ratio=0 да
'saga' 0<=l1_ratio<=1 да
================= ======================== ======================

.. note::
Быстрая сходимость 'sag' и 'saga' гарантируется только для признаков
с примерно одинаковым масштабом. Можно предварительно обработать данные
с помощью масштабировщика из :mod:`sklearn.preprocessing`.

.. seealso::
Дополнительные сведения о :class:`LogisticRegression` см. в :ref:`Руководстве пользователя <Logistic_regression>`,
а в частности — в :ref:`таблице <logistic_regression_solvers>`,
где приведена сводка о поддержке решателями штрафов.

.. versionadded:: 0.17
Решатель стохастического градиентного спуска с усреднением (SAG). Поддержка мультиномиальной классификации добавлена
в версии 0.18.
.. versionadded:: 0.19
Решатель SAGA.
.. versionchanged:: 0.22
В версии 0.22 решатель по умолчанию изменён с 'liblinear' на 'lbfgs'.
.. versionadded:: 1.2
Решатель newton-cholesky. Поддержка мультиномиальной классификации добавлена в версии 1.6.
'lbfgs'
max_iter max_iter: int, по умолчанию 100

Максимальное число итераций, выполняемых решателями до сходимости.
100
verbose verbose: int, по умолчанию 0

Для решателей liblinear и lbfgs задайте любое положительное значение,
чтобы включить подробный вывод.
0
warm_start warm_start: bool, по умолчанию False

Если задано значение True, результат предыдущего вызова fit повторно используется
как начальное приближение; в противном случае предыдущий результат удаляется.
Для решателя liblinear не используется. См. :term:`глоссарий <warm_start>`.

.. versionadded:: 0.17
*warm_start* для поддержки решателей *lbfgs*, *newton-cg*, *sag*, *saga*.
False
n_jobs n_jobs: int, по умолчанию None

Не оказывает никакого влияния.

.. deprecated:: 1.8
Параметр `n_jobs` объявлен устаревшим в версии 1.8 и будет удалён в версии 1.10.
None


Чтобы просмотреть текстовое представление конвейера, измените настройку на display='text'.

set_config(display="text")
pipe
Pipeline(steps=[('preprocessing', StandardScaler()),
                ('classifier', LogisticRegression())])

Вернуть отображение по умолчанию

set_config(display="diagram")

Отображение конвейера, объединяющего несколько шагов предобработки и классификатор

В этом разделе создаётся Pipeline с несколькими шагами предобработки — PolynomialFeatures и StandardScaler, а также шагом классификатора — LogisticRegression, после чего отображается его визуальное представление.

from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures, StandardScaler

steps = [
    ("standard_scaler", StandardScaler()),
    ("polynomial", PolynomialFeatures(degree=3)),
    ("classifier", LogisticRegression(C=2.0)),
]
pipe = Pipeline(steps)
pipe  # click on the diagram below to see the details of each step
Pipeline(steps=[('standard_scaler', StandardScaler()),
                ('polynomial', PolynomialFeatures(degree=3)),
                ('classifier', LogisticRegression(C=2.0))])
В среде Jupyter повторно выполните эту ячейку, чтобы отобразить HTML-представление, или доверьте работу ноутбуку.
На GitHub невозможно отобразить HTML-представление; попробуйте открыть эту страницу на nbviewer.org.
Параметры
steps steps: список кортежей

Список кортежей (название шага, оцениватель), которые будут объединены
последовательно. Для совместимости с API scikit-learn все шаги
должны определять `fit`. Все шаги, кроме последнего, также должны определять `transform`. Подробнее см.
:ref:`Combining Estimators <combining_estimators>`.
[('standard_scaler', ...), ('polynomial', ...), ...]
transform_input transform_input: список строк, значение по умолчанию — None

Названия параметров :term:`metadata`, которые должны быть преобразованы конвейером
перед передачей шагу, использующему их.

Это позволяет передавать некоторые входные аргументы в ``fit`` (кроме ``X``)
для преобразования шагами конвейера вплоть до шага, которому они
необходимы. Требование задаётся с помощью :ref:`маршрутизации метаданных <metadata_routing>`.
Например, так можно передать проверочную выборку через конвейер.

Этот параметр можно задать, только если включена маршрутизация метаданных. Её
можно включить с помощью ``sklearn.set_config(enable_metadata_routing=True)``.

.. versionadded:: 1.6
None
memory memory: строка или объект с интерфейсом joblib.Memory, значение по умолчанию — None

Используется для кэширования обученных преобразователей конвейера. Последний шаг
никогда не кэшируется, даже если это преобразователь. По умолчанию
кэширование не выполняется. Если указана строка, она задаёт путь к
каталогу кэша. Включение кэширования приводит к клонированию преобразователей
перед обучением. Поэтому экземпляр преобразователя, переданный в
конвейер, нельзя проверить напрямую. Для проверки оценивателей в конвейере используйте атрибут
``named_steps`` или ``steps``. Кэширование
преобразователей полезно, если обучение занимает много времени. См.
:ref:`sphx_glr_auto_examples_neighbors_plot_caching_nearest_neighbors.py`
пример включения кэширования.
None
verbose verbose: bool, значение по умолчанию — False

Если True, время, затраченное на обучение каждого шага, будет выводиться по мере
его завершения.
False
Параметры
copy copy: bool, значение по умолчанию — True

Если False, по возможности не создаёт копию и выполняет масштабирование на месте.
Это не гарантируется во всех случаях; например, если данные
не являются массивом NumPy или разреженной матрицей scipy.sparse CSR, всё равно может быть
возвращена копия.
True
with_mean with_mean: bool, значение по умолчанию — True

Если True, центрирует данные перед масштабированием.
Не работает (и вызывает исключение) при применении к
разреженным матрицам, поскольку центрирование требует создания плотной
матрицы, которая в типичных сценариях может оказаться слишком большой для размещения в
памяти.
True
with_std with_std: bool, значение по умолчанию — True

Если True, масштабирует данные до единичной дисперсии (или, что эквивалентно,
единичного стандартного отклонения).
True
Параметры
degree degree: int или кортеж (min_degree, max_degree), значение по умолчанию — 2

Если задано одно целое число, оно определяет максимальную степень
полиномиальных признаков. Если передан кортеж `(min_degree, max_degree)`,
то `min_degree` задаёт минимальную, а `max_degree` — максимальную
степень полиномов для сгенерированных признаков. Обратите внимание, что `min_degree=0`
и `min_degree=1` эквивалентны, поскольку вывод члена нулевой степени
определяется параметром `include_bias`.
3
interaction_only interaction_only: bool, значение по умолчанию — False

Если `True`, создаются только признаки взаимодействия: признаки, являющиеся
произведениями не более чем `degree` *различных* входных признаков; то есть исключаются члены
со степенью 2 или выше для одного и того же входного признака:

- включены: `x[0]`, `x[1]`, `x[0] * x[1]` и т. д.
- исключены: `x[0] ** 2`, `x[0] ** 2 * x[1]` и т. д.
False
include_bias include_bias: bool, значение по умолчанию — True

Если `True` (по умолчанию), добавляет столбец смещения — признак, для которого
все полиномиальные степени равны нулю (то есть столбец из единиц, служащий
свободным членом в линейной модели).
True
order order: {'C', 'F'}, значение по умолчанию — 'C'

Порядок выходного массива в плотном случае. Порядок `'F'` ускоряет
вычисления, но может замедлить последующие оцениватели.

.. versionadded:: 0.21
'C'
Параметры
C C: float, значение по умолчанию — 1.0

Обратная сила регуляризации; должно быть положительным числом с плавающей точкой.
Как и в методе опорных векторов, меньшие значения задают более сильную
регуляризацию. При `C=np.inf` логистическая регрессия не штрафуется.
Наглядный пример влияния настройки параметра `C`
при штрафе L1 см. здесь:
:ref:`sphx_glr_auto_examples_linear_model_plot_logistic_path.py`.
2.0
penalty penalty: {'l1', 'l2', 'elasticnet', None}, значение по умолчанию — 'l2'

Задаёт норму штрафа:

- `None`: штраф не добавляется;
- `'l2'`: добавляется штрафной член L2; это значение используется по умолчанию;
- `'l1'`: добавляется штрафной член L1;
- `'elasticnet'`: добавляются штрафные члены L1 и L2.

.. warning::
Некоторые штрафы могут быть несовместимы с некоторыми решателями. См. параметр
`solver` ниже, чтобы узнать о совместимости штрафа и
решателя.

.. versionadded:: 0.19
Штраф L1 с решателем SAGA (поддержка 'multinomial' + L1)

.. deprecated:: 1.8
Параметр `penalty` объявлен устаревшим в версии 1.8 и будет удалён в версии 1.10.
Вместо него используйте `l1_ratio` и `C`. Для `penalty='l2'` задайте `l1_ratio=0`,
для `penalty='l1'` — `l1_ratio=1`, для `penalty='elasticnet'` задайте `l1_ratio`
любым числом с плавающей точкой от 0 до 1, а для `penalty=None` — `C=np.inf`.
'deprecated'
l1_ratio l1_ratio: float, значение по умолчанию — 0.0

Параметр смешивания Elastic-Net, где `0 <= l1_ratio <= 1`. Значение
`l1_ratio=1` задаёт чистый штраф L1, а `l1_ratio=0` — чистый штраф L2.
Любое значение от 0 до 1 задаёт штраф Elastic-Net вида
`l1_ratio * L1 + (1 - l1_ratio) * L2`.

.. warning::
Некоторые значения `l1_ratio`, то есть некоторые штрафы, могут быть несовместимы с отдельными
решателями. См. параметр `solver` ниже, чтобы узнать о совместимости штрафа и решателя.

.. versionchanged:: 1.8
Значение по умолчанию изменено с None на 0.0.

.. deprecated:: 1.8
`None` объявлен устаревшим и будет удалён в версии 1.10. Всегда используйте
`l1_ratio` для задания типа штрафа.
0.0
dual dual: bool, значение по умолчанию — False

Двойственная (с ограничениями) или прямая (с регуляризацией; см. также
:ref:`это уравнение <regularized-logistic-loss>`) формулировка. Двойственная формулировка
реализована только для штрафа L2 с решателем liblinear. Предпочтительно задавать `dual=False`,
если n_samples > n_features.
False
tol tol: float, значение по умолчанию — 1e-4

Допуск для критерия остановки.
0.0001
fit_intercept fit_intercept: bool, значение по умолчанию — True

Указывает, следует ли добавлять константу (также называемую смещением или свободным членом)
к функции принятия решения.
True
intercept_scaling intercept_scaling: float, значение по умолчанию — 1

Используется только при работе решателя `liblinear`,
если для `self.fit_intercept` задано значение `True`. В этом случае `x` становится
`[x, self.intercept_scaling]`,
то есть к вектору экземпляра добавляется «синтетический» признак с постоянным значением,
равным `intercept_scaling`.
Свободный член становится равен
``intercept_scaling * synthetic_feature_weight``.

.. note::
Вес синтетического признака подвергается регуляризации L1 или L2, как и все остальные признаки.
Чтобы уменьшить влияние регуляризации на вес синтетического признака
(и, следовательно, на свободный член), необходимо увеличить `intercept_scaling`.
1
class_weight class_weight: словарь или 'balanced', значение по умолчанию — None

Веса классов в виде ``{class_label: weight}``.
Если параметр не задан, считается, что вес всех классов равен единице.

Режим "balanced" автоматически корректирует веса по значениям y
обратно пропорционально частотам классов во входных данных
по формуле ``n_samples / (n_classes * np.bincount(y))``.

Обратите внимание: эти веса перемножаются с sample_weight (передаваемым
через метод fit), если задан sample_weight.

.. versionadded:: 0.17
*class_weight='balanced'*
None
random_state random_state: int, экземпляр RandomState, значение по умолчанию — None

Используется для перемешивания данных, если ``solver`` равен 'sag', 'saga' или 'liblinear'.
Подробнее см. :term:`глоссарий <random_state>`.
None
solver solver: {'lbfgs', 'liblinear', 'newton-cg', 'newton-cholesky', 'sag', 'saga'}, значение по умолчанию — 'lbfgs'

Алгоритм для решения задачи оптимизации. По умолчанию используется 'lbfgs'.
При выборе решателя можно учитывать следующие факторы:

- 'lbfgs' — хороший вариант по умолчанию, поскольку он достаточно хорошо работает для широкого
класса задач.
- Для задач :term:`многоклассовой классификации` (`n_classes >= 3`) все решатели, кроме
'liblinear', минимизируют полную мультиномиальную функцию потерь; 'liblinear' вызовет
ошибку.
- 'newton-cholesky' подходит, когда `n_samples` >> `n_features * n_classes`, особенно для категориальных признаков с редкими категориями, закодированных методом one-hot. Учтите, что использование памяти
этим решателем квадратично зависит от `n_features * n_classes`,
поскольку он явно вычисляет полную матрицу Гессе.
- Для небольших наборов данных подходит 'liblinear', тогда как 'sag'
и 'saga' работают быстрее на больших наборах;
- По умолчанию 'liblinear' поддерживает только бинарную классификацию. Чтобы применить схему
«один против остальных» для многоклассовой задачи, можно обернуть его в
:class:`~sklearn.multiclass.OneVsRestClassifier`.

.. warning::
Выбор алгоритма зависит от выбранного штрафа (`l1_ratio=0`
для штрафа L2, `l1_ratio=1` для штрафа L1 и `0 < l1_ratio < 1` для
Elastic-Net), а также от поддержки многоклассовой (мультиномиальной) классификации:

================= ======================== ======================
решатель l1_ratio многоклассовая классификация
================= ======================== ======================
'lbfgs' l1_ratio=0 да
'liblinear' l1_ratio=1 или l1_ratio=0 нет
'newton-cg' l1_ratio=0 да
'newton-cholesky' l1_ratio=0 да
'sag' l1_ratio=0 да
'saga' 0<=l1_ratio<=1 да
================= ======================== ======================

.. note::
Быстрая сходимость 'sag' и 'saga' гарантируется только для признаков
с приблизительно одинаковым масштабом. Данные можно предварительно обработать с помощью
масштабировщика из :mod:`sklearn.preprocessing`.

.. seealso::
Дополнительную информацию о :class:`LogisticRegression`, а также, в частности,
сводную :ref:`таблицу <logistic_regression_solvers>`
совместимости решателей и штрафов см. в :ref:`руководстве пользователя <Logistic_regression>`.

.. versionadded:: 0.17
Решатель стохастического градиентного спуска со средним градиентом (SAG). Поддержка мультиномиальной классификации появилась
в версии 0.18.
.. versionadded:: 0.19
Решатель SAGA.
.. versionchanged:: 0.22
В версии 0.22 решатель по умолчанию изменён с 'liblinear' на 'lbfgs'.
.. versionadded:: 1.2
Решатель newton-cholesky. Поддержка мультиномиальной классификации появилась в версии 1.6.
'lbfgs'
max_iter max_iter: int, значение по умолчанию — 100

Максимальное число итераций, выполняемых решателями для сходимости.
100
verbose verbose: int, значение по умолчанию — 0

Для решателей liblinear и lbfgs задайте любое положительное
число, чтобы включить подробный вывод.
0
warm_start warm_start: bool, значение по умолчанию — False

Если задано True, результат предыдущего вызова fit используется как
начальное приближение; в противном случае предыдущий результат просто сбрасывается.
Не используется с решателем liblinear. См. :term:`глоссарий <warm_start>`.

.. versionadded:: 0.17
*warm_start* для поддержки решателей *lbfgs*, *newton-cg*, *sag*, *saga*.
False
n_jobs n_jobs: int, значение по умолчанию — None

Не оказывает влияния.

.. deprecated:: 1.8
Параметр `n_jobs` объявлен устаревшим в версии 1.8 и будет удалён в версии 1.10.
None


Отображение конвейера, снижение размерности и классификатора

В этом разделе создаётся Pipeline с этапом снижения размерности PCA, классификатором SVC и отображается его визуальное представление.

from sklearn.decomposition import PCA
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC

steps = [("reduce_dim", PCA(n_components=4)), ("classifier", SVC(kernel="linear"))]
pipe = Pipeline(steps)
pipe  # click on the diagram below to see the details of each step
Pipeline(steps=[('reduce_dim', PCA(n_components=4)),
                ('classifier', SVC(kernel='linear'))])
В среде Jupyter повторно выполните эту ячейку, чтобы отобразить представление HTML, или доверьтесь записной книжке.
На GitHub невозможно отобразить представление HTML; попробуйте загрузить эту страницу с помощью nbviewer.org.
Параметры
steps steps: list of tuples

Список кортежей (имя этапа, оцениватель), которые объединяются в
последовательном порядке. Для совместимости с API scikit-learn все этапы
должны определять `fit`. Все этапы, кроме последнего, также должны определять
`transform`. Подробнее см. в разделе :ref:`Объединение оценивателей <combining_estimators>`.
[('reduce_dim', ...), ('classifier', ...)]
transform_input transform_input: list of str, default=None

Имена параметров :term:`метаданных`, которые конвейер должен преобразовать
перед передачей этапу, использующему их.

Это позволяет преобразовывать некоторые аргументы, передаваемые в ``fit`` (кроме ``X``),
на этапах конвейера вплоть до этапа, которому они нужны. Требование задаётся с помощью
:ref:`маршрутизации метаданных <metadata_routing>`.
Например, это можно использовать для передачи проверочной выборки через конвейер.

Этот параметр можно задать только при включённой маршрутизации метаданных. Её
можно включить с помощью ``sklearn.set_config(enable_metadata_routing=True)``.

.. добавлено в версии:: 1.6
None
memory memory: str or object with the joblib.Memory interface, default=None

Используется для кэширования обученных преобразователей конвейера. Последний этап
никогда не кэшируется, даже если это преобразователь. По умолчанию кэширование
не выполняется. Если указана строка, она задаёт путь к каталогу
кэширования. Включение кэширования приводит к клонированию преобразователей
перед обучением. Поэтому нельзя напрямую проверить экземпляр преобразователя,
переданный конвейеру. Чтобы проверить оцениватели внутри конвейера, используйте атрибут
``named_steps`` или ``steps``. Кэширование преобразователей полезно,
если обучение занимает много времени. Пример включения кэширования см. в разделе
:ref:`sphx_glr_auto_examples_neighbors_plot_caching_nearest_neighbors.py`.
None
verbose verbose: bool, default=False

Если True, по завершении каждого этапа будет выводиться время, затраченное
на его обучение.
False
Параметры
n_components n_components: int, float or 'mle', default=None

Количество сохраняемых компонент.
Если n_components не задан, сохраняются все компоненты::

n_components == min(n_samples, n_features)

Если ``n_components == 'mle'`` и ``svd_solver == 'full'``, для определения
размерности используется метод максимального правдоподобия Минка (MLE). Значение ``n_components == 'mle'``
приведёт к интерпретации ``svd_solver == 'auto'`` как ``svd_solver == 'full'``.

Если ``0 < n_components < 1`` и ``svd_solver == 'full'``, выбирается
такое количество компонент, чтобы объясняемая доля дисперсии была
больше процента, заданного параметром n_components.

Если ``svd_solver == 'arpack'``, количество компонент должно быть
строго меньше минимума из n_features и n_samples.

Таким образом, в случае None получаем::

n_components == min(n_samples, n_features) - 1
4
copy copy: bool, default=True

Если False, данные, переданные в fit, перезаписываются, и вызов
fit(X).transform(X) не даст ожидаемых результатов;
вместо этого используйте fit_transform(X).
True
whiten whiten: bool, default=False

Если True (по умолчанию False), векторы `components_` умножаются
на квадратный корень из n_samples, а затем делятся на сингулярные значения,
чтобы обеспечить некоррелированные выходные данные с единичными дисперсиями по компонентам.

Отбеливание удаляет часть информации из преобразованного сигнала
(относительные масштабы дисперсии компонент), но иногда
может повысить точность прогнозирования последующих оценивателей,
приводя данные в соответствие с некоторыми жёстко заданными предположениями.
False
svd_solver svd_solver: {'auto', 'full', 'covariance_eigh', 'arpack', 'randomized'}, default='auto'

"auto" :
Алгоритм выбирается по умолчанию согласно политике 'auto' на основе `X.shape` и
`n_components`: если во входных данных меньше 1000 признаков и
количество образцов более чем в 10 раз превышает их количество, используется алгоритм
"covariance_eigh". В противном случае, если размер входных данных превышает 500x500
и количество извлекаемых компонент меньше 80% от
наименьшего измерения данных, выбирается более эффективный
метод "randomized". Иначе вычисляется точное полное разложение SVD,
которое при необходимости затем усекается.
"full" :
Вычислить точное полное разложение SVD с помощью стандартного решателя LAPACK через
`scipy.linalg.svd` и выбрать компоненты на этапе последующей обработки.
"covariance_eigh" :
Предварительно вычислить ковариационную матрицу (для центрированных данных), выполнить
классическое разложение на собственные значения ковариационной матрицы,
обычно с помощью LAPACK, и выбрать компоненты на этапе последующей обработки.
Этот алгоритм очень эффективен при n_samples >> n_features и небольшом
n_features. Однако при большом n_features он неприменим
(для материализации ковариационной матрицы требуется большой объём памяти). Также следует учитывать, что по сравнению с алгоритмом "full"
этот алгоритм фактически удваивает число обусловленности и поэтому
менее устойчив численно (например, для входных данных с большим
диапазоном сингулярных значений).
"arpack" :
Вычислить усечённое до `n_components` разложение SVD с помощью решателя ARPACK через
`scipy.sparse.linalg.svds`. Требуется строгое условие
`0 < n_components < min(X.shape)`
"randomized" :
Вычислить рандомизированное разложение SVD методом Халко и др.

.. добавлено в версии:: 0.18.0

.. изменено в версии:: 1.5
Добавлен алгоритм 'covariance_eigh'.
'auto'
tol tol: float, default=0.0

Допуск для сингулярных значений, вычисляемых алгоритмом svd_solver == 'arpack'.
Должен находиться в диапазоне [0.0, infinity).

.. добавлено в версии:: 0.18.0
0.0
iterated_power iterated_power: int or 'auto', default='auto'

Количество итераций метода степенных итераций, используемого
при svd_solver == 'randomized'.
Должно находиться в диапазоне [0, infinity).

.. добавлено в версии:: 0.18.0
'auto'
n_oversamples n_oversamples: int, default=10

Этот параметр имеет значение только при `svd_solver="randomized"`.
Он задаёт дополнительное количество случайных векторов, используемых для выборки
пространства `X` и обеспечения достаточной обусловленности. Подробнее см.
:func:`~sklearn.utils.extmath.randomized_svd`.

.. добавлено в версии:: 1.1
10
power_iteration_normalizer power_iteration_normalizer: {'auto', 'QR', 'LU', 'none'}, default='auto'

Нормализатор степенных итераций для алгоритма рандомизированного разложения SVD.
Не используется алгоритмом ARPACK. Подробнее см. :func:`~sklearn.utils.extmath.randomized_svd`.

.. добавлено в версии:: 1.1
'auto'
random_state random_state: int, RandomState instance or None, default=None

Используется при работе алгоритмов 'arpack' или 'randomized'. Передайте целое число,
чтобы обеспечить воспроизводимость результатов при нескольких вызовах функции.
См. :term:`глоссарий <random_state>`.

.. добавлено в версии:: 0.18.0
None
Параметры
kernel kernel: {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'} or callable, default='rbf'

Задаёт тип ядра, используемого алгоритмом. Если
ничего не указано, используется 'rbf'. Если указана вызываемая функция, она используется для
предварительного вычисления матрицы ядра по матрицам данных; эта матрица должна быть
массивом формы ``(n_samples, n_samples)``. Наглядное
представление различных типов ядер см. в разделе
:ref:`sphx_glr_auto_examples_svm_plot_svm_kernels.py`.
'linear'
C C: float, default=1.0

Параметр регуляризации. Сила регуляризации
обратно пропорциональна C. Значение должно быть строго положительным. Штраф
задаётся как квадрат штрафа l2. Наглядное представление влияния
масштабирования параметра регуляризации C см. в разделе
:ref:`sphx_glr_auto_examples_svm_plot_svm_scale_c.py`.
1.0
degree degree: int, default=3

Степень полиномиальной функции ядра ('poly').
Должна быть неотрицательной. Игнорируется для всех остальных ядер.
3
gamma gamma: {'scale', 'auto'} or float, default='scale'

Коэффициент ядра для 'rbf', 'poly' и 'sigmoid'.

- если задано ``gamma='scale'`` (по умолчанию), используется
значение 1 / (n_features * X.var()),
- если задано 'auto', используется 1 / n_features,
- если задано число с плавающей точкой, оно должно быть неотрицательным.

.. изменено в версии:: 0.22
Значение ``gamma`` по умолчанию изменено с 'auto' на 'scale'.
'scale'
coef0 coef0: float, default=0.0

Свободный член функции ядра.
Имеет значение только для 'poly' и 'sigmoid'.
0.0
shrinking shrinking: bool, default=True

Использовать ли эвристику уменьшения.
См. :ref:`руководство пользователя <shrinking_svm>`.
True
probability probability: bool, default=False

Включить ли оценку вероятностей. Этот параметр необходимо включить до
вызова `fit`. Это замедлит выполнение метода, поскольку внутри него используется
перекрёстная проверка с 5 блоками, а результаты `predict_proba` могут не совпадать с
результатами `predict`. Подробнее см. в разделе :ref:`руководства пользователя <scores_probabilities>`.

.. устарел:: 1.9
Параметр `probability` устарел и будет удалён в версии 1.11.
Вместо `SVC(probability=True)` используйте
`CalibratedClassifierCV(SVC(), ensemble=False)`.
'deprecated'
tol tol: float, default=1e-3

Допуск для критерия остановки.
0.001
cache_size cache_size: float, default=200

Задаёт размер кэша ядра (в МБ).
200
class_weight class_weight: dict or 'balanced', default=None

Устанавливает параметр C для класса i равным class_weight[i]*C для
SVC. Если параметр не задан, предполагается, что вес
всех классов равен единице.
Режим "balanced" использует значения y для автоматической настройки
весов обратно пропорционально частотам классов во входных данных
по формуле ``n_samples / (n_classes * np.bincount(y))``.
None
verbose verbose: bool, default=False

Включить подробный вывод. Обратите внимание: этот параметр использует настройку времени выполнения
в libsvm для всего процесса; при включении она может работать
некорректно в многопоточной среде.
False
max_iter max_iter: int, default=-1

Предельное количество итераций решателя или -1, если ограничение отсутствует.
-1
decision_function_shape decision_function_shape: {'ovo', 'ovr'}, default='ovr'

Возвращать ли функцию принятия решений «один против остальных» ('ovr') формы
(n_samples, n_classes), как у всех остальных классификаторов, или исходную
функцию принятия решений libsvm «один против одного» ('ovo') формы
(n_samples, n_classes * (n_classes - 1) / 2). Однако обратите внимание, что
внутри для обучения моделей всегда используется многоклассовая стратегия «один против одного» ('ovo');
матрица ovr строится только на основе матрицы ovo.
Параметр игнорируется при бинарной классификации.

.. изменено в версии:: 0.19
По умолчанию decision_function_shape имеет значение 'ovr'.

.. добавлено в версии:: 0.17
Рекомендуется использовать *decision_function_shape='ovr'*.

.. изменено в версии:: 0.17
Устарели значения *decision_function_shape='ovo' и None*.
'ovr'
break_ties break_ties: bool, default=False

Если значение True, задано ``decision_function_shape='ovr'`` и количество классов > 2,
:term:`predict` будет разрешать ничьи согласно значениям уверенности
:term:`decision_function`; в противном случае возвращается первый из классов,
набравших одинаковый результат. Обратите внимание: разрешение ничьих требует
значительно больше вычислений, чем обычный вызов predict. Пример использования
с ``decision_function_shape='ovr'`` см. в разделе :ref:`sphx_glr_auto_examples_svm_plot_svm_tie_breaking.py`.

.. добавлено в версии:: 0.22
False
random_state random_state: int, RandomState instance or None, default=None

Управляет генерацией псевдослучайных чисел для перемешивания данных при
оценке вероятностей. Игнорируется, если `probability` имеет значение False.
Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции.
См. :term:`глоссарий <random_state>`.
None


Отображение сложного конвейера с объединённым преобразователем столбцов

В этом разделе создаётся сложный Pipeline с ColumnTransformer и классификатором LogisticRegression, а также отображается его визуальное представление.

import numpy as np

from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline, make_pipeline
from sklearn.preprocessing import OneHotEncoder, StandardScaler

numeric_preprocessor = Pipeline(
    steps=[
        ("imputation_mean", SimpleImputer(missing_values=np.nan, strategy="mean")),
        ("scaler", StandardScaler()),
    ]
)

categorical_preprocessor = Pipeline(
    steps=[
        (
            "imputation_constant",
            SimpleImputer(fill_value="missing", strategy="constant"),
        ),
        ("onehot", OneHotEncoder(handle_unknown="ignore")),
    ]
)

preprocessor = ColumnTransformer(
    [
        ("categorical", categorical_preprocessor, ["state", "gender"]),
        ("numerical", numeric_preprocessor, ["age", "weight"]),
    ]
)

pipe = make_pipeline(preprocessor, LogisticRegression(max_iter=500))
pipe  # click on the diagram below to see the details of each step
Pipeline(steps=[('columntransformer',
                 ColumnTransformer(transformers=[('categorical',
                                                  Pipeline(steps=[('imputation_constant',
                                                                   SimpleImputer(fill_value='missing',
                                                                                 strategy='constant')),
                                                                  ('onehot',
                                                                   OneHotEncoder(handle_unknown='ignore'))]),
                                                  ['state', 'gender']),
                                                 ('numerical',
                                                  Pipeline(steps=[('imputation_mean',
                                                                   SimpleImputer()),
                                                                  ('scaler',
                                                                   StandardScaler())]),
                                                  ['age', 'weight'])])),
                ('logisticregression', LogisticRegression(max_iter=500))])
В среде Jupyter повторно выполните эту ячейку, чтобы отобразить представление HTML, или доверьте блокноту.
На GitHub невозможно отобразить представление HTML. Попробуйте открыть эту страницу с помощью nbviewer.org.
Параметры
steps steps: список кортежей

Список кортежей (имя шага, оцениватель), которые будут объединены
в указанном порядке. Для совместимости с API scikit-learn все шаги
должны определять `fit`. Все шаги, кроме последнего, также должны определять `transform`. Подробнее см.
:ref:`Объединение оценивателей <combining_estimators>`.
[('columntransformer', ...), ('logisticregression', ...)]
transform_input transform_input: список строк, по умолчанию None

Имена параметров :term:`метаданных`, которые конвейер должен преобразовать
перед передачей шагу, использующему их.

Это позволяет преобразовывать некоторые входные аргументы ``fit`` (кроме ``X``)
с помощью шагов конвейера вплоть до шага, которому они требуются.
Требование задаётся через :ref:`маршрутизацию метаданных <metadata_routing>`.
Например, это можно использовать для передачи проверочного набора через конвейер.

Задать этот параметр можно, только если включена маршрутизация метаданных. Её
можно включить с помощью ``sklearn.set_config(enable_metadata_routing=True)``.

.. versionadded:: 1.6
None
memory memory: строка или объект с интерфейсом joblib.Memory, по умолчанию None

Используется для кэширования обученных преобразователей конвейера. Последний шаг
никогда не кэшируется, даже если это преобразователь. По умолчанию кэширование
не выполняется. Если задана строка, она обозначает путь к каталогу
кэширования. Включение кэширования приводит к клонированию преобразователей
перед обучением. Поэтому экземпляр преобразователя, переданный
конвейеру, нельзя проверить напрямую. Используйте атрибут ``named_steps``
или ``steps`` для проверки оценивателей в конвейере. Кэширование
преобразователей полезно, если обучение занимает много времени. См.
:ref:`sphx_glr_auto_examples_neighbors_plot_caching_nearest_neighbors.py`
пример включения кэширования.
None
verbose verbose: bool, по умолчанию False

Если True, по завершении каждого шага будет выводиться время, затраченное на его
обучение.
False
Параметры
transformers transformers: список кортежей

Список кортежей (имя, преобразователь, столбцы), задающих
объекты-преобразователи, применяемые к подмножествам данных.

name : str
Как и в Pipeline и FeatureUnion, это позволяет задавать преобразователь и
его параметры с помощью ``set_params`` и искать их при поиске по сетке.
transformer : {'drop', 'passthrough'} или оцениватель
Оцениватель должен поддерживать :term:`fit` и :term:`transform`.
Также допускаются специальные строки 'drop' и 'passthrough',
указывающие соответственно, что столбцы нужно удалить или передать
без преобразования.
columns : str, массивоподобный объект из str, int, массивоподобный объект из int, массивоподобный объект из bool, срез или вызываемый объект
Индексы данных по второй оси. Целые числа трактуются как
позиционные индексы столбцов, а строки могут ссылаться на столбцы DataFrame
по имени. Если ``transformer`` ожидает, что X будет одномерным массивоподобным объектом (вектором),
следует использовать скалярную строку или целое число;
в противном случае преобразователю будет передан двумерный массив.
Вызываемому объекту передаются входные данные `X`; он может вернуть любое из
перечисленных выше значений. Для выбора нескольких столбцов по имени или типу данных можно использовать
:obj:`make_column_selector`.
[('categorical', ...), ('numerical', ...)]
remainder remainder: {'drop', 'passthrough'} или оцениватель, по умолчанию 'drop'

По умолчанию преобразуются только столбцы, указанные в `transformers`,
и объединяются в выходных данных, а неуказанные
столбцы удаляются (значение по умолчанию — ``'drop'``).
Если задать ``remainder='passthrough'``, все оставшиеся столбцы, которые
не указаны в `transformers`, но присутствуют в данных, переданных
в `fit`, будут автоматически переданы дальше. Это подмножество столбцов
объединяется с результатом преобразователей. Для фреймов данных
дополнительные столбцы, отсутствовавшие при вызове `fit`, будут исключены из результата
`transform`.
Если задать для ``remainder`` оцениватель, оставшиеся
неуказанные столбцы будут обрабатываться этим оценивателем ``remainder``. Оцениватель
должен поддерживать :term:`fit` и :term:`transform`.
Обратите внимание: для использования этой возможности порядок столбцов DataFrame,
передаваемых при вызовах :term:`fit` и :term:`transform`, должен совпадать.
'drop'
sparse_threshold sparse_threshold: float, по умолчанию 0.3

Если выходные данные разных преобразователей содержат разреженные матрицы,
они будут объединены в разреженную матрицу, если общая плотность
ниже этого значения. Используйте ``sparse_threshold=0``, чтобы всегда возвращать
плотную матрицу. Если преобразованные выходные данные состоят только из плотных данных,
результат объединения будет плотным, и этот параметр будет проигнорирован.
0.3
n_jobs n_jobs: int, по умолчанию None

Количество задач, выполняемых параллельно.
``None`` означает 1, если только не используется контекст :obj:`joblib.parallel_backend`.
``-1`` означает использование всех процессоров. Подробнее см. :term:`Глоссарий <n_jobs>`.
None
transformer_weights transformer_weights: dict, по умолчанию None

Множители весов признаков для каждого преобразователя. Результат
преобразователя умножается на эти веса. Ключи — имена преобразователей,
значения — веса.
None
verbose verbose: bool, по умолчанию False

Если True, по завершении обучения каждого преобразователя будет выводиться
затраченное время.
False
verbose_feature_names_out verbose_feature_names_out: bool, str или Callable[[str, str], str], по умолчанию True

- Если True, :meth:`ColumnTransformer.get_feature_names_out` будет добавлять в начало
всех имён признаков имя преобразователя, создавшего соответствующий
признак. Это эквивалентно установке значения
`verbose_feature_names_out="{transformer_name}__{feature_name}"`.
- Если False, :meth:`ColumnTransformer.get_feature_names_out` не будет добавлять
префиксы к именам признаков и выдаст ошибку, если имена признаков не уникальны.
- Если ``Callable[[str, str], str]``,
:meth:`ColumnTransformer.get_feature_names_out` переименует все признаки
с использованием имени преобразователя. Первый аргумент вызываемого объекта — имя
преобразователя, второй — имя признака. Возвращённая
строка станет новым именем признака.
- Если ``str``, значение должно быть строкой, готовой к форматированию. Указанная строка будет
отформатирована с использованием двух имён полей: ``transformer_name`` и ``feature_name``.
Например, ``"{feature_name}__{transformer_name}"``. Подробнее см. метод :meth:`str.format`
из стандартной библиотеки.

.. versionadded:: 1.0

.. versionchanged:: 1.6
`verbose_feature_names_out` может быть вызываемым объектом или строкой для форматирования.
True
['state', 'gender']
Параметры
strategy strategy: str or Callable, default='mean'

Стратегия заполнения пропусков.

- Если указано "mean", пропущенные значения заменяются средним значением
в каждом столбце. Можно использовать только для числовых данных.
- Если указано "median", пропущенные значения заменяются медианой
в каждом столбце. Можно использовать только для числовых данных.
- Если указано "most_frequent", пропущенные значения заменяются наиболее часто встречающимся
значением в каждом столбце. Можно использовать для строковых и числовых данных.
Если таких значений несколько, возвращается наименьшее.
- Если указано "constant", пропущенные значения заменяются значением fill_value. Можно
использовать для строковых и числовых данных.
- Если передан экземпляр Callable, пропущенные значения заменяются скалярной
статистикой, полученной при применении вызываемого объекта к плотному одномерному
массиву, содержащему непустые значения каждого столбца.

.. versionadded:: 0.20
strategy="constant" для заполнения фиксированным значением.

.. versionadded:: 1.5
strategy=callable для заполнения пользовательским значением.
'constant'
fill_value fill_value: str or numerical value, default=None

Если strategy == "constant", значение `fill_value` используется для замены всех
вхождений missing_values. Для строковых или объектных типов данных
`fill_value` должен быть строкой.
Если значение равно `None`, при заполнении числовых
данных `fill_value` будет равен 0, а для строковых или объектных типов данных — "missing_value".
'missing'
missing_values missing_values: int, float, str, np.nan, None or pandas.NA, default=np.nan

Заполнитель для пропущенных значений. Все вхождения
`missing_values` будут заполнены. Для фреймов данных pandas
с целочисленными типами с поддержкой null и пропущенными значениями `missing_values`
можно задать как `np.nan`, так и `pd.NA`.
nan
copy copy: bool, default=True

Если True, будет создана копия X. Если False, по возможности
заполнение будет выполнено на месте. Обратите внимание: в следующих случаях
новая копия будет создана в любом случае, даже если задано `copy=False`:

- Если `X` не является массивом значений с плавающей точкой;
- Если `X` закодирован как CSR-матрица;
- Если `add_indicator=True`.
True
add_indicator add_indicator: bool, default=False

Если True, преобразование :class:`MissingIndicator` будет добавлено к выходным данным
преобразования импьютера. Это позволяет модели для предсказаний
учитывать пропуски, несмотря на заполнение. Если у признака нет
пропущенных значений во время обучения, он не будет включён в
индикатор пропусков, даже если пропущенные значения появятся во время
преобразования.
False
keep_empty_features keep_empty_features: bool, default=False

Если True, признаки, состоящие исключительно из пропущенных значений на момент
вызова `fit`, будут включены в результат вызова `transform`.
Заполненное значение всегда равно `0`, за исключением случая, когда `strategy="constant"`:
тогда вместо него используется `fill_value`.

.. versionadded:: 1.2
False
Параметры
handle_unknown handle_unknown: {'error', 'ignore', 'infrequent_if_exist', 'warn'}, default='error'

Задает способ обработки неизвестных категорий во время :meth:`transform`.

- 'error' : Если во время преобразования обнаружена неизвестная категория, возникает ошибка.
- 'ignore' : Если во время преобразования встречается неизвестная категория,
результирующие столбцы с one-hot-кодированием для этого признака
будут заполнены нулями. При обратном преобразовании неизвестная категория
обозначается как None.
- 'infrequent_if_exist' : Если во время преобразования встречается неизвестная категория,
результирующие столбцы с one-hot-кодированием для этого признака
будут соответствовать редкой категории, если она существует. Редкая категория
будет помещена в последнюю позицию кодирования. При обратном преобразовании неизвестная категория
будет сопоставлена категории `'infrequent'`, если она существует. Если категория
`'infrequent'` не существует, то :meth:`transform` и
:meth:`inverse_transform` обработают неизвестную категорию так же, как
при `handle_unknown='ignore'`. Редкие категории определяются на основе
`min_frequency` и `max_categories`. Подробнее см. в
:ref:`Руководстве пользователя <encoder_infrequent_categories>`.
- 'warn' : Если во время преобразования встречается неизвестная категория,
выдаётся предупреждение, после чего кодирование выполняется так, как описано для
`handle_unknown="infrequent_if_exist"`.

.. versionchanged:: 1.1
Добавлена поддержка `'infrequent_if_exist'` для автоматической обработки неизвестных
и редких категорий.

.. versionadded:: 1.6
В версии 1.6 добавлен параметр `"warn"`.
'ignore'
categories categories: 'auto' or a list of array-like, default='auto'

Категории (уникальные значения) для каждого признака:

- 'auto' : Автоматически определять категории по обучающим данным.
- list : ``categories[i]`` содержит категории, ожидаемые в i-м
столбце. В передаваемом списке категорий нельзя смешивать строки и числовые
значения одного признака; числовые значения должны быть отсортированы.

Используемые категории можно найти в атрибуте ``categories_``.

.. versionadded:: 0.20
'auto'
drop drop: {'first', 'if_binary'} or an array-like of shape (n_features,), default=None

Задает способ удаления одной из категорий для каждого
признака. Это полезно в ситуациях, когда идеально коллинеарные
признаки создают проблемы, например при передаче полученных данных
в модель линейной регрессии без регуляризации.

Однако удаление одной категории нарушает симметрию исходного
представления и поэтому может привести к смещению в последующих моделях,
например в моделях линейной классификации или регрессии с регуляризацией.

- None : оставить все признаки (значение по умолчанию).
- 'first' : удалить первую категорию каждого признака. Если присутствует только одна
категория, признак будет удалён полностью.
- 'if_binary' : удалить первую категорию каждого признака с двумя
категориями. Признаки с одной или более чем двумя категориями
останутся без изменений.
- array : ``drop[i]`` — категория признака ``X[:, i]``, которую
следует удалить.

Если для группировки редких категорий заданы `max_categories` или `min_frequency`,
удаление выполняется после группировки.

.. versionadded:: 0.21
Параметр `drop` добавлен в версии 0.21.

.. versionchanged:: 0.23
В версии 0.23 добавлен параметр `drop='if_binary'`.

.. versionchanged:: 1.1
Добавлена поддержка удаления редких категорий.
None
sparse_output sparse_output: bool, default=True

Если задано ``True``, возвращается разреженная матрица/массив SciPy
в формате "Compressed Sparse Row" (CSR).

.. versionadded:: 1.2
`sparse` переименован в `sparse_output`
True
dtype dtype: number type, default=np.float64

Требуемый тип данных выходных значений.
<class 'numpy.float64'>
min_frequency min_frequency: int or float, default=None

Задает минимальную частоту, ниже которой категория считается
редкой.

- Если задано значение типа `int`, редкими считаются категории с меньшей
мощностью.

- Если задано значение типа `float`, редкими считаются категории, мощность которых меньше
`min_frequency * n_samples`.

.. versionadded:: 1.1
Подробнее см. в :ref:`Руководстве пользователя <encoder_infrequent_categories>`.
None
max_categories max_categories: int, default=None

Задает верхний предел количества выходных признаков для каждого входного
признака при работе с редкими категориями. Если есть редкие
категории, `max_categories` включает категорию, представляющую
редкие категории, наряду с часто встречающимися категориями. Если задано значение `None`,
количество выходных признаков не ограничено.

.. versionadded:: 1.1
Подробнее см. в :ref:`Руководстве пользователя <encoder_infrequent_categories>`.
None
feature_name_combiner feature_name_combiner: "concat" or callable, default="concat"

Вызываемый объект с сигнатурой `def callable(input_feature, category)`, возвращающий
строку. Используется для создания имён признаков, возвращаемых методом
:meth:`get_feature_names_out`.

`"concat"` объединяет имя закодированного признака и категорию в строку
`feature + "_" + str(category)`. Например, для признака X со значениями 1, 6, 7 будут созданы
имена признаков `X_1, X_6, X_7`.

.. versionadded:: 1.3
'concat'
['age', 'weight']
Параметры
missing_values missing_values: int, float, str, np.nan, None or pandas.NA, default=np.nan

Заполнитель для пропущенных значений. Все вхождения
`missing_values` будут заполнены. Для фреймов данных pandas
с целочисленными типами с поддержкой null и пропущенными значениями `missing_values`
можно задать как `np.nan`, так и `pd.NA`.
nan
strategy strategy: str or Callable, default='mean'

Стратегия заполнения пропусков.

- Если указано "mean", пропущенные значения заменяются средним значением
в каждом столбце. Можно использовать только для числовых данных.
- Если указано "median", пропущенные значения заменяются медианой
в каждом столбце. Можно использовать только для числовых данных.
- Если указано "most_frequent", пропущенные значения заменяются наиболее часто встречающимся
значением в каждом столбце. Можно использовать для строковых и числовых данных.
Если таких значений несколько, возвращается наименьшее.
- Если указано "constant", пропущенные значения заменяются значением fill_value. Можно
использовать для строковых и числовых данных.
- Если передан экземпляр Callable, пропущенные значения заменяются скалярной
статистикой, полученной при применении вызываемого объекта к плотному одномерному
массиву, содержащему непустые значения каждого столбца.

.. versionadded:: 0.20
strategy="constant" для заполнения фиксированным значением.

.. versionadded:: 1.5
strategy=callable для заполнения пользовательским значением.
'mean'
fill_value fill_value: str or numerical value, default=None

Если strategy == "constant", значение `fill_value` используется для замены всех
вхождений missing_values. Для строковых или объектных типов данных
`fill_value` должен быть строкой.
Если значение равно `None`, при заполнении числовых
данных `fill_value` будет равен 0, а для строковых или объектных типов данных — "missing_value".
None
copy copy: bool, default=True

Если True, будет создана копия X. Если False, по возможности
заполнение будет выполнено на месте. Обратите внимание: в следующих случаях
новая копия будет создана в любом случае, даже если задано `copy=False`:

- Если `X` не является массивом значений с плавающей точкой;
- Если `X` закодирован как CSR-матрица;
- Если `add_indicator=True`.
True
add_indicator add_indicator: bool, default=False

Если True, преобразование :class:`MissingIndicator` будет добавлено к выходным данным
преобразования импьютера. Это позволяет модели для предсказаний
учитывать пропуски, несмотря на заполнение. Если у признака нет
пропущенных значений во время обучения, он не будет включён в
индикатор пропусков, даже если пропущенные значения появятся во время
преобразования.
False
keep_empty_features keep_empty_features: bool, default=False

Если True, признаки, состоящие исключительно из пропущенных значений на момент
вызова `fit`, будут включены в результат вызова `transform`.
Заполненное значение всегда равно `0`, за исключением случая, когда `strategy="constant"`:
тогда вместо него используется `fill_value`.

.. versionadded:: 1.2
False
Параметры
copy copy: bool, default=True

Если False, попытаться избежать копирования и выполнить масштабирование на месте.
Это не гарантируется; например, если данные не являются массивом NumPy или разреженной CSR-матрицей scipy,
может быть возвращена копия.
True
with_mean with_mean: bool, default=True

Если True, центрировать данные перед масштабированием.
Не работает (и вызывает исключение) при применении к
разреженным матрицам, поскольку центрирование требует создания плотной
матрицы, которая в типичных сценариях использования может оказаться слишком большой для размещения в
памяти.
True
with_std with_std: bool, default=True

Если True, масштабировать данные до единичной дисперсии (или, что эквивалентно,
единичного стандартного отклонения).
True
Параметры
max_iter max_iter: int, default=100

Максимальное количество итераций, выполняемых решателями для сходимости.
500
penalty penalty: {'l1', 'l2', 'elasticnet', None}, default='l2'

Задает норму штрафа:

- `None`: штраф не добавляется;
- `'l2'`: добавляется штрафной член L2; это значение используется по умолчанию;
- `'l1'`: добавляется штрафной член L1;
- `'elasticnet'`: добавляются штрафные члены L1 и L2.

.. warning::
Некоторые штрафы могут быть несовместимы с некоторыми решателями. См. параметр
`solver` ниже, чтобы узнать о совместимости штрафа и
решателя.

.. versionadded:: 0.19
штраф L1 с решателем SAGA (поддержка 'multinomial' + L1)

.. deprecated:: 1.8
Параметр `penalty` объявлен устаревшим в версии 1.8 и будет удален в 1.10.
Вместо него используйте `l1_ratio` и `C`. Для `penalty='l2'` задайте `l1_ratio=0`,
для `penalty='l1'` — `l1_ratio=1`, для `penalty='elasticnet'` задайте `l1_ratio` равным любому числу с плавающей точкой от 0 до 1,
а для `penalty=None` — `C=np.inf`.
'deprecated'
C C: float, default=1.0

Обратная сила регуляризации; должно быть положительным числом с плавающей точкой.
Как и в методе опорных векторов, меньшие значения задают более сильную
регуляризацию. При `C=np.inf` логистическая регрессия не штрафуется.
Наглядный пример влияния настройки параметра `C`
при штрафе L1 см. в:
:ref:`sphx_glr_auto_examples_linear_model_plot_logistic_path.py`.
1.0
l1_ratio l1_ratio: float, default=0.0

Параметр смешивания Elastic-Net, где `0 <= l1_ratio <= 1`. Значение
`l1_ratio=1` задает чистый штраф L1, а `l1_ratio=0` — чистый штраф L2.
Любое значение от 0 до 1 задает штраф Elastic-Net вида
`l1_ratio * L1 + (1 - l1_ratio) * L2`.

.. warning::
Некоторые значения `l1_ratio`, то есть некоторые штрафы, могут быть несовместимы с некоторыми
решателями. См. параметр `solver` ниже, чтобы узнать о совместимости
штрафа и решателя.

.. versionchanged:: 1.8
Значение по умолчанию изменено с None на 0.0.

.. deprecated:: 1.8
`None` объявлен устаревшим и будет удален в версии 1.10. Всегда используйте
`l1_ratio` для задания типа штрафа.
0.0
dual dual: bool, default=False

Двойственная (с ограничениями) или прямая (регуляризованная, см. также
:ref:`это уравнение <regularized-logistic-loss>`) формулировка. Двойственная формулировка
реализована только для штрафа L2 с решателем liblinear. Предпочтительно задавать `dual=False`,
если n_samples > n_features.
False
tol tol: float, default=1e-4

Допуск для критерия остановки.
0.0001
fit_intercept fit_intercept: bool, default=True

Указывает, следует ли добавить к функции принятия решения константу (также называемую смещением или свободным членом).
True
intercept_scaling intercept_scaling: float, default=1

Используется только при применении решателя `liblinear`
и если для `self.fit_intercept` задано значение `True`. В этом случае `x` становится
`[x, self.intercept_scaling]`,
то есть к вектору экземпляра добавляется «синтетический» признак с постоянным значением
`intercept_scaling`.
Свободный член становится равен
``intercept_scaling * synthetic_feature_weight``.

.. note::
Вес синтетического признака подвергается регуляризации L1 или L2, как и все остальные признаки.
Чтобы уменьшить влияние регуляризации на вес синтетического признака
(и, следовательно, на свободный член), необходимо увеличить `intercept_scaling`.
1
class_weight class_weight: dict or 'balanced', default=None

Веса классов в формате ``{class_label: weight}``.
Если не указано, предполагается, что вес всех классов равен единице.

Режим "balanced" использует значения y для автоматической настройки
весов, обратно пропорциональных частоте классов во входных данных,
по формуле ``n_samples / (n_classes * np.bincount(y))``.

Обратите внимание: эти веса будут перемножены с sample_weight (переданным
методу fit), если задан параметр sample_weight.

.. versionadded:: 0.17
*class_weight='balanced'*
None
random_state random_state: int, RandomState instance, default=None

Используется для перемешивания данных, если ``solver`` равен 'sag', 'saga' или 'liblinear'.
Подробности см. в :term:`глоссарии <random_state>`.
None
solver solver: {'lbfgs', 'liblinear', 'newton-cg', 'newton-cholesky', 'sag', 'saga'}, default='lbfgs'

Алгоритм, используемый в задаче оптимизации. По умолчанию — 'lbfgs'.
При выборе решателя можно учитывать следующие аспекты:

- 'lbfgs' — хороший вариант по умолчанию, поскольку он достаточно хорошо работает для широкого
класса задач.
- В задачах :term:`многоклассовой классификации` (`n_classes >= 3`) все решатели, кроме
'liblinear', минимизируют полную мультиномиальную функцию потерь; 'liblinear' вызовет
ошибку.
- 'newton-cholesky' — хороший выбор, если
`n_samples` >> `n_features * n_classes`, особенно при использовании категориальных признаков с редкими категориями, закодированных методом one-hot.
Обратите внимание: потребление памяти этим решателем квадратично зависит от `n_features * n_classes`,
поскольку он явно вычисляет полную матрицу Гессе.
- Для небольших наборов данных хорошим выбором будет 'liblinear', а 'sag'
и 'saga' быстрее работают на больших наборах;
- 'liblinear' по умолчанию поддерживает только бинарную классификацию. Для применения схемы «один против остальных» в многоклассовой задаче его можно обернуть в
:class:`~sklearn.multiclass.OneVsRestClassifier`.

.. warning::
Выбор алгоритма зависит от выбранного штрафа (`l1_ratio=0`
для штрафа L2, `l1_ratio=1` для штрафа L1 и `0 < l1_ratio < 1` для
Elastic-Net), а также от поддержки (мультиномиальной) многоклассовой классификации:

================= ======================== ======================
решатель l1_ratio мультиномиальная многоклассовая классификация
================= ======================== ======================
'lbfgs' l1_ratio=0 да
'liblinear' l1_ratio=1 или l1_ratio=0 нет
'newton-cg' l1_ratio=0 да
'newton-cholesky' l1_ratio=0 да
'sag' l1_ratio=0 да
'saga' 0<=l1_ratio<=1 да
================= ======================== ======================

.. note::
Быстрая сходимость 'sag' и 'saga' гарантируется только для признаков
примерно одинакового масштаба. Данные можно предварительно обработать
масштабировщиком из :mod:`sklearn.preprocessing`.

.. seealso::
Дополнительную информацию о :class:`LogisticRegression`, в частности
таблицу :ref:`Table <logistic_regression_solvers>` с описанием поддержки решателями штрафов,
см. в :ref:`руководстве пользователя <Logistic_regression>`.

.. versionadded:: 0.17
Решатель на основе стохастического градиента с усреднением (SAG). Поддержка мультиномиального режима добавлена в
версии 0.18.
.. versionadded:: 0.19
Решатель SAGA.
.. versionchanged:: 0.22
В версии 0.22 значение решателя по умолчанию изменено с 'liblinear' на 'lbfgs'.
.. versionadded:: 1.2
Решатель newton-cholesky. Поддержка мультиномиального режима добавлена в версии 1.6.
'lbfgs'
verbose verbose: int, default=0

Для решателей liblinear и lbfgs задайте любое положительное
значение, чтобы включить подробный вывод.
0
warm_start warm_start: bool, default=False

Если задано значение True, решение предыдущего вызова fit повторно используется в качестве
начального, иначе предыдущее решение просто сбрасывается.
Не применяется для решателя liblinear. См. :term:`глоссарий <warm_start>`.

.. versionadded:: 0.17
*warm_start* для поддержки решателей *lbfgs*, *newton-cg*, *sag*, *saga*.
False
n_jobs n_jobs: int, default=None

Не оказывает никакого влияния.

.. deprecated:: 1.8
`n_jobs` объявлен устаревшим в версии 1.8 и будет удален в 1.10.
None


Отображение поиска по сетке для конвейера с классификатором

В этом разделе создаётся GridSearchCV для Pipeline с RandomForestClassifier и отображается его визуальное представление.

import numpy as np

from sklearn.compose import ColumnTransformer
from sklearn.ensemble import RandomForestClassifier
from sklearn.impute import SimpleImputer
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline, make_pipeline
from sklearn.preprocessing import OneHotEncoder, StandardScaler

numeric_preprocessor = Pipeline(
    steps=[
        ("imputation_mean", SimpleImputer(missing_values=np.nan, strategy="mean")),
        ("scaler", StandardScaler()),
    ]
)

categorical_preprocessor = Pipeline(
    steps=[
        (
            "imputation_constant",
            SimpleImputer(fill_value="missing", strategy="constant"),
        ),
        ("onehot", OneHotEncoder(handle_unknown="ignore")),
    ]
)

preprocessor = ColumnTransformer(
    [
        ("categorical", categorical_preprocessor, ["state", "gender"]),
        ("numerical", numeric_preprocessor, ["age", "weight"]),
    ]
)

pipe = Pipeline(
    steps=[("preprocessor", preprocessor), ("classifier", RandomForestClassifier())]
)

param_grid = {
    "classifier__n_estimators": [200, 500],
    "classifier__max_features": ["auto", "sqrt", "log2"],
    "classifier__max_depth": [4, 5, 6, 7, 8],
    "classifier__criterion": ["gini", "entropy"],
}

grid_search = GridSearchCV(pipe, param_grid=param_grid, n_jobs=1)
grid_search  # click on the diagram below to see the details of each step
GridSearchCV(estimator=Pipeline(steps=[('preprocessor',
                                        ColumnTransformer(transformers=[('categorical',
                                                                         Pipeline(steps=[('imputation_constant',
                                                                                          SimpleImputer(fill_value='missing',
                                                                                                        strategy='constant')),
                                                                                         ('onehot',
                                                                                          OneHotEncoder(handle_unknown='ignore'))]),
                                                                         ['state',
                                                                          'gender']),
                                                                        ('numerical',
                                                                         Pipeline(steps=[('imputation_mean',
                                                                                          SimpleImputer()),
                                                                                         ('scaler',
                                                                                          StandardScaler())]),
                                                                         ['age',
                                                                          'weight'])])),
                                       ('classifier',
                                        RandomForestClassifier())]),
             n_jobs=1,
             param_grid={'classifier__criterion': ['gini', 'entropy'],
                         'classifier__max_depth': [4, 5, 6, 7, 8],
                         'classifier__max_features': ['auto', 'sqrt', 'log2'],
                         'classifier__n_estimators': [200, 500]})
В среде Jupyter повторно выполните эту ячейку, чтобы отобразить HTML-представление, или доверьте работу блокноту.
На GitHub HTML-представление отобразить не удаётся. Попробуйте загрузить эту страницу с помощью nbviewer.org.
Параметры
estimator estimator: объект-оценщик

Предполагается, что он реализует интерфейс оценщика scikit-learn.
Оценщик должен предоставлять функцию ``score``
или необходимо передать параметр ``scoring``.
Pipeline(step...lassifier())])
param_grid param_grid: словарь или список словарей

Словарь, в котором ключами являются имена параметров (`str`), а значениями — списки
проверяемых значений параметров, или список таких
словарей. В последнем случае проверяются сетки, заданные каждым словарём
в списке. Это позволяет выполнять поиск по любой последовательности
значений параметров.
{'classifier__criterion': ['gini', 'entropy'], 'classifier__max_depth': [4, 5, ...], 'classifier__max_features': ['auto', 'sqrt', ...], 'classifier__n_estimators': [200, 500]}
n_jobs n_jobs: int, по умолчанию=None

Количество задач, выполняемых параллельно.
``None`` означает 1, если только не используется контекст :obj:`joblib.parallel_backend`.
``-1`` означает использование всех процессоров. Подробнее см. :term:`Глоссарий <n_jobs>`

.. versionchanged:: v0.20
Значение `n_jobs` по умолчанию изменено с 1 на None
1
scoring scoring: str, вызываемый объект, список, кортеж или словарь, по умолчанию=None

Стратегия оценки производительности модели с перекрёстной проверкой на
тестовом наборе.

Если `scoring` задаёт одну метрику, можно использовать:

- одну строку (см. :ref:`scoring_string_names`);
- вызываемый объект (см. :ref:`scoring_callable`), возвращающий одно значение;
- `None`: используется :ref:`критерий оценки по умолчанию для оценщика <scoring_api_overview>`.

Если `scoring` задаёт несколько метрик, можно использовать:

- список или кортеж уникальных строк;
- вызываемый объект, возвращающий словарь, в котором ключами являются названия
метрик, а значениями — их оценки;
- словарь, в котором ключами являются названия метрик, а значениями — вызываемые объекты.

Пример см. в разделе :ref:`multimetric_grid_search`.
None
refit refit: bool, str или вызываемый объект, по умолчанию=True

Повторно обучить оценщик на всём наборе данных, используя найденные наилучшие параметры.

При оценке по нескольким метрикам здесь должна быть указана строка `str`, обозначающая
оценщик, который будет использоваться для поиска наилучших параметров при повторном обучении
оценщика в конце.

Если при выборе лучшего оценщика нужно учитывать не только максимальную оценку,
для ``refit`` можно задать функцию, возвращающую выбранный ``best_index_`` по заданному ``cv_results_``. В этом
случае значения ``best_estimator_`` и ``best_params_`` будут установлены
в соответствии с возвращённым ``best_index_``, а атрибут ``best_score_``
будет недоступен.

Повторно обученный оценщик доступен через атрибут ``best_estimator_``
и позволяет напрямую использовать ``predict`` для данного
экземпляра ``GridSearchCV``.

Также при оценке по нескольким метрикам атрибуты ``best_index_``,
``best_score_`` и ``best_params_`` будут доступны, только если
задан ``refit``; все они будут определяться относительно этого конкретного
оценщика.

Дополнительные сведения об оценке по нескольким метрикам см. в описании параметра ``scoring``.

См. :ref:`sphx_glr_auto_examples_model_selection_plot_grid_search_digits.py`,
чтобы узнать, как с помощью вызываемого объекта, переданного через `refit`,
создать пользовательскую стратегию выбора.

Пример использования ``refit=callable`` для балансировки сложности модели
и оценки с перекрёстной проверкой см. в разделе :ref:`этот пример
<sphx_glr_auto_examples_model_selection_plot_grid_search_refit_callable.py>`.

.. versionchanged:: 0.20
Добавлена поддержка вызываемых объектов.
True
cv cv: int, генератор перекрёстной проверки или итерируемый объект, по умолчанию=None

Определяет стратегию разделения данных для перекрёстной проверки.
Для cv допустимы следующие значения:

- None — использовать перекрёстную проверку с 5 блоками по умолчанию;
- целое число — указать количество блоков в `(Stratified)KFold`;
- :term:`разделитель CV`;
- итерируемый объект, возвращающий разделения (train, test) в виде массивов индексов.

Если задано целое число или None, а оценщик является классификатором и ``y``
содержит два или несколько классов, используется :class:`StratifiedKFold`. Во всех
остальных случаях используется :class:`KFold`. Эти разделители создаются
с параметром `shuffle=False`, поэтому разделения будут одинаковыми при каждом вызове.

Различные стратегии перекрёстной проверки, которые можно использовать здесь,
описаны в :ref:`руководстве пользователя <cross_validation>`.

.. versionchanged:: 0.22
Значение ``cv`` по умолчанию, если задано None, изменено с 3 блоков на 5.
None
verbose verbose: int, по умолчанию=0

Управляет подробностью выводимой во время обучения информации: чем выше
значение, тем подробнее журнал.

- 0: сообщения не выводятся;
- >=1: сводка общего количества обучений;
- >=2: время вычислений для каждого блока и кандидата параметров;
- >=3: индексы и оценки блоков;
- >=10: индексы кандидатов параметров и сообщения START перед каждым обучением.
0
pre_dispatch pre_dispatch: int или str, по умолчанию='2*n_jobs'

Управляет количеством задач, отправляемых на выполнение параллельно.
Уменьшение этого числа может помочь избежать чрезмерного
потребления памяти, когда на выполнение отправляется больше задач,
чем могут обработать ЦП. Для этого параметра допустимы следующие значения:

- None — все задачи сразу создаются и запускаются. Используйте
это значение для лёгких и быстро выполняющихся задач, чтобы избежать задержек,
связанных с запуском задач по запросу;
- целое число, задающее точное общее количество запускаемых задач;
- строка, задающая выражение через n_jobs, например '2*n_jobs'
'2*n_jobs'
error_score error_score: 'raise' или числовое значение, по умолчанию=np.nan

Значение оценки, присваиваемое в случае ошибки при обучении оценщика.
Если задано 'raise', возникает ошибка. Если указано числовое значение,
выдаётся предупреждение FitFailedWarning. Этот параметр не влияет на этап повторного
обучения: в этом случае ошибка возникает всегда.
nan
return_train_score return_train_score: bool, по умолчанию=False

Если задано ``False``, атрибут ``cv_results_`` не будет содержать оценки
на обучающих данных.
Вычисление оценок на обучающих данных позволяет понять, как разные
значения параметров влияют на компромисс между переобучением и недообучением.
Однако вычисление оценок на обучающем наборе может быть вычислительно
затратным и не является строго необходимым для выбора параметров,
обеспечивающих наилучшую обобщающую способность.

.. versionadded:: 0.19

.. versionchanged:: 0.21
Значение по умолчанию изменено с ``True`` на ``False``
False
Параметры
transformers transformers: список кортежей

Список кортежей (name, transformer, columns), задающих
объекты-преобразователи, применяемые к подмножествам данных.

name: str
Как и в Pipeline и FeatureUnion, это позволяет задавать преобразователь и
его параметры с помощью ``set_params`` и выполнять поиск по ним
при поиске по сетке.
transformer: {'drop', 'passthrough'} или оценщик
Оценщик должен поддерживать :term:`fit` и :term:`transform`.
Также допускаются специальные строки 'drop' и 'passthrough',
указывающие соответственно на удаление столбцов или на их передачу
без преобразования.
columns: str, массивоподобный объект строк, int, массивоподобный объект целых чисел, массивоподобный объект логических значений, срез или вызываемый объект
Выполняет индексацию данных по второй оси. Целые числа интерпретируются как
порядковые номера столбцов, а строки могут указывать на столбцы DataFrame
по имени. Если ``transformer`` ожидает, что X будет одномерным массивоподобным объектом (вектором),
следует использовать скалярную строку или целое число;
в противном случае преобразователю будет передан двумерный массив.
Вызываемому объекту передаются входные данные `X`; он может возвращать любое из
перечисленных выше значений. Для выбора нескольких столбцов по имени или типу данных можно использовать
:obj:`make_column_selector`.
[('categorical', ...), ('numerical', ...)]
remainder remainder: {'drop', 'passthrough'} или оценщик, по умолчанию='drop'

По умолчанию преобразуются и объединяются в выходных данных только столбцы,
указанные в `transformers`; остальные столбцы удаляются (значение по умолчанию — ``'drop'``).
Если задать ``remainder='passthrough'``, все остальные столбцы, не указанные в `transformers`,
но присутствующие в данных, переданных в `fit`, будут автоматически переданы без преобразования. Это подмножество столбцов
объединяется с результатом преобразователей. Для фреймов данных
дополнительные столбцы, отсутствовавшие при вызове `fit`, исключаются из результата
`transform`.
Если в качестве ``remainder`` указать оценщик, для остальных
неуказанных столбцов будет использоваться этот оценщик. Оценщик
должен поддерживать :term:`fit` и :term:`transform`.
Обратите внимание: для использования этой возможности порядок столбцов DataFrame,
передаваемых в :term:`fit` и :term:`transform`, должен совпадать.
'drop'
sparse_threshold sparse_threshold: float, по умолчанию=0.3

Если результаты разных преобразователей содержат разреженные матрицы,
они объединяются в разреженную матрицу, если общая плотность
ниже этого значения. Задайте ``sparse_threshold=0``, чтобы всегда возвращать
плотную матрицу. Если преобразованные выходные данные состоят только из плотных данных,
результат объединения будет плотным, а этот параметр будет проигнорирован.
0.3
n_jobs n_jobs: int, по умолчанию=None

Количество задач, выполняемых параллельно.
``None`` означает 1, если только не используется контекст :obj:`joblib.parallel_backend`.
``-1`` означает использование всех процессоров. Подробнее см. :term:`Глоссарий <n_jobs>`.
None
transformer_weights transformer_weights: dict, по умолчанию=None

Множители для признаков каждого преобразователя. Результат преобразователя
умножается на соответствующий множитель. Ключами являются имена преобразователей,
значениями — множители.
None
verbose verbose: bool, по умолчанию=False

Если задано True, по завершении обучения каждого преобразователя будет
выведено затраченное время.
False
verbose_feature_names_out verbose_feature_names_out: bool, str или Callable[[str, str], str], по умолчанию=True

- Если задано True, :meth:`ColumnTransformer.get_feature_names_out` добавляет к
именам всех признаков префикс с именем преобразователя, который создал соответствующий
признак. Это равнозначно заданию
`verbose_feature_names_out="{transformer_name}__{feature_name}"`.
- Если задано False, :meth:`ColumnTransformer.get_feature_names_out` не будет
добавлять префиксы к именам признаков и вызовет ошибку, если имена признаков не уникальны.
- Если задано ``Callable[[str, str], str]``,
:meth:`ColumnTransformer.get_feature_names_out` переименует все признаки,
используя имя преобразователя. Первый аргумент вызываемого объекта — имя преобразователя,
второй — имя признака. Возвращаемая строка станет новым именем признака.
- Если задано ``str``, это должна быть строка, готовая к форматированию. Указанная строка будет
отформатирована с использованием двух имён полей: ``transformer_name`` и ``feature_name``.
Например, ``"{feature_name}__{transformer_name}"``. Дополнительную информацию см. в описании метода
:meth:`str.format` из стандартной библиотеки.

.. versionadded:: 1.0

.. versionchanged:: 1.6
`verbose_feature_names_out` может быть вызываемым объектом или строкой для форматирования.
True
['state', 'gender']
Параметры
strategy strategy: str or Callable, default='mean'

Стратегия заполнения пропущенных значений.

- Если задано "mean", пропущенные значения заменяются средним значением
в каждом столбце. Можно использовать только с числовыми данными.
- Если задано "median", пропущенные значения заменяются медианой
в каждом столбце. Можно использовать только с числовыми данными.
- Если задано "most_frequent", пропущенные значения заменяются наиболее часто встречающимся
значением в каждом столбце. Можно использовать со строковыми и числовыми данными.
Если таких значений несколько, возвращается только наименьшее из них.
- Если задано "constant", пропущенные значения заменяются значением fill_value. Можно
использовать со строковыми и числовыми данными.
- Если задан экземпляр Callable, пропущенные значения заменяются
скалярной статистикой, полученной при вызове этого объекта для плотного одномерного
массива, содержащего непропущенные значения каждого столбца.

.. versionadded:: 0.20
strategy="constant" для заполнения фиксированным значением.

.. versionadded:: 1.5
strategy=callable для заполнения пользовательским значением.
'constant'
fill_value fill_value: str or numerical value, default=None

Если strategy == "constant", `fill_value` используется для замены всех
вхождений missing_values. Для строковых и объектных типов данных
`fill_value` должен быть строкой.
Если задано `None`, при заполнении числовых данных значением `fill_value` будет 0,
а для строковых и объектных типов данных — "missing_value".
'missing'
missing_values missing_values: int, float, str, np.nan, None or pandas.NA, default=np.nan

Заполнитель для пропущенных значений. Все вхождения
`missing_values` будут заполнены. Для фреймов данных pandas
с целочисленными типами с поддержкой null и пропущенными значениями `missing_values`
можно задать как `np.nan`, так и `pd.NA`.
nan
copy copy: bool, default=True

Если True, будет создана копия X. Если False, заполнение будет
выполняться на месте, когда это возможно. Обратите внимание: в следующих случаях
новая копия создаётся всегда, даже если задано `copy=False`:

- Если `X` не является массивом чисел с плавающей точкой;
- Если `X` закодирован как CSR-матрица;
- Если задано `add_indicator=True`.
True
add_indicator add_indicator: bool, default=False

Если задано True, преобразование :class:`MissingIndicator` добавляется к выходным данным
преобразования импьютера. Это позволяет модели прогнозирования
учитывать пропуски, несмотря на заполнение. Если у признака нет
пропущенных значений во время fit/train, он не появится в индикаторе
пропусков, даже если пропущенные значения есть во время
transform/test.
False
keep_empty_features keep_empty_features: bool, default=False

Если задано True, признаки, состоящие только из пропущенных значений на момент
вызова `fit`, возвращаются в результатах при вызове `transform`.
Заполненное значение всегда равно `0`, кроме случая, когда задано `strategy="constant"`;
в этом случае вместо него используется `fill_value`.

.. versionadded:: 1.2
False
Параметры
handle_unknown handle_unknown: {'error', 'ignore', 'infrequent_if_exist', 'warn'}, default='error'

Определяет способ обработки неизвестных категорий во время :meth:`transform`.

- 'error' : Вызывает ошибку, если во время преобразования встречается неизвестная категория.
- 'ignore' : Если при преобразовании встречается неизвестная категория,
результирующие столбцы one-hot-кодирования для этого признака
будут заполнены нулями. При обратном преобразовании неизвестная категория
будет обозначена как None.
- 'infrequent_if_exist' : Если во время преобразования встречается неизвестная категория,
результирующие столбцы one-hot-кодирования для этого признака
будут соответствовать редкой категории, если она существует. Редкая
категория будет помещена на последнюю позицию в
кодировке. При обратном преобразовании неизвестная категория будет
сопоставлена с категорией, обозначенной как `'infrequent'`, если она существует. Если
категория `'infrequent'` не существует, то :meth:`transform` и
:meth:`inverse_transform` будут обрабатывать неизвестную категорию так же, как при
`handle_unknown='ignore'`. Редкие категории определяются на основе
`min_frequency` и `max_categories`. Подробнее см. в
:ref:`руководстве пользователя <encoder_infrequent_categories>`.
- 'warn' : Если во время преобразования встречается неизвестная категория,
выдаётся предупреждение, после чего кодирование выполняется так, как описано для
`handle_unknown="infrequent_if_exist"`.

.. versionchanged:: 1.1
Вариант `'infrequent_if_exist'` добавлен для автоматической обработки неизвестных
и редких категорий.

.. versionadded:: 1.6
Вариант `"warn"` добавлен в версии 1.6.
'ignore'
categories categories: 'auto' or a list of array-like, default='auto'

Категории (уникальные значения) для каждого признака:

- 'auto' : Автоматически определять категории по обучающим данным.
- list : ``categories[i]`` содержит категории, ожидаемые в i-м
столбце. В переданном списке категорий не следует смешивать строки и числовые
значения в одном признаке; числовые значения должны быть отсортированы.

Используемые категории доступны в атрибуте ``categories_``.

.. versionadded:: 0.20
'auto'
drop drop: {'first', 'if_binary'} or an array-like of shape (n_features,), default=None

Определяет способ удаления одной из категорий для каждого
признака. Это полезно в ситуациях, когда идеально коллинеарные
признаки создают проблемы, например при передаче полученных данных
в модель линейной регрессии без регуляризации.

Однако удаление одной категории нарушает симметрию исходного
представления и может внести смещение в последующие модели,
например в модели линейной классификации или регрессии с регуляризацией.

- None : оставить все признаки (значение по умолчанию).
- 'first' : удалить первую категорию каждого признака. Если присутствует только одна
категория, признак будет удалён целиком.
- 'if_binary' : удалить первую категорию каждого признака с двумя
категориями. Признаки с 1 или более чем 2 категориями
остаются без изменений.
- array : ``drop[i]`` — это категория признака ``X[:, i]``, которую
следует удалить.

Если для группировки редких категорий заданы `max_categories` или `min_frequency`,
удаление выполняется после группировки.

.. versionadded:: 0.21
Параметр `drop` добавлен в версии 0.21.

.. versionchanged:: 0.23
Вариант `drop='if_binary'` добавлен в версии 0.23.

.. versionchanged:: 1.1
Добавлена поддержка удаления редких категорий.
None
sparse_output sparse_output: bool, default=True

Если задано ``True``, возвращает разреженную матрицу/массив SciPy
в формате "Compressed Sparse Row" (CSR).

.. versionadded:: 1.2
Параметр `sparse` переименован в `sparse_output`
True
dtype dtype: number type, default=np.float64

Требуемый тип данных результата.
<class 'numpy.float64'>
min_frequency min_frequency: int or float, default=None

Задаёт минимальную частоту, ниже которой категория считается
редкой.

- Если задан `int`, редкими считаются категории с меньшим числом вхождений.

- Если задан `float`, редкими считаются категории с числом вхождений меньше
`min_frequency * n_samples`.

.. versionadded:: 1.1
Подробнее см. в :ref:`руководстве пользователя <encoder_infrequent_categories>`.
None
max_categories max_categories: int, default=None

Задаёт верхний предел числа выходных признаков для каждого входного
признака с учётом редких категорий. Если редкие категории существуют, `max_categories` включает категорию, представляющую
редкие категории, наряду с частыми категориями. Если задано `None`,
число выходных признаков не ограничено.

.. versionadded:: 1.1
Подробнее см. в :ref:`руководстве пользователя <encoder_infrequent_categories>`.
None
feature_name_combiner feature_name_combiner: "concat" or callable, default="concat"

Вызываемый объект с сигнатурой `def callable(input_feature, category)`, возвращающий
строку. Используется для создания имён признаков, возвращаемых методом
:meth:`get_feature_names_out`.

`"concat"` объединяет закодированное имя признака и категорию в формате
`feature + "_" + str(category)`. Например, для признака X со значениями 1, 6, 7 будут созданы
имена признаков `X_1, X_6, X_7`.

.. versionadded:: 1.3
'concat'
['age', 'weight']
Параметры
missing_values missing_values: int, float, str, np.nan, None or pandas.NA, default=np.nan

Заполнитель для пропущенных значений. Все вхождения
`missing_values` будут заполнены. Для фреймов данных pandas
с целочисленными типами с поддержкой null и пропущенными значениями `missing_values`
можно задать как `np.nan`, так и `pd.NA`.
nan
strategy strategy: str or Callable, default='mean'

Стратегия заполнения пропущенных значений.

- Если задано "mean", пропущенные значения заменяются средним значением
в каждом столбце. Можно использовать только с числовыми данными.
- Если задано "median", пропущенные значения заменяются медианой
в каждом столбце. Можно использовать только с числовыми данными.
- Если задано "most_frequent", пропущенные значения заменяются наиболее часто встречающимся
значением в каждом столбце. Можно использовать со строковыми и числовыми данными.
Если таких значений несколько, возвращается только наименьшее из них.
- Если задано "constant", пропущенные значения заменяются значением fill_value. Можно
использовать со строковыми и числовыми данными.
- Если задан экземпляр Callable, пропущенные значения заменяются
скалярной статистикой, полученной при вызове этого объекта для плотного одномерного
массива, содержащего непропущенные значения каждого столбца.

.. versionadded:: 0.20
strategy="constant" для заполнения фиксированным значением.

.. versionadded:: 1.5
strategy=callable для заполнения пользовательским значением.
'mean'
fill_value fill_value: str or numerical value, default=None

Если strategy == "constant", `fill_value` используется для замены всех
вхождений missing_values. Для строковых и объектных типов данных
`fill_value` должен быть строкой.
Если задано `None`, при заполнении числовых данных значением `fill_value` будет 0,
а для строковых и объектных типов данных — "missing_value".
None
copy copy: bool, default=True

Если True, будет создана копия X. Если False, заполнение будет
выполняться на месте, когда это возможно. Обратите внимание: в следующих случаях
новая копия создаётся всегда, даже если задано `copy=False`:

- Если `X` не является массивом чисел с плавающей точкой;
- Если `X` закодирован как CSR-матрица;
- Если задано `add_indicator=True`.
True
add_indicator add_indicator: bool, default=False

Если задано True, преобразование :class:`MissingIndicator` добавляется к выходным данным
преобразования импьютера. Это позволяет модели прогнозирования
учитывать пропуски, несмотря на заполнение. Если у признака нет
пропущенных значений во время fit/train, он не появится в индикаторе
пропусков, даже если пропущенные значения есть во время
transform/test.
False
keep_empty_features keep_empty_features: bool, default=False

Если задано True, признаки, состоящие только из пропущенных значений на момент
вызова `fit`, возвращаются в результатах при вызове `transform`.
Заполненное значение всегда равно `0`, кроме случая, когда задано `strategy="constant"`;
в этом случае вместо него используется `fill_value`.

.. versionadded:: 1.2
False
Параметры
copy copy: bool, default=True

Если задано False, предпринимается попытка избежать создания копии и выполнить масштабирование на месте.
Это не гарантирует, что операция всегда будет выполнена на месте: например, если данные
не являются массивом NumPy или разреженной CSR-матрицей scipy, может быть возвращена
копия.
True
with_mean with_mean: bool, default=True

Если задано True, центрировать данные перед масштабированием.
Не работает (и вызывает исключение) при применении к
разреженным матрицам, поскольку центрирование требует создания плотной
матрицы, которая в распространённых сценариях использования может оказаться слишком большой для размещения в
памяти.
True
with_std with_std: bool, default=True

Если задано True, масштабировать данные до единичной дисперсии (или, что эквивалентно,
до единичного стандартного отклонения).
True
Параметры
n_estimators n_estimators: int, по умолчанию=100

Количество деревьев в лесу.

.. versionchanged:: 0.22
Значение ``n_estimators`` по умолчанию изменено с 10 на 100
в версии 0.22.
100
criterion criterion: {"gini", "entropy", "log_loss"}, по умолчанию="gini"

Функция для измерения качества разбиения. Поддерживаются критерии
"gini" для примеси Джини, а также "log_loss" и "entropy" для
информационного выигрыша Шеннона; см. :ref:`tree_mathematical_formulation`.
Примечание: этот параметр относится только к деревьям.
'gini'
max_depth max_depth: int, по умолчанию=None

Максимальная глубина дерева. Если задано None, узлы расширяются, пока
все листья не станут чистыми или пока каждый лист не будет содержать менее
min_samples_split образцов.
None
min_samples_split min_samples_split: int или float, по умолчанию=2

Минимальное количество образцов, необходимое для разделения внутреннего узла:

- Если задано int, `min_samples_split` считается минимальным количеством.
- Если задано float, `min_samples_split` является долей, а
`ceil(min_samples_split * n_samples)` — минимальное
количество образцов для каждого разбиения.

.. versionchanged:: 0.18
Добавлена возможность задавать доли числами с плавающей точкой.
2
min_samples_leaf min_samples_leaf: int или float, по умолчанию=1

Минимальное количество образцов, необходимое для узла-листа.
Точка разбиения на любой глубине будет рассматриваться только в том случае, если в левой и
правой ветвях останется как минимум ``min_samples_leaf`` обучающих образцов. Это может сгладить модель,
особенно в задачах регрессии.

- Если задано int, `min_samples_leaf` считается минимальным количеством.
- Если задано float, `min_samples_leaf` является долей, а
`ceil(min_samples_leaf * n_samples)` — минимальное
количество образцов для каждого узла.

.. versionchanged:: 0.18
Добавлена возможность задавать доли числами с плавающей точкой.
1
min_weight_fraction_leaf min_weight_fraction_leaf: float, по умолчанию=0.0

Минимальная взвешенная доля общей суммы весов (всех
входных образцов), необходимая для узла-листа. Если sample_weight не задан, все образцы имеют
одинаковый вес.
0.0
max_features max_features: {"sqrt", "log2", None}, int или float, по умолчанию="sqrt"

Количество признаков, рассматриваемых при поиске наилучшего разбиения:

- Если задано int, при каждом разбиении рассматривается `max_features` признаков.
- Если задано float, `max_features` является долей, и
при каждом разбиении рассматривается `max(1, int(max_features * n_features_in_))` признаков.
- Если задано "sqrt", то `max_features=sqrt(n_features)`.
- Если задано "log2", то `max_features=log2(n_features)`.
- Если задано None, то `max_features=n_features`.

.. versionchanged:: 1.1
Значение `max_features` по умолчанию изменено с `"auto"` на `"sqrt"`.

Примечание: поиск разбиения продолжается, пока не будет найдено хотя бы одно
допустимое разбиение образцов узла, даже если для этого потребуется фактически
проверить больше признаков, чем ``max_features``.
'sqrt'
max_leaf_nodes max_leaf_nodes: int, по умолчанию=None

Выращивать деревья с ``max_leaf_nodes`` в порядке наилучших кандидатов.
Наилучшие узлы определяются по относительному уменьшению примеси.
Если задано None, количество узлов-листьев не ограничено.
None
min_impurity_decrease min_impurity_decrease: float, по умолчанию=0.0

Узел будет разделён, если это разбиение уменьшает примесь
на величину, большую или равную этому значению.

Уравнение для взвешенного уменьшения примеси:

N_t / N * (impurity - N_t_R / N_t * right_impurity
- N_t_L / N_t * left_impurity)

где ``N`` — общее количество образцов, ``N_t`` — количество
образцов в текущем узле, ``N_t_L`` — количество образцов в левом дочернем узле, а ``N_t_R`` — количество образцов в правом дочернем узле.

``N``, ``N_t``, ``N_t_R`` и ``N_t_L`` обозначают взвешенные суммы,
если передан ``sample_weight``.

.. versionadded:: 0.19
0.0
bootstrap bootstrap: bool, по умолчанию=True

Используются ли bootstrap-выборки при построении деревьев. Если задано False, для построения каждого дерева используется
весь набор данных.
True
oob_score oob_score: bool или callable, по умолчанию=False

Использовать ли вневыборочные образцы для оценки качества обобщения.
По умолчанию используется :func:`~sklearn.metrics.accuracy_score`.
Чтобы использовать пользовательскую метрику, передайте вызываемый объект с сигнатурой `metric(y_true, y_pred)`. Доступно только при `bootstrap=True`.

Пример оценки ошибки по вневыборочным (OOB) данным см. в примере
:ref:`sphx_glr_auto_examples_ensemble_plot_ensemble_oob.py`.
False
n_jobs n_jobs: int, по умолчанию=None

Количество задач, выполняемых параллельно. :meth:`fit`, :meth:`predict`,
:meth:`decision_path` и :meth:`apply` выполняются параллельно по
деревьям. ``None`` означает 1, если только не используется контекст :obj:`joblib.parallel_backend`.
``-1`` означает использование всех процессоров. Подробнее см. в :term:`глоссарии
<n_jobs>`.
None
random_state random_state: int, экземпляр RandomState или None, по умолчанию=None

Управляет случайностью при формировании bootstrap-выборок, используемых
при построении деревьев (если ``bootstrap=True``), и при выборе
признаков для поиска наилучшего разбиения в каждом узле
(если ``max_features < n_features``).
Подробнее см. в :term:`глоссарии <random_state>`.
None
verbose verbose: int, по умолчанию=0

Управляет подробностью вывода при обучении и предсказании.
0
warm_start warm_start: bool, по умолчанию=False

Если задано ``True``, повторно используется решение предыдущего вызова fit
и в ансамбль добавляются новые оценщики; в противном случае обучается совершенно
новый лес. Подробнее см. в :term:`глоссарии <warm_start>` и
:ref:`tree_ensemble_warm_start`.
False
class_weight class_weight: {"balanced", "balanced_subsample"}, dict или список dict, по умолчанию=None

Веса классов в формате ``{class_label: weight}``.
Если не задано, предполагается, что вес всех классов равен единице. Для
задач с несколькими выходами можно передать список dict в том же
порядке, что и столбцы y.

Для задач с несколькими выходами (включая многометочную классификацию) веса следует
задавать для каждого класса каждого столбца в отдельном dict. Например,
для многометочной классификации с четырьмя классами следует указать веса
[{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}], а не
[{1:1}, {2:5}, {3:1}, {4:1}].

Режим "balanced" автоматически корректирует веса по значениям y
обратно пропорционально частоте классов во входных данных:
``n_samples / (n_classes * np.bincount(y))``

Режим "balanced_subsample" аналогичен "balanced", за исключением того, что
веса вычисляются на основе bootstrap-выборки для каждого построенного дерева.

Для нескольких выходов веса каждого столбца y перемножаются.

Если задан sample_weight, эти веса будут перемножены с sample_weight (переданным
через метод fit).
None
ccp_alpha ccp_alpha: неотрицательное число с плавающей точкой, по умолчанию=0.0

Параметр сложности, используемый для обрезки с минимизацией стоимости и сложности. Будет выбрано поддерево с наибольшей стоимостью и сложностью, меньшей
``ccp_alpha``. По умолчанию обрезка не выполняется. Подробнее см.
:ref:`minimal_cost_complexity_pruning`. Пример такой обрезки см.
в :ref:`sphx_glr_auto_examples_tree_plot_cost_complexity_pruning.py`.

.. versionadded:: 0.22
0.0
max_samples max_samples: int или float, по умолчанию=None

Если bootstrap равно True, количество образцов, выбираемых из X
для обучения каждого базового оценщика.

- Если задано None (по умолчанию), выбираются `X.shape[0]` образцов независимо от
`sample_weight`.
- Если задано int, выбираются `max_samples` образцов.
- Если задано float, выбираются `max_samples * X.shape[0]` невзвешенных образцов
или `max_samples * sample_weight.sum()` взвешенных образцов.

.. versionadded:: 0.22

.. versionchanged:: 1.9
Для взвешенных образцов значение `max_samples` типа float теперь относительно `sample_weight.sum()`, а не
`X.shape[0]`.
None
monotonic_cst monotonic_cst: массивоподобный объект из int формы (n_features), по умолчанию=None

Задает ограничение монотонности, применяемое к каждому признаку.
- 1: монотонное возрастание
- 0: без ограничений
- -1: монотонное убывание

Если monotonic_cst равен None, ограничения не применяются.

Ограничения монотонности не поддерживаются для:
- многоклассовой классификации (то есть когда `n_classes > 2`),
- классификации с несколькими выходами (то есть когда `n_outputs_ > 1`).

Ограничения применяются к вероятности положительного класса.

Подробнее см. в :ref:`руководстве пользователя <monotonic_cst_gbdt>`.

.. versionadded:: 1.4
None


Общее время выполнения скрипта: (0 минут 0.130 секунды)

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_pipeline_display.ipynb

Download Python source code: plot_pipeline_display.py

Download zipped: plot_pipeline_display.zip

Связанные примеры

Отображение оценщиков и сложных конвейеров

Column Transformer для данных разных типов

Знакомство с API set_output

Основные нововведения scikit-learn 0.23

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/auto_examples/miscellaneous/plot_pipeline_display.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API