Spec-Zone.ru › scikit-learn

KBinsDiscretizer

classsklearn.preprocessing.KBinsDiscretizer(n_bins=5, *, encode='onehot', strategy='quantile', dtype=None, subsample=200000, random_state=None)[source]

Разбиение непрерывных данных на интервалы.

Подробнее см. в Руководстве пользователя.

Добавлен в версии 0.20.

Параметры:
n_binsint или array-like формы (n_features,), по умолчанию=5

Число интервалов. Вызывает ValueError, если n_bins < 2.

encode{‘onehot’, ‘onehot-dense’, ‘ordinal’}, по умолчанию=’onehot’

Метод кодирования преобразованного результата.

  • ‘onehot’: Кодирует преобразованный результат с помощью one-hot кодирования и возвращает разреженную матрицу. Игнорируемые признаки всегда добавляются вправо.
  • ‘onehot-dense’: Кодирует преобразованный результат с помощью one-hot кодирования и возвращает плотный массив. Игнорируемые признаки всегда добавляются вправо.
  • ‘ordinal’: Возвращает идентификатор интервала, закодированный как целое значение.
strategy{‘uniform’, ‘quantile’, ‘kmeans’}, по умолчанию=’quantile’

Стратегия определения ширины интервалов.

  • ‘uniform’: Все интервалы в каждом признаке имеют одинаковую ширину.
  • ‘quantile’: Все интервалы в каждом признаке содержат одинаковое количество точек.
  • ‘kmeans’: Значения в каждом интервале имеют одинаковый ближайший центр кластера 1D k-means.

Пример различных стратегий см.: Демонстрация различных стратегий KBinsDiscretizer.

dtype{np.float32, np.float64}, по умолчанию=None

Желаемый тип данных для вывода. Если None, тип данных вывода соответствует типу данных входных данных. Поддерживаются только np.float32 и np.float64.

Добавлен в версии 0.24.

subsampleint или None, по умолчанию=200_000

Максимальное число образцов, используемых для обучения модели для повышения эффективности вычислений. subsample=None означает, что все обучающие примеры используются при вычислении квантилей, определяющих пороговые значения интервалов. Поскольку вычисление квантилей основано на сортировке каждого столбца X и эта сортировка имеет n log(n) сложность по времени, рекомендуется использовать подвыборку для наборов данных с очень большим числом образцов.

Изменено в версии 1.3: Значение по умолчанию subsample изменено с None на 200_000 при strategy="quantile".

Изменено в версии 1.5: Значение по умолчанию subsample изменено с None на 200_000 при strategy="uniform" или strategy="kmeans".

random_stateint, экземпляр RandomState или None, по умолчанию=None

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

Добавлен в версии 1.1.

Атрибуты:
bin_edges_массив ndarray формы (n_features,)

Границы каждого интервала. Содержат массивы различной формы (n_bins_, ). У игнорируемых признаков будут пустые массивы.

n_bins_массив ndarray формы (n_features,), dtype=np.int64

Количество интервалов на признак. Интервалы, ширина которых слишком мала (т.е., <= 1e-8), удаляются с предупреждением.

n_features_in_int

Количество признаков, увиденных во время fit.

Добавлен в версии 0.24.

feature_names_in_массив ndarray формы (n_features_in_,)

Названия признаков, увиденные во время fit. Определяется только тогда, когда X имеет имена признаков, все из которых являются строками.

Добавлен в версии 1.0.

См. также

Binarizer

Класс, используемый для разбиения значений на 0 или 1 на основе параметра threshold.

Примечания

Визуализацию дискретизации на различных наборах данных см. в Дискретизация признаков. О влиянии дискретизации на линейные модели см.: Использование KBinsDiscretizer для дискретизации непрерывных признаков.

В границах интервалов для признака i, первые и последние значения используются только для inverse_transform. Во время преобразования границы интервалов расширяются до:

np.concatenate([-np.inf, bin_edges_[i][1:-1], np.inf])

Вы можете комбинировать KBinsDiscretizer с ColumnTransformer, если вы хотите обработать только часть признаков.

KBinsDiscretizer может привести к появлению постоянных признаков (например, когда encode = 'onehot' и некоторые интервалы не содержат данных). Эти признаки можно удалить с помощью алгоритмов отбора признаков (например, VarianceThreshold).

Примеры

>>> from sklearn.preprocessing import KBinsDiscretizer
>>> X = [[-2, 1, -4,   -1],
...      [-1, 2, -3, -0.5],
...      [ 0, 3, -2,  0.5],
...      [ 1, 4, -1,    2]]
>>> est = KBinsDiscretizer(
...     n_bins=3, encode='ordinal', strategy='uniform'
... )
>>> est.fit(X)
KBinsDiscretizer(...)
>>> Xt = est.transform(X)
>>> Xt  
array([[ 0., 0., 0., 0.],
       [ 1., 1., 1., 0.],
       [ 2., 2., 2., 1.],
       [ 2., 2., 2., 2.]])

