Spec-Zone.ru › scikit-learn

quantile_transform

sklearn.preprocessing.quantile_transform(X, *, axis=0, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=100000, random_state=None, copy=True)[исходный код]

Преобразует признаки с использованием информации о квантилях.

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

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

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

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Данные для преобразования.

axisint, по умолчанию=0

Ось, вдоль которой вычисляются средние значения и стандартные отклонения. Если значение равно 0, преобразуется каждый признак, иначе (если значение равно 1) преобразуется каждый образец.

n_quantilesint, по умолчанию=1000 или n_samples

Количество вычисляемых квантилей. Оно соответствует количеству опорных точек, используемых для дискретизации функции распределения. Если n_quantiles больше числа образцов, n_quantiles устанавливается равным числу образцов, поскольку большее количество квантилей не улучшает аппроксимацию оценённой функции распределения.

output_distribution{‘uniform’, ‘normal’}, по умолчанию=’uniform’

Маргинальное распределение преобразованных данных. Возможные значения: ‘uniform’ (по умолчанию) или ‘normal’.

ignore_implicit_zerosbool, по умолчанию=False

Применяется только к разреженным матрицам. Если значение равно True, разреженные элементы матрицы отбрасываются при вычислении статистики квантилей. Если значение равно False, эти элементы рассматриваются как нули.

subsampleint или None, по умолчанию=1e5

Максимальное количество образцов, используемых для оценки квантилей, в целях повышения вычислительной эффективности. Обратите внимание, что процедура подвыборки может различаться для разреженных и плотных матриц с одинаковыми значениями. Отключите подвыборку, задав subsample=None.

Добавлено в версии 1.5: Добавлен параметр None для отключения подвыборки.

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

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

copybool, по умолчанию=True

Если значение равно False, пытается избежать создания копии и выполнить преобразование на месте. Это не всегда гарантируется; например, если данные представлены массивом numpy с целочисленным типом dtype, будет возвращена копия даже при copy=False.

Изменено в версии 0.23: В версии 0.23 значение параметра copy по умолчанию изменено с False на True.

Возвращает:
Xt{ndarray, разреженная матрица} формы (n_samples, n_features)

Преобразованные данные.

См. также

QuantileTransformer

Выполняет масштабирование на основе квантилей с использованием API преобразователей (например, в составе конвейера предобработки Pipeline).

power_transform

Преобразует данные к нормальному распределению с помощью степенного преобразования.

scale

Выполняет стандартизацию быстрее, но она менее устойчива к выбросам.

robust_scale

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

Примечания

NaN обрабатываются как пропущенные значения: не учитываются при обучении и сохраняются при преобразовании.

Предупреждение

Риск утечки данных

Не используйте quantile_transform, если не уверены в том, что делаете. Частая ошибка — применить преобразование ко всему набору данных до разделения на обучающую и тестовую выборки. Это приведёт к смещённой оценке модели, поскольку информация из тестовой выборки просочится в обучающую. В целом мы рекомендуем использовать QuantileTransformer внутри конвейера, чтобы предотвратить большинство рисков утечки данных:pipe = make_pipeline(QuantileTransformer(), LogisticRegression()).

Сравнение различных средств масштабирования, преобразователей и нормализаторов см. здесь: Сравнение влияния различных средств масштабирования на данные с выбросами.

Примеры

>>> import numpy as np
>>> from sklearn.preprocessing import quantile_transform
>>> rng = np.random.RandomState(0)
>>> X = np.sort(rng.normal(loc=0.5, scale=0.25, size=(25, 1)), axis=0)
>>> quantile_transform(X, n_quantiles=10, random_state=0, copy=True)
array([...])

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

Влияние преобразования целевых значений в модели регрессии

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

Spec-Zone.ru

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