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)
-
Преобразованный массив.
- 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 в противном случае.
Примеры галереи
© 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