Spec-Zone.ru › scikit-learn

Примечание

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

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

В этом примере показаны различные способы отображения оценивателей и конвейеров.

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

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

Компактное текстовое представление

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

lr = LogisticRegression(l1_ratio=1)
print(lr)
LogisticRegression(l1_ratio=1)

Расширенное HTML-представление

В блокнотах оцениватели и конвейеры используют расширенное HTML-представление. Оно особенно полезно для обобщения структуры конвейеров и других составных оценивателей и позволяет раскрывать подробную информацию. Нажмите на изображение примера ниже, чтобы развернуть элементы Pipeline. Информацию об использовании этой функции см. в разделе Визуализация составных оценивателей.

num_proc = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())

cat_proc = make_pipeline(
    SimpleImputer(strategy="constant", fill_value="missing"),
    OneHotEncoder(handle_unknown="ignore"),
)

preprocessor = make_column_transformer(
    (num_proc, ("feat1", "feat3")), (cat_proc, ("feat0", "feat2"))
)

clf = make_pipeline(preprocessor, LogisticRegression())
clf
Pipeline(steps=[('columntransformer',
                 ColumnTransformer(transformers=[('pipeline-1',
                                                  Pipeline(steps=[('simpleimputer',
                                                                   SimpleImputer(strategy='median')),
                                                                  ('standardscaler',
                                                                   StandardScaler())]),
                                                  ('feat1', 'feat3')),
                                                 ('pipeline-2',
                                                  Pipeline(steps=[('simpleimputer',
                                                                   SimpleImputer(fill_value='missing',
                                                                                 strategy='constant')),
                                                                  ('onehotencoder',
                                                                   OneHotEncoder(handle_unknown='ignore'))]),
                                                  ('feat0', 'feat2'))])),
                ('logisticregression', LogisticRegression())])
В среде Jupyter повторно выполните эту ячейку, чтобы отобразить HTML-представление, или доверьте блокноту.
HTML-представление не отображается на GitHub. Попробуйте открыть эту страницу на 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`.
[('pipeline-1', ...), ('pipeline-2', ...)]
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
('feat1', 'feat3')
Параметры
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 для заполнения пользовательским значением.
'median'
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
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
('feat0', 'feat2')
Параметры
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' : удалить первую категорию в каждом признаке с двумя
категориями. Признаки с 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'
Параметры
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. Если n_samples > n_features,
предпочтительно использовать `dual=False`.
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: dict или 'balanced', по умолчанию=None

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

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

Если задан 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), а также от поддержки (мультиномиальной) многоклассовой классификации:

================= ======================== ======================
решатель 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:`Table <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


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

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_estimator_representation.ipynb

Download Python source code: plot_estimator_representation.py

Download zipped: plot_estimator_representation.zip

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

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

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

ColumnTransformer для данных смешанных типов

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

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

Spec-Zone.ru

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