Иногда может быть полезно преобразовать данные обратно в исходное пространство признаков. Функция inverse_transform преобразует бинарные данные в исходное пространство признаков. Каждое значение будет равно среднему из двух границ интервалов.

>>> est.bin_edges_[0]
array([-2., -1.,  0.,  1.])
>>> est.inverse_transform(Xt)
array([[-1.5,  1.5, -3.5, -0.5],
       [-0.5,  2.5, -2.5, -0.5],
       [ 0.5,  3.5, -1.5,  0.5],
       [ 0.5,  3.5, -1.5,  1.5]])
fit(X, y=None, sample_weight=None)[source]

Обучение эстиматора.

Параметры:
Xarray-like формы (n_samples, n_features)

Данные для дискретизации.

yNone

Игнорируется. Этот параметр существует только для совместимости с Pipeline.

sample_weightмассив ndarray формы (n_samples,)

Содержит значения весов, которые необходимо сопоставить с каждым образцом. Не может быть использовано, когда strategy установлено в "uniform".

Добавлен в версии 1.3.

Возвращает:
selfобъект

Возвращает сам экземпляр.

fit_transform(X, y=None, **fit_params)[source]

Обучение на данных, затем преобразование.

Обучает преобразователь на X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xarray-like формы (n_samples, n_features)

Входные примеры.

yarray-like формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Целевые значения (None для без учителя преобразований).

**fit_paramsdict

Дополнительные параметры обучения.

Возвращает:
X_newмассив ndarray формы (n_samples, n_features_new)

Преобразованный массив.

END_OF_DOCUMENT_MARKER
get_feature_names_out(input_features=None)[source]

Получить имена выходных признаков.

Параметры:
input_featuresмассив-подобный объект из str или None, по умолчанию=None

Входные признаки.

  • Если input_features является None, то feature_names_in_ используется в качестве имён признаков. Если feature_names_in_ не определён, то генерируются следующие имена входных признаков: ["x0", "x1", ..., "x(n_features_in_ - 1)"].
  • Если input_features является массивом-подобным объектом, то input_features должен соответствовать feature_names_in_, если feature_names_in_ определён.
Возвращает:
feature_names_outмассив объектов str

Преобразованные имена признаков.

get_metadata_routing()[source]

Получить маршрутизацию метаданных для этого объекта.

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

Возвращает:
routingMetadataRequest

MetadataRequest объект, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры данного оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, вернёт параметры данного оценщика и вложенных под-объектов, являющихся оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные со значениями.

inverse_transform(X=None, *, Xt=None)[source]

Преобразовать дискретизированные данные обратно в исходное пространство признаков.

Обратите внимание, что эта функция не восстанавливает исходные данные из-за округления при дискретизации.

Параметры:
Xмассив-подобный объект формы (n_samples, n_features)

Преобразованные данные в биновом пространстве.

Xtмассив-подобный объект формы (n_samples, n_features)

Преобразованные данные в биновом пространстве.

Устарело начиная с версии 1.5: Xt устарело в версии 1.5 и будет удалено в версии 1.7. Используйте X вместо этого.

Возвращает:
Xinvмассив, тип данных={np.float32, np.float64}

Данные в исходном пространстве признаков.

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → KBinsDiscretizer[source]

Запросить метаданные, переданные методу fit.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя по тому, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: запрашиваются метаданные, и передаются в fit если предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их в fit.
  • None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь их предоставит.
  • str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.

Добавлена в версии 1.3.

Примечание

Этот метод актуален только если данный оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не имеет эффекта.

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

Возвращает:
selfобъект

Обновлённый объект.

set_output(*, transform=None)[source]

Установить контейнер вывода.

См. Введение в API set_output для примера использования API.

Параметры:
transform{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода по умолчанию для трансформатора
  • "pandas": Вывод в формате DataFrame
  • "polars": Вывод в формате Polars
  • None: Настройка трансформации не изменена

Добавлена в версии 1.4: "polars" опция была добавлена.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_params(**params)[source]

Установите параметры этого оценщика.

Метод работает с простыми оценщиками, а также со вложенными объектами (такими как Pipeline). Последние имеют параметры вида <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

transform(X)[source]

Дискретизировать данные.

Параметры:
Xarray-like формы (n_samples, n_features)

Данные для дискретизации.

Возвращает:
Xt{ndarray, разреженная матрица}, dtype={np.float32, np.float64}

Данные в пространстве бинов. Будет разреженной матрицей, если self.encode='onehot' и ndarray в противном случае.

Примеры галереи

Основные моменты выпуска scikit-learn 1.2

Пример векторного квантования

Инженерия временных признаков

Регрессия Пуассона и потеря ненормального вида

Регрессия Твидди на страховых требованиях

Демонстрация различных стратегий KBinsDiscretizer

Дискретизация признаков

Внутренняя перекрестная подгонка TargetEncoder

Использование KBinsDiscretizer для дискретизации непрерывных признаков

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.KBinsDiscretizer.html

Spec-Zone.ru

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